You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GCP Cloud Composer中通过Token免谷歌账户访问Airflow UI?

GCP Cloud Composer 无谷歌账户访问Airflow UI的解决方案

核心说明

GCP Cloud Composer支持通过生成短期身份验证令牌,构造无需谷歌账户直接访问Airflow UI的链接,类似AWS MWAA的功能。令牌通过gcloud CLI或GCP API生成,有效期通常为1小时,生成时需要具备对应Composer环境的权限(如roles/composer.environmentRunner或更高权限)。

Bash 解决方案

以下脚本会自动获取Airflow UI地址并生成带令牌的登录链接:

#!/bin/bash

# 配置参数
ENVIRONMENT_NAME="你的Composer环境名"
LOCATION="你的环境所在区域(如us-central1)"

# 获取Airflow UI基础URL
AIRFLOW_URI=$(gcloud composer environments describe $ENVIRONMENT_NAME --location=$LOCATION --format "value(config.airflowUri)")

# 生成带令牌的登录链接
LOGIN_URL=$(gcloud composer environments run $ENVIRONMENT_NAME --location=$LOCATION web-login -- --redirect-to="/")

echo "无需账户的Airflow UI登录链接:"
echo $LOGIN_URL

说明:web-login命令默认会生成包含短期令牌的完整登录URL,--redirect-to参数可指定跳转后的Airflow页面(默认是首页)。

Python 解决方案

使用google-cloud-composer客户端库和google-auth来生成令牌并构造链接:
首先安装依赖:

pip install google-cloud-composer google-auth

然后编写代码:

import google.auth
from google.cloud import composer_v1

def generate_airflow_login_link(environment_name, location):
    # 获取认证凭据
    credentials, project_id = google.auth.default()
    client = composer_v1.EnvironmentsClient(credentials=credentials)
    
    # 获取环境详情,提取Airflow URI
    environment_path = client.environment_path(project_id, location, environment_name)
    environment = client.get_environment(name=environment_path)
    airflow_uri = environment.config.airflow_uri
    
    # 生成登录令牌
    request = composer_v1.GenerateAirflowLoginTokenRequest(
        name=environment_path,
        redirect_uri=f"{airflow_uri}/"
    )
    response = client.generate_airflow_login_token(request=request)
    
    # 构造完整登录链接
    login_link = f"{airflow_uri}/login?token={response.token}"
    return login_link

# 配置参数
ENV_NAME = "你的Composer环境名"
LOCATION = "你的环境所在区域"

# 生成并打印链接
login_url = generate_airflow_login_link(ENV_NAME, LOCATION)
print(f"无需账户的Airflow UI登录链接:{login_url}")

说明:该方法通过GCP官方API生成令牌,无需依赖gcloud CLI,适合集成到Python应用中。生成的令牌有效期为1小时,过期后需重新生成。

注意事项

  • 生成令牌的账号需要拥有roles/composer.environmentRunner或更高权限(如roles/composer.admin)。
  • 令牌为短期有效,不可长期保存使用。
  • 若需要分享链接给无GCP账户的用户,确保链接仅在有效期内使用,且用户无需额外登录验证。

内容的提问来源于stack exchange,提问作者Nikola197

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 13:42:45