Creare un token di accesso al server web Apache Airflow - Amazon Managed Workflows for Apache Airflow

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creare un token di accesso al server web Apache Airflow

Puoi utilizzare i comandi in questa pagina per creare un token di accesso al server Web. Un token di accesso ti consente di accedere al tuo ambiente Amazon MWAA. Ad esempio, puoi ottenere un token e quindi distribuire i DAG in modo programmatico utilizzando le API di Amazon MWAA. La sezione seguente include i passaggi per creare un token di accesso web Apache Airflow utilizzando uno script bash, una richiesta API POST o uno script Python. AWS CLI Il token restituito nella risposta è valido per 60 secondi.

Prerequisiti

La sezione seguente descrive i passaggi preliminari necessari per utilizzare i comandi e gli script in questa pagina.

Accesso

AWS CLI

Il AWS Command Line Interface (AWS CLI) è uno strumento open source che consente di interagire con i AWS servizi utilizzando i comandi nella shell della riga di comando. Per completare la procedura descritta in questa pagina, è necessario quanto segue:

Utilizzando il AWS CLI

L'esempio seguente utilizza il create-web-login-tokencomando in AWS CLI per creare un token di accesso web Apache Airflow.

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

Utilizzando uno script bash

L'esempio seguente utilizza uno script bash per chiamare il create-web-login-tokencomando in per creare un token AWS CLI di accesso web Apache Airflow.

  1. Copia il contenuto del seguente esempio di codice e salvalo localmente come. get-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. Sostituisci e con i segnaposto in rosso. YOUR_HOST_NAME YOUR_ENVIRONMENT_NAME Ad esempio, un nome host per una rete pubblica può avere il seguente aspetto (senza https://):

    123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
  3. (opzionale) Gli utenti macOS e Linux potrebbero dover eseguire il comando seguente per assicurarsi che lo script sia eseguibile.

    chmod +x get-web-token.sh
  4. Esegui lo script seguente per ottenere un token di accesso Web.

    ./get-web-token.sh
  5. Dovresti vedere quanto segue nel prompt dei comandi:

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

Utilizzo di una richiesta API POST

L'esempio seguente utilizza una richiesta API POST per creare un token di accesso web Apache Airflow.

  1. Copia il seguente URL e incollalo nel campo URL del tuo client API REST.

    https://YOUR_HOST_NAME/aws_mwaa/aws-console-sso?login=true#WebToken
  2. Sostituisci i segnaposto in rosso con. YOUR_HOST_NAME Ad esempio, un nome host per una rete pubblica può avere il seguente aspetto (senza https://):

    123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
  3. Copia il seguente codice JSON e incollalo nel campo body del tuo client API REST.

    { "name": "YOUR_ENVIRONMENT_NAME" }
  4. Sostituisci il segnaposto in rosso con. YOUR_ENVIRONMENT_NAME

  5. Aggiungi coppie chiave-valore nel campo di autorizzazione. Ad esempio, se utilizzi Postman, scegli AWS Signature, quindi inserisci:

    • AWS_ACCESS_KEY_ID in AccessKey

    • AWS_SECRET_ACCESS_KEY in SecretKey

  6. Dovrebbe essere visualizzata la seguente risposta:

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

Usare uno script Python

L'esempio seguente utilizza il metodo boto3 create_web_login_token in uno script Python per creare un token di accesso web Apache Airflow. Puoi eseguire questo script al di fuori di Amazon MWAA. L'unica cosa che devi fare è installare la libreria boto3. Potresti voler creare un ambiente virtuale per installare la libreria. Si presuppone che tu abbia configurato le credenziali di AWS autenticazione per il tuo account.

  1. Copia il contenuto del seguente esempio di codice e salvalo localmente come. create-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. Sostituisci il segnaposto in rosso con. YOUR_ENVIRONMENT_NAME

  3. Esegui lo script seguente per ottenere un token di accesso web.

    python3 create-web-login-token.py

Fasi successive

  • Esplora il funzionamento dell'API Amazon MWAA utilizzato per creare un token di accesso Web all'indirizzo. CreateWebLoginToken