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 dependências do Python
Uma dependência do Python é qualquer pacote ou distribuição que não esteja incluído na instalação básica do Apache Airflow para sua versão do Apache Airflow em seu ambiente Amazon Managed Workflows for Apache Airflow. Este tópico descreve as etapas para instalar dependências do Apache Airflow Python em seu ambiente Amazon MWAA usando requirements.txt
um arquivo em seu bucket do Amazon S3.
Sumário
Pré-requisitos
Você precisará do seguinte antes de concluir as etapas nesta página.
-
Permissões — Seu AWS administrador deve ter concedido acesso à política de controle de mazonMWAAFull ConsoleAccess acesso A para seu ambiente pelo administrador. Além disso, seu MWAA ambiente Amazon deve ser autorizado pela sua função de execução a acessar os AWS recursos 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 obter mais informações, consulte Modos de acesso do Apache Airflow.
-
Configuração do Amazon S3 — O bucket do Amazon S3 usado para armazenar DAGs seus plug-ins
plugins.zip
personalizados e dependências do Python deve ser configurado com acesso públicorequirements.txt
bloqueado e controle de versão ativado.
Como ele funciona
Na AmazonMWAA, você instala todas as dependências do Python fazendo o upload de um requirements.txt
arquivo no bucket do Amazon S3 e especificando a versão do arquivo no MWAA console da Amazon sempre que atualiza o arquivo. A Amazon MWAA pip3 install -r requirements.txt
executa para instalar as dependências do Python no agendador Apache Airflow e em cada um dos trabalhadores.
Para executar dependências do Python em seu ambiente, você deve fazer três coisas:
-
Crie um arquivo
requirements.txt
localmente. -
Faça upload do
requirements.txt
local para seu bucket no Amazon S3. -
Especifique a versão desse arquivo no campo Arquivo de requisitos no MWAA console da Amazon.
nota
Se esta é a primeira vez que você cria e carrega um requirements.txt
para o seu bucket do Amazon S3, você também precisa especificar o caminho para o arquivo no console da AmazonMWAA. Você só precisa concluir esta etapa uma vez.
Visão geral das dependências do Python
Você pode instalar extras do Apache Airflow e outras dependências do Python a partir do Python Package Index (PyPi.org), do Python wheels (.whl
) ou das dependências do Python hospedadas em um repositório privado compatível com/-503 em seu ambiente. PyPi PEP
Limites de localização e tamanho das dependências do Python
O Programador e os Trabalhadores do Apache Airflow procuram os pacotes no arquivo requirements.txt
e os pacotes são instalados no ambiente em /usr/local/airflow/.local/bin
.
-
Limites de tamanho. Recomendamos um arquivo
requirements.txt
que faça referência a bibliotecas cujo tamanho combinado seja menor que 1 GB. Quanto mais bibliotecas a Amazon MWAA precisar instalar, maior será o tempo de inicialização de um ambiente. Embora a Amazon MWAA não limite explicitamente o tamanho das bibliotecas instaladas, 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.
Como criar um arquivo requirements.txt
As etapas a seguir descrevem as etapas que recomendamos para criar um arquivo requirements.txt localmente.
Etapa 1: testar as dependências do Python usando o utilitário Amazon MWAA CLI
-
O utilitário de interface de linha de comando (CLI) replica localmente um ambiente Amazon Managed Workflows para Apache Airflow.
-
Ele CLI cria uma imagem de contêiner Docker localmente que é semelhante a uma imagem de MWAA produção da Amazon. Isso permite que você execute um ambiente Apache Airflow local para desenvolver e testar DAGs plug-ins e dependências personalizados antes da implantação na Amazon. MWAA
-
Para executar oCLI, veja o aws-mwaa-local-runner
ligado GitHub.
Etapa 2: criar o requirements.txt
A seção a seguir descreve como especificar dependências do Python do Python Package Indexrequirements.txt
.
Como fazer upload de requirements.txt
para o Amazon S3
Você pode usar o console do Amazon S3 ou o AWS Command Line Interface (AWS CLI) para carregar um requirements.txt
arquivo no seu bucket do Amazon S3.
Usando o AWS CLI
O AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que permite que você interaja com AWS serviços usando comandos em seu shell de linha de comando. Para concluir as etapas nesta página, é necessário o seguinte:
Para fazer o upload usando o AWS CLI
-
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
-
O comando a seguir faz upload de um arquivo
requirements.txt
para um bucket do Amazon S3.aws s3 cp requirements.txt s3://
YOUR_S3_BUCKET_NAME
/requirements.txt
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 MWAA console da Amazon. -
Escolha um ambiente.
-
Selecione o link do bucket S3 no DAGcódigo no painel S3 para abrir seu bucket de armazenamento no console do Amazon S3.
-
Escolha Carregar.
-
Escolha Adicionar arquivo.
-
Selecione a cópia local do seu
requirements.txt
e escolha Carregar.
Como instalar dependências do Python em seu ambiente
Esta seção descreve como instalar as dependências que você fez upload no seu bucket do Amazon S3 especificando o caminho para o arquivo requirements.txt e especificando a versão do arquivo requirements.txt sempre que for atualizado.
Especificando o requirements.txt
caminho para o MWAA console da Amazon (pela primeira vez)
Se esta é a primeira vez que você cria e carrega um requirements.txt
para o seu bucket do Amazon S3, você também precisa especificar o caminho para o arquivo no console da AmazonMWAA. Você só precisa concluir esta etapa uma vez.
-
Abra a página Ambientes
no MWAA console da Amazon. -
Escolha um ambiente.
-
Selecione Editar.
-
No DAGcódigo no painel Amazon S3, escolha Procurar no S3 ao lado do campo Arquivo de requisitos - opcional.
-
Selecione o arquivo
requirements.txt
no bucket do Amazon S3. -
Selecione Escolher.
-
Selecione Avançar, Atualizar ambiente.
É possível começar a usar os novos pacotes logo após a conclusão da atualização do ambiente.
Especificando a requirements.txt
versão no console da Amazon MWAA
Você precisa especificar a versão do seu requirements.txt
arquivo no MWAA console da Amazon sempre que fizer o upload de uma nova versão do seu arquivo requirements.txt
no bucket do Amazon S3.
-
Abra a página Ambientes
no MWAA console da Amazon. -
Escolha um ambiente.
-
Selecione Editar.
-
No DAGcódigo no painel do Amazon S3, escolha uma
requirements.txt
versão na lista suspensa. -
Selecione Avançar, Atualizar ambiente.
É possível começar a usar os novos pacotes logo após a conclusão da atualização do ambiente.
Como visualizar logs do seu requirements.txt
Você pode visualizar os registros do Apache Airflow para o Agendador ao agendar seus fluxos de trabalho e analisar sua pasta dags
. As etapas a seguir descrevem como abrir o grupo de registros do Scheduler no MWAA console da Amazon e visualizar os registros do Apache Airflow no CloudWatch console Logs.
Para visualizar os logs de um requirements.txt
-
Abra a página Ambientes
no MWAA console da Amazon. -
Escolha um ambiente.
-
Escolha grupo de logs de agendador do Airflow no painel Monitoramento.
-
Escolha o log
requirements_install_ip
em Fluxos de logs. -
Você deve ver a lista de pacotes que foram instalados no ambiente em
/usr/local/airflow/.local/bin
. Por exemplo:Collecting appdirs==1.4.4 (from -r /usr/local/airflow/.local/bin (line 1)) Downloading https://files.pythonhosted.org/packages/3b/00/2344469e2084fb28kjdsfiuyweb47389789vxbmnbjhsdgf5463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl Collecting astroid==2.4.2 (from -r /usr/local/airflow/.local/bin (line 2))
-
Analise a lista de pacotes e verifique se algum deles encontrou algum erro durante a instalação. Se algo der errado, é possível ver um erro semelhante ao seguinte:
2021-03-05T14:34:42.731-07:00 No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4)) No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
Próximas etapas
-
Teste seus DAGs plug-ins personalizados e dependências do Python localmente usando o on. aws-mwaa-local-runner
GitHub