本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Apache Airflow Web 服务器访问令牌
您可以使用本页中的命令创建 Web 服务器访问令牌。访问令牌让您能够访问 Amazon MWAA 环境。例如,您可以获取令牌,然后使用 Amazon MW APIs AA DAGs 以编程方式进行部署。下一节包括使用 AWS CLI、bash 脚本、POST API 请求或 Python 脚本创建 Apache Airflow 网页登录令牌的步骤。响应中返回的令牌在 60 秒内有效。
重要
自 2025 年 8 月 19 日起,Amazon MWAA 增加了对 IPv6 终端节点的支持,现在又增加了对终端节点的支持 IPv4 。 IPv6 从该日期起,所有新创建的环境都将使用.on.aws
域名作为 Airflow 用户界面 (UI)。对于这些新创建的环境,客户必须将其 Airflow UI 从.on.aws
域迁移.amazonaws.com
到域中。用于网络服务器和数据库的虚拟私有云 (VPC) Private Cloud 端点服务将保持其.amazonaws.com
当前域名,无需进行任何更改。
先决条件
下一节介绍了使用本页上的命令和脚本所需的初步步骤。
访问
-
AWS 在 AWS Identity and Access Management (IAM) 中访问中的亚马逊 MWAA 权限策略的账户。Apache Airflow 用户界面访问策略:亚马逊 MWAAWeb ServerAccess
-
AWS 在 AWS Identity and Access Management (IAM) 中访问亚马逊 MWAA 权限策略的账户。完整的 API 和控制台访问政策:Amazon MWAAFull ApiAccess
AWS CLI
AWS Command Line Interface (AWS CLI) 是一个开源工具,可让您使用命令行 shell 中的命令与 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 网页登录令牌。
-
复制以下代码示例的内容,并在本地另存为
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 -
用占位符代
red
替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) -
用占位符代替
red
。YOUR_ENVIRONMENT_NAME
-
运行以下脚本可获取 Web 登录令牌。
python3 create-web-login-token.py
接下来做什么?
-
浏览用于创建网页登录令牌的 Amazon MWAA API 操作,网址为。CreateWebLoginToken