Référence des commandes de la CLI Apache Airflow - Amazon Managed Workflows for Apache Airflow

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Référence des commandes de la CLI Apache Airflow

Cette rubrique décrit les commandes de la CLI Apache Airflow prises en charge et non prises en charge sur Amazon Managed Workflows pour Apache Airflow.

Astuce

L'API REST est plus moderne que la CLI et est conçue pour une intégration programmatique avec des systèmes externes. REST est la méthode préférée pour interagir avec Apache Airflow.

Prérequis

La section suivante décrit les étapes préliminaires requises pour utiliser les commandes et les scripts de cette page.

Accès

AWS CLI

The AWS Command Line Interface (AWS CLI) est un outil open source que vous pouvez utiliser pour interagir avec les AWS services à l'aide de commandes dans votre interface de ligne de commande. Pour effectuer les étapes indiquées sur cette page, vous avez besoin des éléments suivants :

Qu'est-ce qui a changé ?

  • v3 : architecture Airflow. Apache Airflow v3 introduit des modifications architecturales majeures afin d'améliorer la sécurité et l'évolutivité, ainsi que de faciliter la maintenance. Pour en savoir plus, reportez-vous à la section Mise à niveau vers Airflow 3.

  • v2 : structure de commande Airflow CLI. La CLI Apache Airflow v2 est organisée de telle sorte que les commandes associées sont regroupées sous forme de sous-commandes, ce qui signifie que vous devez mettre à jour les scripts Apache Airflow v1 si vous souhaitez passer à Apache Airflow v2. Par exemple, unpause dans Apache Airflow v1, c'est dags unpause dans Apache Airflow v2. Pour en savoir plus, reportez-vous aux modifications apportées à la CLI Airflow dans la version 2.0.

Commandes CLI prises en charge

La section suivante répertorie les commandes de la CLI Apache Airflow disponibles sur Amazon MWAA.

Commandes prises en charge

Apache Airflow v3
Apache Airflow v2
Versions mineures Commande

version 2.0 et versions ultérieures

aide-mémoire

version 2.0 et versions ultérieures

connexions ajouter

version 2.0 et versions ultérieures

suppression des connexions

v2.2+ (remarque)

remblai de Dags

version 2.0 et versions ultérieures

jours supprimer

v2.2+ (remarque)

liste des jours

version 2.0 et versions ultérieures

liste de jours-jobs

v2.6 et versions ultérieures

jours list-import-errors

v2.2+ (remarque)

jours list-runs

v2.2+ (remarque)

jours de prochaine exécution

version 2.0 et versions ultérieures

pause de jours

version 2.0 et versions ultérieures

rapport de jours

v2.4 et versions ultérieures

jours resérialisés

version 2.0 et versions ultérieures

affichage des jours

version 2.0 et versions ultérieures

état des jours

version 2.0 et versions ultérieures

test de jours

version 2.0 et versions ultérieures

déclencheur Dags

version 2.0 et versions ultérieures

jours d'inpause

v2.4 et versions ultérieures

base de données propre

version 2.0 et versions ultérieures

comportements des fournisseurs

version 2.0 et versions ultérieures

les fournisseurs obtiennent

version 2.0 et versions ultérieures

crochets pour fournisseurs

version 2.0 et versions ultérieures

liens vers les fournisseurs

version 2.0 et versions ultérieures

liste des fournisseurs

v2.8 et versions ultérieures

notifications des fournisseurs

v2.6 et versions ultérieures

secrets des fournisseurs

v2.7+

déclencheur des fournisseurs

version 2.0 et versions ultérieures

widgets des fournisseurs

v2.6 et versions ultérieures

rôles add perms

v2.6 et versions ultérieures

rôles del-perms

v2.6 et versions ultérieures

les rôles créent

version 2.0 et versions ultérieures

liste des rôles

version 2.0 et versions ultérieures

tâches claires

version 2.0 et versions ultérieures

tâches échouées-deps

version 2.0 et versions ultérieures

liste des tâches

version 2.0 et versions ultérieures

rendu des tâches

version 2.0 et versions ultérieures

tâches exécutées

version 2.0 et versions ultérieures

état des tâches

version 2.0 et versions ultérieures

tâches states-for-dag-run

version 2.0 et versions ultérieures

test de tâches

version 2.0 et versions ultérieures

suppression de variables

version 2.0 et versions ultérieures

les variables obtiennent

version 2.0 et versions ultérieures

ensemble de variables

version 2.0 et versions ultérieures

liste de variables

version 2.0 et versions ultérieures

Version

Utilisation de commandes qui analysent DAGs

Si votre environnement exécute Apache Airflow v2.0.2, les commandes CLI qui DAGs analysent échoueront si le DAG utilise des plugins qui dépendent de packages installés via un : requirements.txt

Apache Airflow v2.0.2
  • dags backfill

  • dags list

  • dags list-runs

  • dags next-execution

Vous pouvez utiliser ces commandes CLI si vous DAGs n'utilisez pas de plugins qui dépendent de packages installés via unrequirements.txt.

Exemple de code

La section suivante contient des exemples de différentes manières d'utiliser la CLI Apache Airflow.

Définir, obtenir ou supprimer une variable Apache Airflow v2

Vous pouvez utiliser l'exemple de code suivant pour définir, obtenir ou supprimer une variable au format 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

Ajouter une configuration lors du déclenchement d'un DAG

Vous pouvez utiliser l'exemple de code suivant avec Apache Airflow v2 pour ajouter une configuration lors du déclenchement d'un DAG, telle que. 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)

Exécuter des commandes CLI sur un tunnel SSH vers un hôte bastion

Utilisez l'exemple suivant pour exécuter des commandes de la CLI Airflow à l'aide d'un proxy de tunnel SSH vers un hôte Linux Bastion.

Utilisation de 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