本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Apache Airflow Web 服务器访问令牌
您可以使用此页面上的命令创建 Web 服务器访问令牌。访问令牌允许您访问您的 Amazon MWAA 环境。例如,您可以获取令牌,然后使用 Amazon MWAA API 以编程方式部署 DAG。下一节包括使用 Amazon CLI、bash 脚本、POST API 请求或 Python 脚本创建 Apache Airflow 网络登录令牌的步骤。响应中返回的令牌在 60 秒内有效。
先决条件
下一节介绍了使用本页上的命令和脚本所需的初步步骤。
访问
-
Amazon 在 Amazon Identity and Access Management (IAM) 中访问中的亚马逊 MWAA 权限策略的账户。Apache Airflow 用户界面访问策略:AmazonmWAA 访问权限 WebServer
-
Amazon 在 Amazon Identity and Access Management (IAM) 中访问亚马逊 MWAA 权限策略的账户。完整的 API 和控制台访问政策:AmazonmWAA FullApi 访问权限
Amazon CLI
Amazon Command Line Interface (Amazon CLI) 是一个开源工具,可让您使用命令行 shell 中的命令与 Amazon 服务进行交互。要完成本节中的步骤,您需要以下满足以下条件:
使用 Amazon CLI
以下示例使用中的create-web-login-token命令创建 Apache Airflow 网络登录令牌。 Amazon CLI
aws mwaa create-web-login-token --name
YOUR_ENVIRONMENT_NAME
使用 bash 脚本
以下示例使用 bash 脚本调用中的create-web-login-token命令 Amazon CLI 来创建 Apache Airflow Web 登录令牌。
-
复制以下代码示例的内容,并在本地另存为
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 --nameYOUR_ENVIRONMENT_NAME
--query WebToken --output text) echo $YOUR_URL$WEB_TOKEN -
用
红色
占位符代替YOUR_HOST_NAME
和YOUR_ENVIRONMENT_NAME
。例如,公有网络的主机名可能如下所示(没有 https://):123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
-
(可选)macOS 和 Linux 用户可能需要运行以下命令以确保脚本可执行。
chmod +x get-web-token.sh
-
运行以下脚本可获取 Web 登录令牌。
./get-web-token.sh
-
您应该在命令提示符中看到如下内容:
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 Web 登录令牌。
-
复制以下 URL 并将其粘贴到 REST API 客户端的 URL 字段中。
https://
YOUR_HOST_NAME
/aws_mwaa/aws-console-sso?login=true#WebToken -
用
红色
占位符代替YOUR_HOST_NAME
。例如,公有网络的主机名可能如下所示(没有 https://):123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
-
复制以下 JSON 并将其粘贴到 REST API 客户端的正文字段中。
{ "name": "
YOUR_ENVIRONMENT_NAME
" } -
用
红色
占位符代替YOUR_ENVIRONMENT_NAME
。 -
在授权字段中添加键值对。例如,如果您使用的是 Postman,请选择 Amazon 签名,然后输入:
-
AccessKey 中的
AWS_ACCESS_KEY_ID
-
SecretKey 中的
AWS_SECRET_ACCESS_KEY
-
-
您应看到以下响应:
{ "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
-
复制以下代码示例的内容,并在本地另存为
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) -
用
红色
占位符代替YOUR_ENVIRONMENT_NAME
。 -
运行以下脚本可获取 Web 登录令牌。
python3 create-web-login-token.py
接下来做什么?
-
浏览用于创建网页登录令牌的 Amazon MWAA API 操作,网址为。CreateWebLoginToken