Como adicionar ou atualizar DAGs - Amazon Managed Workflows for Apache Airflow

Como adicionar ou atualizar DAGs

Gráficos acíclicos direcionados (Directed Acyclic Graphs, DAGs) são definidos em um arquivo Python que define a estrutura do DAG como código. É possível usar a AWS CLI, ou o console do Amazon S3, para fazer upload de DAGs para o ambiente. Este tópico descreve as etapas para adicionar ou atualizar DAGs do Apache Airflow em seu ambiente Amazon Managed Workflows para Apache Airflow usando a pasta dags em seu bucket do Amazon S3.

Pré-requisitos

Você precisará do seguinte antes de concluir as etapas nesta página.

  • Permissões: sua Conta da 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 obter 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 em requirements.txt deve ser configurado com Acesso público bloqueado e Versionamento habilitado.

Como funciona

Um Gráfico acíclico direcionado (Directed Acyclic Graphs, DAGs) é definido em um único arquivo Python que define a estrutura do DAG como código. Ele consiste em:

Para executar uma plataforma Apache Airflow em um ambiente Amazon MWAA, você precisa copiar sua definição de DAG para a pasta dags em seu bucket de armazenamento. Por exemplo, a pasta DAG em seu bucket de armazenamento deve ter a seguinte aparência:

exemplo Pasta do DAG
dags/ └ dag_def.py

O Amazon MWAA sincroniza automaticamente objetos novos e alterados do seu bucket do Amazon S3 para a pasta /usr/local/airflow/dags dos contêineres de scheduler e operador do Amazon MWAA a cada 30 segundos, preservando a hierarquia de arquivos da fonte do Amazon S3, independentemente do tipo de arquivo. O tempo que os novos DAGs levam para aparecer na sua IU do Apache Airflow é controlado por scheduler.dag_dir_list_interval. As alterações nos DAGs existentes serão coletadas no próximo ciclo de processamento do DAG.

nota

Você não precisa incluir o arquivo de configuração airflow.cfg na pasta do DAG. É possível substituir as configurações padrão do Apache Airflow no console do Amazon MWAA. Para obter mais informações, consulte Como usar opções de configuração do Apache Airflow no Amazon MWAA.

O que mudou?

Para revisar as alterações em uma versão específica do Apache Airflow, consulte a página Notas de versão.

Como testar DAGs 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. Você pode usá-la para executar um ambiente local do Apache Airflow 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-docker-images no GitHub.

Como fazer upload do código do DAG para o Amazon S3

É possível usar o console do Amazon S3 ou a AWS Command Line Interface (AWS CLI) para fazer upload do código do DAG para o bucket do Amazon S3. As etapas a seguir pressupõem que você esteja fazendo upload do código (.py) em uma pasta chamada dags em seu bucket do Amazon S3.

Como usar o AWS CLI

A AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que pode ser usada para interagir com os serviços da AWS por meio de 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
  1. Use o comando a seguir para listar todos os seus buckets do Amazon S3.

    aws s3 ls
  2. 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
  3. Os comandos a seguir fazem upload de um arquivo dag_def.py para uma pasta dags.

    aws s3 cp dag_def.py s3://amzn-s3-demo-bucket/dags/

    Se uma pasta chamada dags ainda não existir em seu bucket do Amazon S3, este comando cria a pasta dags e faz upload do arquivo denominado dag_def.py para a nova pasta.

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. As etapas a seguir pressupõem que você tenha uma pasta DAGs chamada dags.

Fazer o upload usando o console do Amazon S3
  1. Abra a página Ambientes no console do Amazon MWAA.

  2. Escolha um ambiente.

  3. Selecione o link do bucket do S3 no código do DAG no painel do S3 para abrir seu bucket de armazenamento no console.

  4. Escolha a pasta dags.

  5. Escolha Carregar.

  6. Escolha Adicionar arquivo.

  7. Selecione a cópia local do seu dag_def.py e escolha Carregar.

Como especificar o caminho para sua pasta DAGs no console Amazon MWAA (pela primeira vez)

As etapas a seguir pressupõem que você está especificando o caminho para uma pasta do bucket do Amazon S3 chamada dags.

  1. Abra a página Ambientes no console do Amazon MWAA.

  2. Escolha o ambiente em que você deseja executar DAGs.

  3. Escolha Editar.

  4. No painel código DAG no painel Amazon S3, escolha Navegar pelo S3 ao lado do campo pasta DAG.

  5. Selecione sua pasta dags.

  6. Selecione Escolher.

  7. Selecione Avançar, Atualizar ambiente.

Como acessar as alterações na IU do Apache Airflow

Você precisa de permissões Política de acesso à IU do Apache Airflow: AmazonMWAAWebServerAccess para sua Conta da AWS no AWS Identity and Access Management (IAM) para acessar sua IU do Apache Airflow.

Para acessar sua IU do Apache Airflow
  1. Abra a página Ambientes no console do Amazon MWAA.

  2. Escolha um ambiente.

  3. Escolha Abrir a IU do Airflow.

Próximas etapas

Teste seus DAGs, plug-ins personalizados e dependências do Python localmente usando aws-mwaa-docker-images no GitHub.