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.
Utilisation de l'API REST Apache Airflow
Amazon Managed Workflows for Apache Airflow (Amazon MWAA) permet d'interagir avec vos environnements Apache Airflow directement à l'aide de l'API REST Apache Airflow pour les environnements exécutant Apache Airflow v2.4.3 et versions ultérieures. Cela vous permet d'accéder à vos environnements Amazon MWAA et de les gérer par programmation, offrant ainsi un moyen standardisé d'invoquer des flux de travail d'orchestration des données, de gérer vos DAG et de surveiller l'état de divers composants d'Apache Airflow tels que la base de données de métadonnées, le déclencheur et le planificateur.
Pour favoriser l'évolutivité lors de l'utilisation de l'API REST Apache Airflow, Amazon MWAA vous offre la possibilité de dimensionner horizontalement la capacité du serveur Web afin de faire face à une demande accrue, qu'il s'agisse de demandes d'API REST, d'utilisation de l'interface de ligne de commande (CLI) ou d'utilisateurs simultanés de l'interface utilisateur (UI) Apache Airflow. Pour plus d'informations sur la manière dont Amazon MWAA fait évoluer les serveurs Web, consultez. Configuration du dimensionnement automatique du serveur Web Amazon MWAA
Vous pouvez utiliser l'API REST Apache Airflow pour implémenter les cas d'utilisation suivants pour vos environnements :
-
Accès par programmation : vous pouvez désormais démarrer les exécutions d'Apache Airflow DAG, gérer des ensembles de données et récupérer l'état de divers composants tels que la base de données de métadonnées, les déclencheurs et les planificateurs sans avoir recours à l'interface utilisateur ou à l'interface de ligne de commande d'Apache Airflow.
-
Intégration à des applications externes et à des microservices : le support de l'API REST vous permet de créer des solutions personnalisées qui intègrent vos environnements Amazon MWAA à d'autres systèmes. Par exemple, vous pouvez démarrer des flux de travail en réponse à des événements provenant de systèmes externes, tels que des tâches de base de données terminées ou l'inscription de nouveaux utilisateurs.
-
Surveillance centralisée : vous pouvez créer des tableaux de bord de surveillance qui regroupent l'état de vos DAG dans plusieurs environnements Amazon MWAA, permettant ainsi une surveillance et une gestion centralisées.
Pour plus d'informations sur l'API REST Apache Airflow, consultez la référence de l'API REST Apache Airflow.
En utilisantInvokeRestApi, vous pouvez accéder à l'API REST Apache Airflow à l'aide AWS d'informations d'identification. Vous pouvez également y accéder en obtenant un jeton d'accès au serveur Web, puis en l'utilisant pour l'appeler.
Si vous rencontrez un message Update your environment to use InvokeRestApi d'erreur lors de l'utilisation de l'InvokeRestApiopération, cela signifie que vous devez mettre à jour votre environnement Amazon MWAA. Cette erreur se produit lorsque votre environnement Amazon MWAA n'est pas compatible avec les dernières modifications liées à InvokeRestApi cette fonctionnalité. Pour résoudre ce problème, mettez à jour votre environnement Amazon MWAA afin d'intégrer les modifications nécessaires à InvokeRestApi cette fonctionnalité.
La durée d'expiration par défaut de l'InvokeRestApiopération est de 10 secondes. Si l'opération ne se termine pas dans ce délai de 10 secondes, elle est automatiquement interrompue et une erreur est générée. Assurez-vous que vos appels d'API REST sont conçus pour être exécutés dans ce délai afin d'éviter les erreurs.
Pour favoriser l'évolutivité lors de l'utilisation de l'API REST Apache Airflow, Amazon MWAA vous offre la possibilité de dimensionner horizontalement la capacité du serveur Web afin de faire face à une demande accrue, qu'il s'agisse de demandes d'API REST, d'utilisation de l'interface de ligne de commande (CLI) ou d'utilisateurs simultanés de l'interface utilisateur (UI) Apache Airflow. Pour plus d'informations sur la manière dont Amazon MWAA fait évoluer les serveurs Web, consultez. Configuration du dimensionnement automatique du serveur Web Amazon MWAA
Vous pouvez utiliser l'API REST Apache Airflow pour implémenter les cas d'utilisation suivants pour vos environnements :
-
Accès par programmation : vous pouvez désormais démarrer les exécutions d'Apache Airflow DAG, gérer des ensembles de données et récupérer l'état de divers composants tels que la base de données de métadonnées, les déclencheurs et les planificateurs sans avoir recours à l'interface utilisateur ou à l'interface de ligne de commande d'Apache Airflow.
-
Intégration à des applications externes et à des microservices : le support de l'API REST vous permet de créer des solutions personnalisées qui intègrent vos environnements Amazon MWAA à d'autres systèmes. Par exemple, vous pouvez démarrer des flux de travail en réponse à des événements provenant de systèmes externes, tels que des tâches de base de données terminées ou l'inscription de nouveaux utilisateurs.
-
Surveillance centralisée : vous pouvez créer des tableaux de bord de surveillance qui regroupent l'état de vos DAG dans plusieurs environnements Amazon MWAA, permettant ainsi une surveillance et une gestion centralisées.
Pour plus d'informations sur l'API REST Apache Airflow, consultez la référence de l'API REST Apache Airflow.
En utilisantInvokeRestApi, vous pouvez accéder à l'API REST Apache Airflow à l'aide AWS d'informations d'identification. Vous pouvez également y accéder en obtenant un jeton d'accès au serveur Web, puis en l'utilisant pour l'appeler.
-
Si vous rencontrez un message
Update your environment to use InvokeRestApid'erreur lors de l'utilisation de l'InvokeRestApiopération, cela signifie que vous devez mettre à jour votre environnement Amazon MWAA. Cette erreur se produit lorsque votre environnement Amazon MWAA n'est pas compatible avec les dernières modifications liées àInvokeRestApicette fonctionnalité. Pour résoudre ce problème, mettez à jour votre environnement Amazon MWAA afin d'intégrer les modifications nécessaires àInvokeRestApicette fonctionnalité. -
La durée d'expiration par défaut de l'
InvokeRestApiopération est de 10 secondes. Si l'opération ne se termine pas dans ce délai de 10 secondes, elle est automatiquement interrompue et une erreur est générée. Assurez-vous que vos appels d'API REST sont conçus pour être exécutés dans ce délai afin d'éviter les erreurs.
Important
La taille de la charge utile de réponse ne peut pas dépasser 6 Mo. Vous RestApi échouez si cette limite est dépassée.
Utilisez les exemples suivants pour effectuer des appels d'API à l'API REST Apache Airflow et démarrer une nouvelle exécution DAG :
Rubriques
Octroi de l'accès à l'API REST Apache Airflow : airflow : InvokeRestApi
Pour accéder à l'API REST Apache Airflow à l'aide AWS d'informations d'identification, vous devez accorder l'airflow:InvokeRestApiautorisation dans votre politique IAM. Dans l'exemple de politique suivant, spécifiez leAdmin,Op, UserViewer, ou le Public rôle dans {airflow-role} afin de personnaliser le niveau d'accès des utilisateurs. Pour plus d'informations, reportez-vous à la section Rôles https://airflow.apache.org/docs/apache-airflow/1.10.6/security.html?highlight=ldap#default-roles
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowMwaaRestApiAccess", "Effect": "Allow", "Action": ["airflow:InvokeRestApi","airflow:CreateWebLoginToken"], "Resource": [ "arn:aws:airflow:{your-region}:{your-account-id}:role/{your-environment-name}/{airflow-role}" ] } ] }
Note
Lors de la configuration d'un serveur Web privé, l'InvokeRestApiaction ne peut pas être invoquée depuis l'extérieur d'un cloud privé virtuel (VPC). Vous pouvez utiliser la aws:SourceVpc touche pour appliquer un contrôle d'accès plus précis à cette opération. Pour plus d'informations, consultez aws : SourceVpc.
Appel de l'API REST Apache Airflow
L'exemple de script Python suivant montre comment utiliser l'API REST Apache Airflow. Le script répertorie les DAG disponibles dans votre environnement et crée une variable Apache Airflow :
import boto3 env_name = "MyAirflowEnvironment" def list_dags(client): request_params = { "Name": env_name, "Path": "/dags", "Method": "GET", "QueryParameters": { "paused": False } } response = client.invoke_rest_api( **request_params ) print("Airflow REST API response: ", response['RestApiResponse']) def create_variable(client): request_params = { "Name": env_name, "Path": "/variables", "Method": "POST", "Body": { "key": "test-restapi-key", "value": "test-restapi-value", "description": "Test variable created by MWAA InvokeRestApi API", } } response = client.invoke_rest_api( **request_params ) print("Airflow REST API response: ", response['RestApiResponse']) if __name__ == "__main__": client = boto3.client("mwaa") list_dags(client) create_variable(client)
Création d'un jeton de session de serveur Web et appel de l'API REST Apache Airflow
Pour créer un jeton d'accès au serveur Web, utilisez la fonction Python suivante. Cette fonction appelle d'abord l'API Amazon MWAA pour obtenir un jeton de connexion Web. Le jeton de connexion Web, qui expire au bout de 60 secondes, est ensuite échangé contre un jeton de session Web, qui vous permet d'accéder au serveur Web et d'utiliser l'API REST Apache Airflow. Si vous avez besoin de plus de 10 transactions par seconde (TPS) de capacité de régulation, vous pouvez utiliser cette méthode pour accéder à l'API REST Apache Airflow.
Le jeton de session expire au bout de 12 heures.
Astuce
Les principales modifications apportées aux exemples de code suivants d'Apache Airflow v2 à v3 sont les suivantes :
-
Le chemin de l'API REST est passé de
/api/v1à/api/v2 -
Le chemin de connexion est passé de
/aws_mwaa/loginà/pluginsv2/aws_mwaa/login -
La réponse de connexion
response.cookies["_token"]contient des informations de jeton que vous devez utiliser pour les appels d'API suivants -
Pour un appel d'API REST, vous devez transmettre
jwt_tokendes informations dans les en-têtes comme suit :headers = { "Authorization": f"Bearer {jwt_token}", "Content-Type": "application/json" }
Une fois l'authentification terminée, vous disposez des informations d'identification nécessaires pour commencer à envoyer des demandes aux points de terminaison de l'API. Dans l'exemple de la section suivante, utilisez le point de terminaisondags/{dag_name}/dagRuns.