Création d'un jeton d'accès au serveur Web 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.

Création d'un jeton d'accès au serveur Web Apache Airflow

Vous pouvez utiliser les commandes de cette page pour créer un jeton d'accès au serveur Web. Un jeton d'accès vous permet d'accéder à votre environnement Amazon MWAA. Par exemple, vous pouvez obtenir un jeton, puis déployer des DAG par programmation à l'aide des API Amazon MWAA. La section suivante décrit les étapes à suivre pour créer un jeton de connexion Web Apache Airflow à l' AWS CLI aide d'un script bash, d'une requête d'API POST ou d'un script Python. Le jeton renvoyé dans la réponse est valide pendant 60 secondes.

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 qui vous permet d'interagir avec les AWS services à l'aide de commandes dans votre shell de ligne de commande. Pour effectuer les étapes indiquées sur cette page, vous avez besoin des éléments suivants :

En utilisant le AWS CLI

L'exemple suivant utilise la create-web-login-tokencommande du AWS CLI pour créer un jeton de connexion Web Apache Airflow.

aws mwaa create-web-login-token --name YOUR_ENVIRONMENT_NAME

Utiliser un script bash

L'exemple suivant utilise un script bash pour appeler la create-web-login-tokencommande dans le AWS CLI afin de créer un jeton de connexion Web Apache Airflow.

  1. Copiez le contenu de l'exemple de code suivant et enregistrez-le localement sousget-web-token.sh.

    #!/bin/bash HOST=YOUR_HOST_NAME YOUR_URL=https://$HOST/aws_mwaa/aws-console-sso?login=true# WEB_TOKEN=$(aws mwaa create-web-login-token --name YOUR_ENVIRONMENT_NAME --query WebToken --output text) echo $YOUR_URL$WEB_TOKEN
  2. Remplacez les espaces réservés en rouge par YOUR_HOST_NAME et. YOUR_ENVIRONMENT_NAME Par exemple, le nom d'hôte d'un réseau public peut ressembler à ceci (sans le https ://) :

    123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
  3. (facultatif) Les utilisateurs de macOS et Linux devront peut-être exécuter la commande suivante pour s'assurer que le script est exécutable.

    chmod +x get-web-token.sh
  4. Exécutez le script suivant pour obtenir un jeton de connexion Web.

    ./get-web-token.sh
  5. Vous devriez voir ce qui suit dans votre invite de commande :

    https://123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com/aws_mwaa/aws-console-sso?login=true#{your-web-login-token}

Utilisation d'une requête d'API POST

L'exemple suivant utilise une requête d'API POST pour créer un jeton de connexion Web Apache Airflow.

  1. Copiez l'URL suivante et collez-la dans le champ URL de votre client d'API REST.

    https://YOUR_HOST_NAME/aws_mwaa/aws-console-sso?login=true#WebToken
  2. Remplacez les espaces réservés en rouge par. YOUR_HOST_NAME Par exemple, le nom d'hôte d'un réseau public peut ressembler à ceci (sans le https ://) :

    123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
  3. Copiez le code JSON suivant et collez-le dans le champ body de votre client d'API REST.

    { "name": "YOUR_ENVIRONMENT_NAME" }
  4. Remplacez l'espace réservé en rouge par. YOUR_ENVIRONMENT_NAME

  5. Ajoutez des paires clé-valeur dans le champ d'autorisation. Par exemple, si vous utilisez Postman, choisissez AWS Signature, puis entrez votre :

    • AWS_ACCESS_KEY_ID dans AccessKey

    • AWS_SECRET_ACCESS_KEY dans SecretKey

  6. Vous devriez voir la réponse suivante :

    { "webToken": "<Short-lived token generated for enabling access to the Apache Airflow Webserver UI>", "webServerHostname": "<Hostname for the WebServer of the environment>" }

Utilisation d'un script Python

L'exemple suivant utilise la méthode boto3 create_web_login_token dans un script Python pour créer un jeton de connexion Web Apache Airflow. Vous pouvez exécuter ce script en dehors d'Amazon MWAA. La seule chose que vous devez faire est d'installer la bibliothèque boto3. Vous souhaiterez peut-être créer un environnement virtuel pour installer la bibliothèque. Cela suppose que vous avez configuré les informations d' AWS authentification pour votre compte.

  1. Copiez le contenu de l'exemple de code suivant et enregistrez-le localement souscreate-web-login-token.py.

    import boto3 mwaa = boto3.client('mwaa') response = mwaa.create_web_login_token( Name="YOUR_ENVIRONMENT_NAME" ) webServerHostName = response["WebServerHostname"] webToken = response["WebToken"] airflowUIUrl = 'https://{0}/aws_mwaa/aws-console-sso?login=true#{1}'.format(webServerHostName, webToken) print("Here is your Airflow UI URL: ") print(airflowUIUrl)
  2. Remplacez l'espace réservé en rouge par. YOUR_ENVIRONMENT_NAME

  3. Exécutez le script suivant pour obtenir un jeton de connexion Web.

    python3 create-web-login-token.py

Quelle est la prochaine étape ?

  • Découvrez l'opération d'API Amazon MWAA utilisée pour créer un jeton de connexion Web à l'CreateWebLoginTokenadresse.