Apache Airflow ウェブサーバーアクセストークンを作成する - Amazon Managed Workflows for Apache Airflow

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

Apache Airflow ウェブサーバーアクセストークンを作成する

このページのコマンドを使用して、ウェブサーバーアクセストークンを作成できます。アクセストークンを使用すると、Amazon MWAA 環境にアクセスできます。例えば、トークンを取得し、Amazon MWAA API を使用してプログラムで DAG をデプロイできます。次のセクションでは、、bash スクリプト AWS CLI、POST API リクエスト、または Python スクリプトを使用して Apache Airflow ウェブログイントークンを作成する手順について説明します。レスポンスでリターンされるトークンは 60 秒間有効です。

前提条件

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

アクセス

AWS CLI

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

の使用 AWS CLI

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

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

Bash スクリプトを使用する

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

  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 署名] を選択し、以下を入力します。

    • AccessKeyAWS_ACCESS_KEY_ID

    • SecretKeyAWS_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

次のステップ

  • でウェブログイントークンを作成するために使用される Amazon MWAA API オペレーションについて説明しますCreateWebLoginToken