创建 Apache Airflow Web 服务器访问令牌
您可以使用本页中的命令创建 Web 服务器访问令牌。访问令牌让您能够访问 Amazon MWAA 环境。例如,您可以获取令牌,然后使用 Amazon MWAA API 以编程方式部署 DAG。下一节包括使用 AWS CLI、bash 脚本、POST API 请求或 Python 脚本创建 Apache Airflow Web 登录令牌的步骤。响应中返回的令牌在 60 秒内有效。
重要
自 2025 年 8 月 19 日起,Amazon MWAA 增加了对 IPv6 端点的支持,现在支持 IPv4 和 IPv6 端点。从该日期起,所有新创建的环境都将使用 .on.aws 域作为 Airflow 用户界面 (UI)。对于这些新创建的环境,客户必须将其 Airflow UI 从 .on.aws 域迁移到 .amazonaws.com 域。用于 Web 服务器和数据库的虚拟私有云 (VPC) 端点服务将保持其当前 .amazonaws.com 域,无需进行任何更改。
先决条件
下一节介绍了使用本页上的命令和脚本所需的初步步骤。
访问
-
在 AWS Identity and Access Management (IAM) 中访问 Apache Airflow UI 访问策略:AmazonMWAAWebServerAccess 中的 Amazon MWAA 权限策略的 AWS 账户。
-
在 AWS Identity and Access Management (IAM) 中访问 Amazon MWAA 权限策略 完整的 API 和控制台访问策略:AmazonMWAAFullApiAccess 的 AWS 账户。
AWS CLI
AWS Command Line Interface (AWS CLI) 是一种开源工具,您可以用来在命令行 Shell 中使用命令与 AWS 服务进行交互。要完成本节中的步骤,您需要以下满足以下条件:
使用 AWS CLI
以下示例使用 AWS CLI 中的 create-web-login-token 命令创建 Apache Airflow Web 登录令牌。
aws mwaa create-web-login-token --nameYOUR_ENVIRONMENT_NAME
使用 bash 脚本
以下示例使用 bash 脚本调用 AWS CLI 中的 create-web-login-token 命令来创建 Apache Airflow Web 登录令牌。
-
复制以下代码示例的内容,并在本地另存为
get-web-token.sh。#!/bin/bash HOST=YOUR_HOST_NAMEYOUR_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}
使用 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
接下来做什么?
-
在 CreateWebLoginToken 上浏览用于创建 Web 登录令牌的 Amazon MWAA API 操作。