As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Como instalar plug-ins personalizados
O Amazon Managed Workflows for Apache Airflow oferece suporte ao gerenciador de plug-ins integrado do Apache Airflow, permitindo o uso de operadores, hooks, sensores ou interfaces personalizados do Apache Airflow. Esta página descreve as etapas para instalar plugins personalizados do Apache Airflowplugins.zip
.
Sumário
- Pré-requisitos
- Como funciona
- Quando usar os plug-ins
- Visão geral dos plug-ins personalizados
- Exemplos de plug-ins personalizados
- Criação de um arquivo plugins.zip
- Como fazer upload de plugins.zip para o Amazon S3
- Instalando plug-ins personalizados em seu ambiente
- Exemplos de casos de uso para plugins.zip
- Próximas etapas
Pré-requisitos
Você precisará do seguinte antes de concluir as etapas nesta página.
-
Permissões: sua conta AWS deve ter o acesso concedido por seu administrador para a política de controle de acesso AmazonMWAAFullConsoleAccess para seu ambiente. Além disso, seu ambiente Amazon MWAA deve ser autorizado pela seu perfil de execução para acessar os recursos da AWS usados pelo seu ambiente.
-
Acesso: se você precisar de acesso a repositórios públicos para instalar dependências diretamente no servidor web, seu ambiente deverá ser configurado com acesso ao servidor web de rede pública. Para ter mais informações, consulte Modos de acesso do Apache Airflow.
-
Configuração do Amazon S3: o bucket do Amazon S3 usado para armazenar seus DAGs, plug-ins personalizados em
plugins.zip
e dependências do Python emrequirements.txt
deve ser configurado com Acesso público bloqueado e Versionamento habilitado.
Como funciona
Para executar plug-ins personalizados em seu ambiente, você deve fazer três coisas:
-
Crie um arquivo
plugins.zip
localmente. -
Faça upload do arquivo
plugins.zip
local para seu bucket no Amazon S3. -
Especifique a versão desse arquivo no campo Arquivo de plug-ins no console do Amazon MWAA.
nota
Se for a primeira vez que você faz o upload de um plugins.zip
para o seu bucket do Amazon S3, também será preciso especificar o caminho para o arquivo no console do Amazon MWAA. Você só precisa concluir esta etapa uma vez.
Quando usar os plug-ins
Os plug-ins são necessários somente para estender a interface de usuário do Apache Airflow, conforme descrito na documentação do Apache Airflow/dags
ao lado do código DAG
.
Caso precise criar suas próprias integrações com sistemas externos, coloque-as na pasta /dags
ou em uma subpasta dentro dela, mas não na pasta plugins.zip
. No Apache Airflow 2.x, os plug-ins são usados principalmente para estender a interface do usuário.
Da mesma forma, outras dependências não devem ser inseridas em plugins.zip
. Em vez disso, elas podem ser armazenados em um local na pasta /dags
do Amazon S3, onde serão sincronizadas com cada contêiner do Amazon MWAA antes do início do Apache Airflow.
nota
Qualquer arquivo na pasta /dags
ou em plugins.zip
que não defina explicitamente um objeto DAG do Apache Airflow deve ser listado em um arquivo .airflowignore
.
Visão geral dos plug-ins personalizados
O gerenciador de plug-ins embutido do Apache Airflow pode integrar atributos externos ao núcleo simplesmente soltando arquivos em uma pasta $AIRFLOW_HOME/plugins
. Ele permite que você use operadores, hooks, sensores ou interfaces personalizados do Apache Airflow. A seção a seguir fornece um exemplo de estruturas de diretórios simples e aninhadas em um ambiente de desenvolvimento local e as instruções de importação resultantes, que determinam a estrutura de diretórios em um plugins.zip.
Diretório de plug-ins personalizados e limites de tamanho
O programador e os operadores do Apache Airflow procuram plug-ins personalizados durante a inicialização no contêiner Fargate gerenciado pela AWS para seu ambiente em /usr/local/airflow/plugins/
.*
-
Estrutura de diretório. A estrutura do diretório (em
/
) é baseada no conteúdo do seu arquivo*
plugins.zip
. Por exemplo, se seuplugins.zip
contiver o diretóriooperators
como um diretório de nível superior, o diretório será extraído para/usr/local/airflow/plugins/
em seu ambiente.operators
-
Limites de tamanho. Recomendamos um arquivo
plugins.zip
com menos de 1 GB. Quanto maior o tamanho de um arquivoplugins.zip
, maior o tempo de inicialização em um ambiente. Embora o Amazon MWAA não limite explicitamente o tamanho de um arquivoplugins.zip
, se as dependências não puderem ser instaladas em dez minutos, o serviço Fargate atingirá o tempo limite e tentará reverter o ambiente para um estado estável.
nota
Para ambientes que usam o Apache Airflow v1.10.12 ou o Apache Airflow v2.0.2, o Amazon MWAA limita o tráfego de saída no servidor web Apache Airflow e não permite que você instale plug-ins nem dependências do Python diretamente no servidor web. A partir do Apache Airflow v2.2.2, o Amazon MWAA pode instalar plug-ins e dependências diretamente no servidor web.
Exemplos de plug-ins personalizados
A seção a seguir usa um exemplo de código no Guia de referência do Apache Airflow para mostrar como estruturar seu ambiente de desenvolvimento local.
Exemplo de uso de uma estrutura de diretórios simples em plugins.zip
Exemplo de uso de uma estrutura de diretórios aninhados em plugins.zip
Criação de um arquivo plugins.zip
As etapas a seguir descrevem as etapas que recomendamos para criar um arquivo plugins.zip localmente.
Etapa 1: testar plug-ins personalizados usando o utilitário Amazon MWAA CLI
-
O utilitário da interface de linha de comandos (CLI) replica localmente um ambiente do Amazon Managed Workflows for Apache Airflow.
-
A CLI cria localmente uma imagem de contêiner Docker semelhante a uma imagem de produção do Amazon MWAA. Isso permite que você execute um ambiente Apache Airflow local para desenvolver e testar DAGs, plug-ins personalizados e dependências antes da implantação no Amazon MWAA.
-
Para executar a CLI, consulte aws-mwaa-local-runner
no GitHub.
Etapa 2: criar o arquivo plugins.zip
É possível usar um utilitário de arquivamento ZIP incorporado ou qualquer outro utilitário ZIP (como 7zip
nota
O utilitário zip integrado para o sistema operacional Windows pode adicionar subpastas quando você cria um arquivo .zip. Recomendamos verificar o conteúdo do arquivo plugins.zip antes de fazer o upload para o bucket do Amazon S3 para garantir que nenhum diretório adicional tenha sido adicionado.
-
Altere os diretórios para o diretório local de plug-ins do Airflow. Por exemplo:
myproject$
cd plugins
-
Execute o comando a seguir para garantir que o conteúdo tenha permissões executáveis (somente macOS e Linux).
plugins$
chmod -R 755 .
-
Compacte o conteúdo em sua pasta
plugins
.plugins$
zip -r plugins.zip .
Como fazer upload de plugins.zip
para o Amazon S3
É possível usar o console do Amazon S3 ou a AWS Command Line Interface (AWS CLI) para fazer upload do arquivo plugins.zip
para o bucket do Amazon S3.
Uso do AWS CLI
A AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que permite interagir com os serviços da AWS usando comandos no shell da linha de comando. Para concluir as etapas nesta página, é necessário o seguinte:
Para fazer o upload usando AWS CLI
-
No prompt de comando, navegue até o diretório em que seu arquivo
plugins.zip
está armazenado. Por exemplo:cd plugins
-
Use o comando a seguir para listar todos os seus buckets do Amazon S3.
aws s3 ls
-
Use o seguinte comando para listar os arquivos e pastas no bucket do Amazon S3 para seu ambiente.
aws s3 ls s3://
YOUR_S3_BUCKET_NAME
-
Use o seguinte comando para carregar o
plugins.zip
arquivo no bucket do Amazon S3 para seu ambiente.aws s3 cp plugins.zip s3://
YOUR_S3_BUCKET_NAME
/plugins.zip
Usar o console do Amazon S3
O console do Amazon S3 é uma interface de usuário baseada na Web que permite criar e gerenciar os recursos no bucket do Amazon S3.
Fazer o upload usando o console do Amazon S3
-
Abra a página Ambientes
no console do Amazon MWAA. -
Escolha um ambiente.
-
Selecione o link do bucket do S3 no código do DAG no painel do S3 para abrir seu bucket de armazenamento no console do Amazon S3.
-
Escolha Carregar.
-
Escolha Adicionar arquivo.
-
Selecione a cópia local do seu
plugins.zip
e escolha Carregar.
Instalando plug-ins personalizados em seu ambiente
Esta seção descreve como instalar os plug-ins personalizados que você carregou no seu bucket do Amazon S3 especificando o caminho para o arquivo plugins.zip e especificando a versão do arquivo plugins.zip sempre que o arquivo zip for atualizado.
Como especificar o caminho para plugins.zip
no console Amazon MWAA (pela primeira vez)
Se for a primeira vez que você faz o upload de um plugins.zip
para o seu bucket do Amazon S3, também será preciso especificar o caminho para o arquivo no console do Amazon MWAA. Você só precisa concluir esta etapa uma vez.
-
Abra a página Ambientes
no console do Amazon MWAA. -
Escolha um ambiente.
-
Selecione a opção Editar.
-
No código DAG no painel Amazon S3, escolha Navegar S3 ao lado do campo Arquivos de plugin - opcional.
-
Selecione o
plugins.zip
arquivo no bucket do Amazon S3. -
Selecione Escolher.
-
Selecione Avançar, Atualizar ambiente.
Como especificar a versão plugins.zip
no console do Amazon MWAA
É necessário especificar a versão do seu arquivo plugins.zip
no console do Amazon MWAA sempre que você fizer o upload de uma nova versão do seu plugins.zip
no bucket do Amazon S3.
-
Abra a página Ambientes
no console do Amazon MWAA. -
Escolha um ambiente.
-
Selecione a opção Editar.
-
No painel Código DAG no Amazon S3 , escolha uma versão do
plugins.zip
na lista suspensa. -
Escolha Próximo.
Exemplos de casos de uso para plugins.zip
-
Saiba como criar um plug-in personalizado em Plug-in personalizado com o Apache Hive e o Hadoop.
-
Saiba como criar um plug-in personalizado em Plugin personalizado para corrigir PythonVirtualEnvOperator .
-
Saiba como criar um plug-in personalizado em Plugin personalizado com a Oracle.
-
Saiba como criar um plug-in personalizado em Como alterar o fuso horário de um DAG no Amazon MWAA.
Próximas etapas
-
Teste seus DAGs, plug-ins personalizados e dependências do Python localmente usando aws-mwaa-local-runner
no GitHub.