Apache Airflow webログオントークンの作成 - Amazon Managed Workflows for Apache Airflow

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Apache Airflow webログオントークンの作成

このページのコマンドを使用してウェブログイントークンを生成し、直接Apache Airflow 用の Amazon マネージドワークフロー API 呼び出しをコマンドシェルで行うことができます。例えば、トークンを取得し、Amazon MWAA API を使用してプログラムで DAG をデプロイできます。次のセクションでは、 AWS CLI 、bash スクリプト、POST API リクエスト、または Python スクリプトを使用して Apache Airflow Web ログイントークンを作成するステップについて説明します。レスポンスでリターンされるトークンは 60 秒間有効です。

前提条件

以下のセクションでは、このページのコマンドとスクリプトを使用するために必要な準備手順について説明します。

アクセス

AWS CLI

AWS Command Line Interface (AWS CLI) は、コマンドラインシェルでコマンドを使用して AWS サービスとやり取りするためのオープンソースツールです。このページのステップを完了するには、以下のものが必要です。

AWS CLI を使用する場合

次の例では、AWS CLI の 「create-web-login-token」 コマンドを使用して Apache Airflow ウェブログイントークンを作成します。

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

Bash スクリプトを使用する

この例では、bashスクリプトを使用して、AWS CLI の 「create-web-login-token」 コマンドを呼び出して Apache Airflow の Web ログイントークンを作成します。

  1. 以下のコードサンプルの内容をコピーし、ローカルに 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. 赤色のプレースホルダーを YOUR_HOST_NAMEYOUR_ENVIRONMENT_NAME に置き換えます。たとえば、パブリックネットワークのホスト名は次のようになります (https://を除く)。

    123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
  3. (オプション) macOS と Linux ユーザーは、次のコマンドを実行して、スクリプトが実行可能であることを確認しなければならないことがあります。

    chmod +x get-web-token.sh
  4. 次のスクリプトを実行して、Web へのログイントークンを作成します。

    ./get-web-token.sh
  5. コマンドプロンプトに次のように表示されるはずです。

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

POST API リクエストを使用します。

次の例では、POST API リクエストを使用して Apache Airflow ウェブログイントークンを作成します。

  1. 次の URL をコピーして、REST API クライアントの URL フィールドに貼り付けます。

    https://YOUR_HOST_NAME/aws_mwaa/aws-console-sso?login=true#WebToken
  2. 赤色のプレースホルダーを代わりに YOUR_HOST_NAME を使用してください。たとえば、パブリックネットワークのホスト名は次のようになります (https://を除く)。

    123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
  3. 次の JSON をコピーして、REST API クライアントの本文フィールドに貼り付けます。

    { "name": "YOUR_ENVIRONMENT_NAME" }
  4. 赤色のプレースホルダーを YOUR_ENVIRONMENT_NAME の代わりに使用してください。

  5. 認証フィールドにキーと値のペアを追加します。たとえば、Postman を使用している場合は、[ AWS 署名] を選択し、以下を入力します。

    • [AccessKey] 内の AWS_ACCESS_KEY_ID

    • [SecretKey] 内の AWS_SECRET_ACCESS_KEY

  6. 以下のようなレスポンスが表示されます。

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

Python スクリプトを使用します

以下の例では、Python スクリプトの「boto3 create_web_login_token」メソッドを使用して、Apache Airflow の Web ログイン・トークンを作成しています。このスクリプトは、Amazon MWAA の外部で実行できます。必要なことは、boto3 ライブラリをインストールすることだけです。ライブラリをインストールするための仮想環境を作成することもできます。アカウントに対して「 AWS の認証資格情報」 を設定していると仮定しています。

  1. 以下のコードサンプルの内容をコピーし、ローカルに 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. 赤色のプレースホルダーを YOUR_ENVIRONMENT_NAME の代わりに使用してください。

  3. 次のスクリプトを実行して、Web へのログイントークンを作成します。

    python3 create-web-login-token.py

次のステップ

  • 「CreateWebLoginToken」 でウェブログイントークンの作成に使用される Amazon MWAA API オペレーションをご覧ください。