

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建 Apache Airflow Web 服务器访问令牌
<a name="call-mwaa-apis-web"></a>

您可以使用本页中的命令创建 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` 域，无需进行任何更改。

**Contents**
+ [先决条件](#call-mwaa-apis-web-prereqs)
  + [访问](#access-airflow-ui-prereqs-access)
  + [AWS CLI](#access-airflow-ui-prereqs-cli)
+ [使用 AWS CLI](#create-web-login-token-cli)
+ [使用 bash 脚本](#create-web-login-token-bash)
+ [使用 Python 脚本](#create-web-login-token-python)
+ [接下来做什么？](#mwaa-webcli-next-up)

## 先决条件
<a name="call-mwaa-apis-web-prereqs"></a>

下一节介绍了使用本页上的命令和脚本所需的初步步骤。

### 访问
<a name="access-airflow-ui-prereqs-access"></a>
+ 在 AWS Identity and Access Management (IAM) 中访问 [Apache Airflow 用户界面访问策略：亚马逊 MWAAWeb ServerAccess](access-policies.md#web-ui-access) 中的 Amazon MWAA 权限策略的 AWS 账户。
+ 在 AWS Identity and Access Management (IAM) 中访问 Amazon MWAA 权限策略 [完整的 API 和控制台访问政策：Amazon MWAAFull ApiAccess](access-policies.md#full-access-policy) 的 AWS 账户。

### AWS CLI
<a name="access-airflow-ui-prereqs-cli"></a>

AWS Command Line Interface (AWS CLI) 是一种开源工具，您可以用来在命令行 Shell 中使用命令与 AWS 服务进行交互。要完成本节中的步骤，您需要以下满足以下条件：
+ [AWS CLI – 安装版本 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)。
+ [AWS CLI – 使用 `aws configure` 进行快速配置](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。

## 使用 AWS CLI
<a name="create-web-login-token-cli"></a>

以下示例使用 AWS CLI 中的 [create-web-login-token](https://docs.aws.amazon.com/cli/latest/reference/mwaa/create-web-login-token.html) 命令创建 Apache Airflow Web 登录令牌。

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

## 使用 bash 脚本
<a name="create-web-login-token-bash"></a>

以下示例使用 bash 脚本调用 AWS CLI 中的 [create-web-login-token](https://docs.aws.amazon.com/cli/latest/reference/mwaa/create-web-login-token.html) 命令来创建 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
   ```

1. 用*红色*占位符代替 `YOUR_HOST_NAME` 和 `YOUR_ENVIRONMENT_NAME`。例如，公有网络的主机名可能如下所示（没有 *https://）*：

   ```
   123456a0-0101-2020-9e11-1b159eec9000.c2.us-east-1.airflow.amazonaws.com
   ```

1. （可选）macOS 和 Linux 用户可能需要运行以下命令以确保脚本可执行。

   ```
   chmod +x get-web-token.sh
   ```

1. 运行以下脚本可获取 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 脚本
<a name="create-web-login-token-python"></a>

以下示例使用 Python 脚本中的 [boto3 create\$1web\$1login\$1token](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/mwaa.html#MWAA.Client.create_web_login_token) 方法来创建 Apache Airflow Web 登录令牌。您可以在 Amazon MWAA 之外运行此脚本。您只需安装 boto3 库。您可能需要创建一个虚拟环境来安装该库。该环境假设您已经为账户[配置了 AWS 身份验证凭证](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration)。

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)
   ```

1. 用*红色*占位符代替 `YOUR_ENVIRONMENT_NAME`。

1. 运行以下脚本可获取 Web 登录令牌。

   ```
   python3 create-web-login-token.py
   ```

## 接下来做什么？
<a name="mwaa-webcli-next-up"></a>
+ 在 [CreateWebLoginToken](https://docs.aws.amazon.com/mwaa/latest/API/API_CreateWebLoginToken.html) 上浏览用于创建 Web 登录令牌的 Amazon MWAA API 操作。