Referência de comandos da CLI do Apache Airflow - Amazon Managed Workflows for Apache Airflow

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á.

Referência de comandos da CLI do Apache Airflow

Este tópico descreve os comandos da CLI do Apache Airflow compatíveis e não suportados nos fluxos de trabalho gerenciados da Amazon para o Apache Airflow.

dica

A API REST é mais moderna que a CLI e foi projetada para integração programática com sistemas externos. REST é a forma preferida de interagir com o Apache Airflow.

Pré-requisitos

A seção a seguir descreve as etapas preliminares necessárias para usar os comandos e scripts desta página.

Acesso

AWS CLI

O AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que você pode usar para interagir com AWS serviços usando comandos em seu shell de linha de comando. Para concluir as etapas nesta página, é necessário o seguinte:

O que mudou?

  • v3: Arquitetura de fluxo de ar. O Apache Airflow v3 introduz mudanças arquitetônicas revolucionárias para oferecer maior segurança e escalabilidade, além de facilitar a manutenção. Para saber mais, consulte Atualizando para o Airflow 3.

  • v2: Estrutura de comando da CLI do Airflow. A CLI do Apache Airflow v2 é organizada para que os comandos relacionados sejam agrupados como subcomandos, o que significa que você precisa atualizar os scripts do Apache Airflow v1 se quiser atualizar para o Apache Airflow v2. Por exemplo, unpause no Apache Airflow v1 está no dags unpause Apache Airflow v2. Para saber mais, consulte as alterações da CLI do Airflow na versão 2.0.

Comandos CLI compatíveis

A seção a seguir lista os comandos da CLI do Apache Airflow disponíveis no Amazon MWAA.

Comandos compatíveis

Apache Airflow v3
Apache Airflow v2

Usando comandos que analisam DAGs

Se seu ambiente estiver executando o Apache Airflow v2.0.2, os comandos da CLI que DAGs analisam falharão se o DAG usar plug-ins que dependem de pacotes instalados por meio de: requirements.txt

Apache Airflow v2.0.2
  • dags backfill

  • dags list

  • dags list-runs

  • dags next-execution

Você pode usar esses comandos da CLI se DAGs não usar plug-ins que dependam de pacotes instalados por meio de um. requirements.txt

Código de exemplo

A seção a seguir contém exemplos de maneiras diferentes de usar a CLI do Apache Airflow.

Definir, obter ou excluir uma variável do Apache Airflow v2

É possível usar o código de exemplo a seguir para definir, obter ou excluir uma variável no formato de <script> <mwaa env name> get | set | delete <variable> <variable value> </variable> </variable>.

[ $# -eq 0 ] && echo "Usage: $0 MWAA environment name " && exit if [[ $2 == "" ]]; then dag="variables list" elif [ $2 == "get" ] || [ $2 == "delete" ] || [ $2 == "set" ]; then dag="variables $2 $3 $4 $5" else echo "Not a valid command" exit 1 fi CLI_JSON=$(aws mwaa --region $AWS_REGION create-cli-token --name $1) \ && CLI_TOKEN=$(echo $CLI_JSON | jq -r '.CliToken') \ && WEB_SERVER_HOSTNAME=$(echo $CLI_JSON | jq -r '.WebServerHostname') \ && CLI_RESULTS=$(curl --request POST "https://$WEB_SERVER_HOSTNAME/aws_mwaa/cli" \ --header "Authorization: Bearer $CLI_TOKEN" \ --header "Content-Type: text/plain" \ --data-raw "$dag" ) \ && echo "Output:" \ && echo $CLI_RESULTS | jq -r '.stdout' | base64 --decode \ && echo "Errors:" \ && echo $CLI_RESULTS | jq -r '.stderr' | base64 --decode

Adicionar uma configuração ao acionar um DAG

Você pode usar o código de exemplo a seguir com o Apache Airflow v2 para adicionar uma configuração ao acionar um DAG, como. airflow trigger_dag 'dag_name' —conf '{"key":"value"}'

import boto3 import json import requests import base64 mwaa_env_name = 'YOUR_ENVIRONMENT_NAME' dag_name = 'YOUR_DAG_NAME' key = "YOUR_KEY" value = "YOUR_VALUE" conf = "{\"" + key + "\":\"" + value + "\"}" client = boto3.client('mwaa') mwaa_cli_token = client.create_cli_token( Name=mwaa_env_name ) mwaa_auth_token = 'Bearer ' + mwaa_cli_token['CliToken'] mwaa_webserver_hostname = 'https://{0}/aws_mwaa/cli'.format(mwaa_cli_token['WebServerHostname']) raw_data = "trigger_dag {0} -c '{1}'".format(dag_name, conf) mwaa_response = requests.post( mwaa_webserver_hostname, headers={ 'Authorization': mwaa_auth_token, 'Content-Type': 'text/plain' }, data=raw_data ) mwaa_std_err_message = base64.b64decode(mwaa_response.json()['stderr']).decode('utf8') mwaa_std_out_message = base64.b64decode(mwaa_response.json()['stdout']).decode('utf8') print(mwaa_response.status_code) print(mwaa_std_err_message) print(mwaa_std_out_message)

Execute comandos CLI em um túnel SSH para um bastion host

Use o exemplo a seguir para executar comandos da CLI do Airflow usando um proxy de túnel SSH para um Linux Bastion Host.

Como usar cURL
  1. ssh -D 8080 -f -C -q -N YOUR_USER@YOUR_BASTION_HOST
  2. curl -x socks5h://0:8080 --request POST https://YOUR_HOST_NAME/aws_mwaa/cli --header YOUR_HEADERS --data-raw YOUR_CLI_COMMAND