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

如何从Cloud Run调用Google Cloud Workflow中的指定端点

从Cloud Run调用Google Cloud Workflow指定端点操作指南

前置要求

你需要先确认已经完成以下准备:

  • 目标Workflow已经部署完成,且你知晓其所属的项目ID、部署区域、Workflow名称
  • 你拥有对应Google Cloud项目的IAM权限调整权限,可给Cloud Run服务账号分配权限

步骤1:配置IAM调用权限

Cloud Run服务默认使用Google Cloud自动生成的运行时服务账号,你需要给该账号分配Workflow的调用权限:

  1. 进入Cloud Run控制台,打开你当前部署的服务详情页,在「安全」标签页找到当前使用的服务账号邮箱,默认格式为[PROJECT-NUMBER]-compute@developer.gserviceaccount.com
  2. 进入IAM控制台,给上述服务账号添加角色:roles/workflows.invoker,该角色仅授予Workflow调用权限,符合最小权限原则

步骤2:获取目标Workflow的调用端点

每个部署完成的Workflow都有固定的调用端点,格式如下:

https://[REGION]-workflows.googleapis.com/v1/projects/[PROJECT-ID]/locations/[REGION]/workflows/[WORKFLOW-NAME]/executions

你只需要把对应占位符替换成你实际的项目ID、部署区域、Workflow名称即可得到指定Workflow的调用端点。


步骤3:在Cloud Run业务代码中发起调用

你可以直接在Cloud Run部署的业务代码中,通过Google Cloud官方SDK或者原生HTTP请求调用上述端点,以下是Python示例代码:

import os
import requests
import google.auth
from google.auth.transport.requests import Request

# 自动获取Cloud Run运行时的身份凭证
credentials, project_id = google.auth.default(
    scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
credentials.refresh(Request())
auth_header = {"Authorization": f"Bearer {credentials.token}"}

# 替换为你的实际Workflow端点
WORKFLOW_ENDPOINT = "https://[REGION]-workflows.googleapis.com/v1/projects/[PROJECT-ID]/locations/[REGION]/workflows/[WORKFLOW-NAME]/executions"

# 传入Workflow需要的参数
workflow_input = {
    "argument": '{"project_name": "测试项目", "creator": "user01"}'
}

response = requests.post(WORKFLOW_ENDPOINT, headers=auth_header, json=workflow_input)
print(response.json())

如果使用其他编程语言,逻辑完全一致:先获取运行时身份凭证,携带凭证向Workflow端点发起POST请求,传入所需参数即可。


常见问题排查

  • 调用返回403:确认服务账号已经分配roles/workflows.invoker角色,且权限配置已经生效(通常配置后1-2分钟生效)
  • 调用返回404:确认Workflow端点中的项目ID、区域、Workflow名称拼写完全正确,且Workflow已经处于已部署状态

内容的提问来源于stack exchange,提问作者Tuljaram Singh Thakur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:18:02