View a markdown version of this page

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

Esta página descreve os comandos da CLI do Apache Airflow compatíveis e não compatíveis no Amazon Managed Workflows para 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 do Airflow. 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 Atualizar para o Airflow 3.

  • v2: estrutura de comandos 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 agora é dags unpause no 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
Versões secundárias Command

v3.0.6, v3.2.1

assets details

v3.0.6, v3.2.1

assets list

v3.0.6, v3.2.1

assets materialize

v3.0.6, v3.2.1

backfill create

v3.0.6, v3.2.1

cheat-sheet

v3.0.6, v3.2.1

connections add

v3.0.6, v3.2.1

connections delete

v3.0.6, v3.2.1

dags delete

v3.0.6, v3.2.1

dags list

v3.0.6, v3.2.1

dags list-jobs

v3.0.6, v3.2.1

dags list-import-errors

v3.0.6, v3.2.1

dags list-runs

v3.0.6, v3.2.1

dags next-execution

v3.0.6, v3.2.1

dags pause

v3.0.6, v3.2.1

dags report

v3.0.6, v3.2.1

dags reserialize

v3.0.6, v3.2.1

dags show

v3.0.6, v3.2.1

dags state

v3.0.6, v3.2.1

dags test

v3.0.6, v3.2.1

dags trigger

v3.0.6, v3.2.1

dags unpause

v3.0.6, v3.2.1

db clean

v3.0.6, v3.2.1

providers behaviours

v3.0.6, v3.2.1

providers get

v3.0.6, v3.2.1

providers hooks

v3.0.6, v3.2.1

providers links

v3.0.6, v3.2.1

providers list

v3.0.6, v3.2.1

notificações de provedores

v3.0.6, v3.2.1

providers secrets

v3.0.6, v3.2.1

providers triggerer

v3.0.6, v3.2.1

providers widgets

v3.0.6, v3.2.1

roles add-perms

v3.0.6, v3.2.1

roles del-perms

v3.0.6, v3.2.1

roles create

v3.0.6, v3.2.1

roles list

v3.0.6, v3.2.1

tasks clear

v3.0.6, v3.2.1

tasks failed-deps

v3.0.6, v3.2.1

tasks list

v3.0.6, v3.2.1

tasks render

v3.0.6, v3.2.1

tasks state

v3.0.6, v3.2.1

tasks states-for-dag-run

v3.0.6, v3.2.1

tasks test

v3.0.6, v3.2.1

variables delete

v3.0.6, v3.2.1

variables get

v3.0.6, v3.2.1

variables set

v3.0.6, v3.2.1

variables list

v3.0.6, v3.2.1

version

Apache Airflow v2

Como usar comandos que analisam DAGs

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

Apache Airflow v2.0.2
  • dags backfill

  • dags list

  • dags list-runs

  • dags next-execution

Você pode usar estes comandos da CLI se seus DAGs não usarem 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 exemplo de código 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 Airflow CLI usando um proxy de túnel SSH para um bastion host Linux.

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