application-integration-basics
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseApplication Integration Basics
Application Integration 基础
Application Integration is Google Cloud's serverless, auto-scaling Integration-Platform-as-a-Service (iPaaS) for connecting Google Cloud services and third-party SaaS applications. It runs event-driven workflows made of triggers, tasks, data mappings, and Integration Connectors connections without requiring you to manage servers. Use this skill to decide whether Application Integration fits a workload, set up a project and region, configure IAM and run-as service accounts, choose the right API or tool interface, and design around platform limits.
Application Integration 是 Google Cloud 的无服务器、自动扩缩容 Integration-Platform-as-a-Service (iPaaS),用于连接 Google Cloud 服务和第三方 SaaS 应用。它运行由触发器、任务、数据映射及 Integration Connectors 连接构成的事件驱动工作流,无需管理服务器。使用此 skill 可判断 Application Integration 是否适合某项工作负载、设置项目和区域、配置 IAM 及运行身份服务账户、选择合适的 API 或工具接口,并围绕平台限制进行设计。
When to Use Application Integration vs. Custom Glue Code
何时使用 Application Integration,何时使用自定义粘合代码
| Choose Application Integration when... | Choose custom code (Cloud Run / Cloud Functions) when... |
|---|---|
| Connecting SaaS apps (CRM, ERP, databases, Google Cloud services) via prebuilt Integration Connectors. | You need sub-second latency or custom binary protocols. |
| Orchestrating event-driven workflows from API, Pub/Sub, Cloud Scheduler, Salesforce, or Connector Event triggers. | Total workflow data exceeds 30 MB (or 8 MB for API trigger inputs and Connector payloads). |
| Transforming JSON/array data visually with Data Mapping or Jsonnet without deploying containers. | Synchronous runs take longer than 2 minutes or asynchronous runs take longer than 10 minutes. |
Pausing workflows for human review ( | You must call VPC-only HTTP endpoints directly without Private Service Connect connectors (Call REST Endpoint reaches the public internet only). |
Exposing enterprise workflows or connectors as tools to AI agents via ADK | You need arbitrary language packages or heavy in-memory compute beyond JavaScript (V8) or Jsonnet tasks. |
| 在以下情况下选择 Application Integration…… | 在以下情况下选择自定义代码(Cloud Run / Cloud Functions)…… |
|---|---|
| 通过预构建的 Integration Connectors 连接 SaaS 应用(CRM、ERP、数据库、Google Cloud 服务)。 | 需要亚秒级延迟或自定义二进制协议。 |
| 通过 API、Pub/Sub、Cloud Scheduler、Salesforce 或 Connector Event 触发器编排事件驱动工作流。 | 工作流数据总量超过 30 MB(API 触发器输入和 Connector 载荷超过 8 MB)。 |
| 无需部署容器,即可通过 Data Mapping 或 Jsonnet 可视化转换 JSON/array 数据。 | 同步运行超过 2 分钟或异步运行超过 10 分钟。 |
需要暂停工作流以供人工审核( | 必须直接调用仅限 VPC 的 HTTP 端点,且不能使用 Private Service Connect 连接器(Call REST Endpoint 只能访问公共互联网)。 |
需要通过 ADK | 需要 JavaScript (V8) 或 Jsonnet 任务之外的任意语言包,或需要高内存计算。 |
Safety and Confirmation Rules
安全与确认规则
- Read-only checks run freely: You may run ,
gcloud services list, and HTTPgcloud projects get-iam-policycalls toGETorhttps://integrations.googleapis.com/v1/...without asking first.https://connectors.googleapis.com/v1/... - Require explicit user confirmation before any state change: Always show the exact command or request payload and wait for user approval before:
- Enabling APIs ().
gcloud services enable - Provisioning a region (or
clients:provisiononterraform apply), especially with Customer-Managed Encryption Keys (CMEK), because enabling CMEK for a region cannot be undone.google_integrations_client - Modifying IAM policies (or
gcloud projects add-iam-policy-binding).gcloud iam service-accounts add-iam-policy-binding - Creating, uploading, publishing, unpublishing, executing, testing, or deleting any integration, version, auth profile, or connection.
- Enabling APIs (
- Never bundle destructive scripts that delete integrations, versions, auth profiles, or connections unattended.
- Ask the user before installing packages () or changing global gcloud settings such as
pip install; show the exact command first.gcloud config set auth/impersonate_service_account
- 只读检查可直接执行:无需事先询问,即可运行 、
gcloud services list,以及针对gcloud projects get-iam-policy或https://integrations.googleapis.com/v1/...的 HTTPhttps://connectors.googleapis.com/v1/...调用。GET - 任何状态变更前都必须取得用户明确确认:始终显示准确的命令或请求载荷,并在执行以下操作前等待用户批准:
- 启用 API()。
gcloud services enable - 预配区域(,或对
clients:provision执行google_integrations_client),尤其是使用 Customer-Managed Encryption Keys (CMEK) 时,因为某区域启用 CMEK 后无法撤销。terraform apply - 修改 IAM 策略(或
gcloud projects add-iam-policy-binding)。gcloud iam service-accounts add-iam-policy-binding - 创建、上传、发布、取消发布、调用、测试或删除任何集成、版本、认证配置或连接。
- 启用 API(
- 绝不打包会在无人值守状态下删除集成、版本、认证配置或连接的破坏性脚本。
- 安装软件包()或更改全局 gcloud 设置(例如
pip install)前,先询问用户;并先显示准确的命令。gcloud config set auth/impersonate_service_account
Choosing the Interface
选择接口
Application Integration has no command group (and no command group), and no Google-managed remote MCP server. The REST API is the primary control and execution interface.
gcloud integrationsgcloud connectors| Interface | What it covers | Authentication |
|---|---|---|
REST API ( | Full v1 surface: region provisioning, integrations, versions, download/upload, publish, execute, schedule, executions, suspensions, authConfigs, templates. | |
| Python discovery client | Full v1 surface via | Application Default Credentials ( |
Terraform ( | Infrastructure only: | ADC or Terraform provider credentials |
ADK ( | Exposes published API-trigger integrations or Integration Connectors actions/entities as tools for ADK agents (Python v0.1.0+, Java v0.3.0+). | ADC ( |
| Cloud console | Visual drag-and-drop editor, Quick/Advanced region setup, Approval task resolution, OAuth 2.0 authorization code consent flow. | Browser Google Cloud sign-in |
- Use only for generic Google Cloud tasks: enabling APIs (
gcloud), printing access tokens (gcloud services enable), managing IAM, and reading Cloud Logging (gcloud auth print-access-token).gcloud logging read - Integration Connectors includes an outbound MCP connector (and
MCP v1) that lets a workflow call an external MCP server as a connector target; this is an outbound connector, not a Google-managed MCP server for controlling Application Integration.v2 - Always use the global endpoint consistently for REST calls.
https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/... - Note on draft testing (): Although
integrations:testexists in the v1 REST API, its requiredPOST .../integrations/INTEGRATION_NAME:testvalue is not publicly documented, so do not invent one; test integrations by publishing to a non-production project and callingTestIntegrationsRequest.clientId.:execute - See references/api-access.md for authentication setup, commands, Python discovery client patterns, and ADK
curlconfiguration.ApplicationIntegrationToolset
Application Integration 没有 命令组(也没有 命令组),并且没有 Google 管理的远程 MCP server。REST API 是主要的控制和执行接口。
gcloud integrationsgcloud connectors| 接口 | 覆盖范围 | 身份验证 |
|---|---|---|
REST API( | 完整的 v1 功能范围:区域预配、集成、版本、下载/上传、发布、执行、调度、执行记录、暂停、authConfigs、模板。 | |
| Python discovery client | 通过 | Application Default Credentials( |
Terraform( | 仅限基础设施: | ADC 或 Terraform provider 凭据 |
ADK( | 将已发布的 API 触发集成或 Integration Connectors 操作/实体公开为 ADK Agent 的工具(Python v0.1.0+、Java v0.3.0+)。 | ADC( |
| Cloud console | 可视化拖放编辑器、Quick/Advanced 区域设置、Approval 任务处理,以及 OAuth 2.0 authorization code consent flow。 | 浏览器中的 Google Cloud 登录 |
- 仅将 用于通用 Google Cloud 任务:启用 API(
gcloud)、打印访问令牌(gcloud services enable)、管理 IAM,以及读取 Cloud Logging(gcloud auth print-access-token)。gcloud logging read - Integration Connectors 包含一个出站 MCP connector(和
MCP v1),允许工作流将外部 MCP server 作为 connector 目标进行调用;这是出站 connector,不是用于控制 Application Integration 的 Google 托管 MCP server。v2 - REST 调用时始终一致使用全局端点 。
https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/... - 关于草稿测试():尽管 v1 REST API 中存在
integrations:test,但其必需的POST .../integrations/INTEGRATION_NAME:test值没有公开文档,因此不要自行编造;请将集成发布到非生产项目,然后调用TestIntegrationsRequest.clientId来测试。:execute - 有关身份验证设置、命令、Python discovery client 模式和 ADK
curl配置,请参阅 references/api-access.md。ApplicationIntegrationToolset
Step-by-Step Region Setup Workflow
分步区域设置工作流
Application Integration is regional: confirm the target region is supported on Application Integration locations and use as a well-supported default when the user has no preference. The region is the in every REST path; no default-region setting applies to Application Integration. Provisioning is per region. Provisioning does not provision ; repeat region provisioning for every you use in . Ensure an active billing account is attached to before setup—an active billing account is required even when usage stays within the monthly free tier (see the Application Integration pricing page).
us-central1LOCATIONgcloudus-central1europe-west1LOCATIONPROJECT_IDPROJECT_IDApplication Integration 按区域部署:确认目标区域在 Application Integration locations 上受支持;如果用户没有偏好,使用支持较充分的默认区域 。区域是每个 REST 路径中的 ;Application Integration 不使用 的默认区域设置。预配按区域进行。预配 不会预配 ;请针对 中使用的每个 重复执行区域预配。设置前请确保 已关联有效账单账号——即使用量保持在每月免费额度内,也必须启用有效账单账号(请参阅 Application Integration pricing page)。
us-central1LOCATIONgcloudus-central1europe-west1PROJECT_IDLOCATIONPROJECT_ID1. Check and enable required APIs
1. 检查并启用所需 API
First check which APIs are already enabled (read-only):
bash
gcloud services list --enabled --project=PROJECT_ID \
--filter="config.name:(integrations.googleapis.com OR connectors.googleapis.com OR secretmanager.googleapis.com OR cloudkms.googleapis.com)"After getting user confirmation, enable the required APIs (add only if configuring CMEK):
cloudkms.googleapis.combash
gcloud services enable \
integrations.googleapis.com \
connectors.googleapis.com \
secretmanager.googleapis.com \
--project=PROJECT_ID首先检查哪些 API 已经启用(只读):
bash
gcloud services list --enabled --project=PROJECT_ID \
--filter="config.name:(integrations.googleapis.com OR connectors.googleapis.com OR secretmanager.googleapis.com OR cloudkms.googleapis.com)"获得用户确认后,启用所需 API(仅在配置 CMEK 时添加 ):
cloudkms.googleapis.combash
gcloud services enable \
integrations.googleapis.com \
connectors.googleapis.com \
secretmanager.googleapis.com \
--project=PROJECT_ID2. Verify setup IAM roles on the caller
2. 验证调用方的设置 IAM 角色
Setting up Application Integration requires , , and (plus for CMEK). Check current bindings (read-only):
roles/integrations.integrationAdminroles/connectors.adminroles/editorroles/cloudkms.adminbash
gcloud projects get-iam-policy PROJECT_ID --format=json设置 Application Integration 需要 、 和 (配置 CMEK 时还需要 )。检查当前绑定(只读):
roles/integrations.integrationAdminroles/connectors.adminroles/editorroles/cloudkms.adminbash
gcloud projects get-iam-policy PROJECT_ID --format=json3. Provision the region (LOCATION
)
LOCATION3. 预配区域(LOCATION
)
LOCATIONChoose one of the three supported paths after getting user confirmation:
-
Option A: REST ()
clients:provisionbashcurl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clients:provision"The response iswhen provisioning succeeds ({}does not applyclients:provision; set the run-as identity on each integration version viarunAsServiceAccount).IntegrationVersion.runAsServiceAccountis also returned when the region is already provisioned; the call does not change an existing region's settings. Change HTTP calls or encryption on an existing region from the console's Regions page (when the region is already{},ACTIVE,cloudKmsConfig, andenableHttpCallonenableManagedAiFeaturesare not applied). Ifclients:provisionwas already registered through Apigee Integration, provisioning fails.PROJECT_ID -
Option B: Cloud console Open, select
https://console.cloud.google.com/integrations, and click Quick setup (enables the APIs, creates the default service account, and uses Google-managed encryption) or Advanced setup (to configure CMEK, HTTP calls, AI features, governance, or variable masking). To add another region later, go to Regions > Provision new region.LOCATION -
Option C: Terraform () Use the
google_integrations_clientresource ingoogle_integrations_client. Do not sethashicorp/googleonrun_as_service_account—that argument was removed in provider v8.0.0 (August 26, 2026), and it mapped to thegoogle_integrations_clientclients:provisionfield, which is likewise not applied; set the run-as identity on each integration version (runAsServiceAccount) instead.IntegrationVersion.runAsServiceAccount
获得用户确认后,从以下三条受支持路径中选择一条:
-
选项 A:REST()
clients:provisionbashcurl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clients:provision"预配成功时响应为({}不会应用clients:provision;请通过runAsServiceAccount为每个集成版本设置运行身份)。IntegrationVersion.runAsServiceAccount也表示该区域已经预配;此调用不会更改现有区域的设置。如果区域已经处于{}状态,请通过 Cloud console 的 Regions 页面更改 HTTP 调用或加密设置(区域已经处于ACTIVE时,ACTIVE中的clients:provision、cloudKmsConfig和enableHttpCall不会生效)。如果enableManagedAiFeatures已经通过 Apigee Integration 注册,预配将失败。PROJECT_ID -
选项 B:Cloud console 打开,选择
https://console.cloud.google.com/integrations,然后点击 Quick setup(启用 API、创建默认 service account 并使用 Google 管理的加密)或 Advanced setup(配置 CMEK、HTTP 调用、AI 功能、治理或变量掩码)。如需稍后添加其他区域,请进入 Regions > Provision new region。LOCATION -
选项 C:Terraform() 在
google_integrations_client中使用hashicorp/googleresource。不要在google_integrations_client上设置google_integrations_client——该参数已从 provider v8.0.0(2026 年 8 月 26 日)中移除;它原先映射到run_as_service_account的clients:provision字段,而该字段同样不会生效;请改为在每个集成版本上设置运行身份(runAsServiceAccount)。IntegrationVersion.runAsServiceAccount
4. Sanity-check region access
4. 快速检查区域访问权限
Run a read-only list call against the region; a successful response is a good sign that the API is reachable in :
200 OKLOCATIONbash
curl -sS -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations"See references/provisioning-and-terraform.md for all fields, CMEK and governance options, and complete Terraform examples.
ProvisionClientRequest对该区域运行只读 list 调用;成功返回 是 API 可在 访问的良好迹象:
200 OKLOCATIONbash
curl -sS -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations"有关所有 字段、CMEK 和治理选项,以及完整的 Terraform 示例,请参阅 references/provisioning-and-terraform.md。
ProvisionClientRequestCore Concepts at a Glance
核心概念速览
- Integrations and Triggers: An integration is a workflow started by one or more triggers. Synchronous runs () wait for completion and return output (
SYNC, console test, syncintegrations.execute). Asynchronous runs (Call Integration) are fire-and-forget (ASYNC, Schedule, Cloud Scheduler, Cloud Pub/Sub, Salesforce triggers, and runs resumed after a suspension or approval).integrations.schedule - Tasks: Units of work chained after a trigger (such as ,
Data Mapping,Call REST Endpoint,Connectorson V8,JavaScript,Cloud Function,Approval,Suspend, loops, andTimer).Call Integration - Versions and Edit Locks: Only a version can be edited (locked to its author for 15 minutes after the last update). Only an
DRAFT(published) version runs from triggers. Publishing a version automatically unpublishes the prior active version and cancels any suspended executions of that prior version. Unpublishing moves an active version toACTIVE(SNAPSHOT). CallingPREVIOUSLY_PUBLISHEDsoft-deletes a version intoversions.delete(listed asARCHIVEDon the Integration versions documentation page).DELETED - Variables:
- Integration variables: Explicit inputs (), outputs (
IN),OUT, or internal variables withIN_OUT(IN_OUT_TYPE_UNSPECIFIED).$varName$ - Task variables: Auto-generated task outputs named where
`Task_<taskId>_<variableName>`is the bare task number intaskId(for example,taskConfigs[].taskIdtaskId->"1").$`Task_1_responseBody`$ - System variables: keys are backtick-wrapped (,
`ExecutionId`,`ExecutionMode`[`ErrorInfo`,message],code,`IntegrationName`,`Region`); reference them as`ProjectId`(a bare$`ExecutionId`$names a nonexistent integration variable and fails).$ExecutionId$ - Config variables (Preview): Environment-specific values defined in (with defaults in
integrationConfigParameters; a top-levelparameter.defaultValueon a draft is discarded) and supplied per environment invalueat publish time (namedconfigParameters; keys in`CONFIG_<NAME>`must exactly match a key inconfigParameters, backticks included, such asintegrationConfigParameters, because unknown keys are silently ignored—publish returns 200 and the default stays). Never store secrets in config variables—they are exported in plain text. Use an authentication profile ("`CONFIG_target_url`") or the Secret Manager task instead.authConfigs
- Integration variables: Explicit inputs (
- Suspensions: tasks pause up to 31 days and are resumed via the Suspensions API (
Suspend, with an optionalsuspensions:lift, requiringsuspensionResult).integrations.suspensions.lifttasks email approvers and can be approved or rejected in the Cloud console UI or viaApproval(suspensions:resolve:stateor"LIFTED", requiring"REJECTED"). Listing suspensions (integrations.suspensions.resolve) requiressuspensions.list. All three permissions are included inintegrations.suspensions.list(androles/integrations.suspensionResolver), and resuming also requiresroles/integrations.integrationAdminon the integration's run-as service account; always confirm with the user before lifting or resolving.roles/iam.serviceAccountUsertasks resume automatically.Timer - Authentication Profiles (): Reusable regional credential records (
authConfigs). They are not included when downloading an integration version.projects/PROJECT_ID/locations/LOCATION/authConfigs/AUTH_CONFIG_ID
See references/core-concepts.md for full details on version states, trigger types, task categories, variables, suspensions, and authentication profiles.
- 集成与触发器:集成是由一个或多个触发器启动的工作流。同步运行()会等待完成并返回输出(
SYNC、console test、同步integrations.execute)。异步运行(Call Integration)采用即发即忘方式(ASYNC、Schedule、Cloud Scheduler、Cloud Pub/Sub、Salesforce 触发器,以及在暂停或审批后恢复的运行)。integrations.schedule - 任务:触发器之后串联的工作单元,例如 、
Data Mapping、Call REST Endpoint、基于 V8 的Connectors、JavaScript、Cloud Function、Approval、Suspend、循环和Timer。Call Integration - 版本与编辑锁:只有 版本可以编辑(最后一次更新后 15 分钟内锁定给其作者)。只有
DRAFT(已发布)版本会由触发器运行。发布新版本会自动取消先前 active 版本的发布状态,并取消该先前版本所有处于暂停状态的执行。取消发布会将 active 版本转为ACTIVE(SNAPSHOT)。调用PREVIOUSLY_PUBLISHED会将版本软删除为versions.delete(在 Integration versions 文档页面上显示为ARCHIVED)。DELETED - 变量:
- Integration variables:显式输入()、输出(
IN)、OUT,或类型为IN_OUT的内部变量(IN_OUT_TYPE_UNSPECIFIED)。$varName$ - Task variables:自动生成的任务输出,名称格式为 ,其中
`Task_<taskId>_<variableName>`是taskId中的裸任务编号(例如taskConfigs[].taskId为taskId时,对应"1")。$`Task_1_responseBody`$ - System variables:键使用反引号包裹(、
`ExecutionId`、`ExecutionMode`[`ErrorInfo`、message]、code、`IntegrationName`、`Region`);引用方式为`ProjectId`(裸$`ExecutionId`$表示不存在的 integration variable,执行会失败)。$ExecutionId$ - Config variables(Preview):在 中定义的环境特定值(默认值位于
integrationConfigParameters;草稿顶层的parameter.defaultValue会被丢弃),并在发布时通过每个环境的value提供(命名为configParameters;`CONFIG_<NAME>`中的键必须与configParameters中的键完全一致,包括反引号,例如integrationConfigParameters,因为未知键会被静默忽略——发布会返回 200 并继续使用默认值)。切勿在 config variable 中存储 secret——它们会以明文导出。请改用 authentication profile("`CONFIG_target_url`")或 Secret Manager task。authConfigs
- Integration variables:显式输入(
- 暂停:任务最长可暂停 31 天,并通过 Suspensions API 恢复(
Suspend,可附带suspensions:lift,需要suspensionResult)。integrations.suspensions.lift任务会向审批人发送电子邮件,并可在 Cloud console UI 中批准或拒绝,也可通过Approval处理(suspensions:resolve为state或"LIFTED",需要"REJECTED")。列出暂停项(integrations.suspensions.resolve)需要suspensions.list。上述三种权限都包含在integrations.suspensions.list中(roles/integrations.suspensionResolver中也包含);恢复时还需要在集成的运行身份服务账户上拥有roles/integrations.integrationAdmin;解除或处理暂停前始终要先取得用户确认。roles/iam.serviceAccountUser任务会自动恢复。Timer - Authentication Profiles():可复用的区域级凭据记录(
authConfigs)。下载集成版本时不会包含它们。projects/PROJECT_ID/locations/LOCATION/authConfigs/AUTH_CONFIG_ID
有关版本状态、触发器类型、任务类别、变量、暂停和 authentication profile 的完整详情,请参阅 references/core-concepts.md。
IAM and the Run-As Service Account Requirement
IAM 与运行身份服务账户要求
Key IAM roles and service agents
关键 IAM 角色和服务代理
- Developer & operator roles: (full CRUD + delete auth profiles),
roles/integrations.integrationAdmin(create/upload/edit/test/invoke/cancel/replay/publish, includingroles/integrations.integrationEditorandintegrations.integrationVersions.create),integrations.integrationVersions.deploy(publish/unpublish viaroles/integrations.integrationDeployer; holdsintegrations.integrationVersions.deploy/list/getbut notdeploy, so it can publish an existing version but cannot upload),create(invoke/cancel/replay),roles/integrations.integrationInvoker(view integrations and logs), androles/integrations.integrationViewer(list, lift, and resolve suspensions:roles/integrations.suspensionResolver,integrations.suspensions.list,integrations.suspensions.lift;integrations.suspensions.resolvealone cannot read execution records, so also grantsuspensionResolverto inspectroles/integrations.integrationVieweror runtaskExecutionDetails, or use the approval email link, which carries the execution and task IDs).:troubleshoot - Service agents:
- Application Integration service agent: (granted
service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com).roles/integrations.serviceAgent - Integration Connectors service agent: (granted
service-PROJECT_NUMBER@gcp-sa-connectors.iam.gserviceaccount.com).roles/connectors.serviceAgent
- Application Integration service agent:
- 开发者与操作员角色:(完整 CRUD,以及删除 auth profile)、
roles/integrations.integrationAdmin(创建/上传/编辑/测试/调用/取消/重放/发布,包括roles/integrations.integrationEditor和integrations.integrationVersions.create)、integrations.integrationVersions.deploy(通过roles/integrations.integrationDeployer发布/取消发布;拥有integrations.integrationVersions.deploy/list/get,但没有deploy,因此可以发布现有版本,但不能上传)、create(调用/取消/重放)、roles/integrations.integrationInvoker(查看集成和日志),以及roles/integrations.integrationViewer(列出、解除和处理暂停:roles/integrations.suspensionResolver、integrations.suspensions.list、integrations.suspensions.lift;单独的integrations.suspensions.resolve无法读取执行记录,因此还需授予suspensionResolver才能检查roles/integrations.integrationViewer或运行taskExecutionDetails,或者使用审批邮件链接,其中包含 execution 和 task ID)。:troubleshoot - 服务代理:
- Application Integration service agent:(授予
service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com)。roles/integrations.serviceAgent - Integration Connectors service agent:(授予
service-PROJECT_NUMBER@gcp-sa-connectors.iam.gserviceaccount.com)。roles/connectors.serviceAgent
- Application Integration service agent:
Mandatory run-as service account rules (effective October 15, 2026)
强制运行身份服务账户规则(2026 年 10 月 15 日起生效)
- Explicit identity required: For integrations created on or after October 15, 2026 (and for existing integrations at a later date), every run needs an explicit identity—either the triggering caller or a user-managed run-as service account set per integration version via (region provisioning via
IntegrationVersion.runAsServiceAccountdoes not applyclients:provision).runAsServiceAccount - Triggers other than API or Private require a run-as service account: Integrations created on or after October 15, 2026 with any trigger other than an API or Private trigger (for example Schedule, Cloud Scheduler, Cloud Pub/Sub, Eventarc, Salesforce, or Connector Event) cannot be tested or published unless is set. Private triggers are exempt like API triggers, so a sub-integration whose only trigger is Private can be published without
runAsServiceAccount.runAsServiceAccount - Region governance: If governance is enabled on the region, a run-as service account is mandatory for every new integration and version, including API-trigger integrations.
- Service Account User (): Whenever
roles/iam.serviceAccountUseris set on a version, the user (or principal) publishing or testing the version must holdrunAsServiceAccounton that service account (or its owning project). At runtime, the invoking caller or trigger service account—and anyone resolving or lifting a suspension—must also holdroles/iam.serviceAccountUseron it.roles/iam.serviceAccountUser - Best practice: Create one dedicated, minimally scoped user-managed service account per integration. When is set and no task-level auth profile is set, it mints tokens for Connector, Call REST Endpoint, and Cloud Function tasks (an OAuth 2.0 or OIDC auth profile on a task takes precedence over
runAsServiceAccount).runAsServiceAccount
See references/iam-and-service-accounts.md for the complete IAM role tables, service agent permissions, credential precedence rules, and IAM commands.
gcloud- 必须指定明确身份:对于 2026 年 10 月 15 日及之后创建的集成(现有集成则在更晚日期适用),每次运行都需要明确身份——可以是触发调用的调用方,也可以是按集成版本通过 设置的用户管理运行身份服务账户(通过
IntegrationVersion.runAsServiceAccount进行区域预配不会应用clients:provision)。runAsServiceAccount - API 或 Private 以外的触发器必须使用运行身份服务账户:对于 2026 年 10 月 15 日及之后创建且触发器不是 API 或 Private 的任何集成(例如 Schedule、Cloud Scheduler、Cloud Pub/Sub、Eventarc、Salesforce 或 Connector Event),如果没有设置 ,则无法测试或发布。Private 触发器与 API 触发器一样豁免,因此仅使用 Private 触发器的子集成可以在不设置
runAsServiceAccount的情况下发布。runAsServiceAccount - 区域治理:如果区域启用了治理,则所有新集成和版本都必须使用运行身份服务账户,包括 API 触发集成。
- Service Account User():只要版本中设置了
roles/iam.serviceAccountUser,发布或测试该版本的用户(或 principal)必须在该服务账户(或其所属项目)上拥有runAsServiceAccount。运行时,调用方或触发器服务账户,以及任何处理或解除暂停的人员,也必须在该服务账户上拥有roles/iam.serviceAccountUser。roles/iam.serviceAccountUser - 最佳实践:为每个集成创建一个专用、权限范围最小化的用户管理服务账户。设置 且任务级 auth profile 未设置时,它会为 Connector、Call REST Endpoint 和 Cloud Function 任务签发 token(任务上的 OAuth 2.0 或 OIDC auth profile 优先于
runAsServiceAccount)。runAsServiceAccount
有关完整的 IAM 角色表、服务代理权限、凭据优先级规则和 IAM 命令,请参阅 references/iam-and-service-accounts.md。
gcloudKey Quotas and Limits to Design Around
设计时需要考虑的关键配额与限制
| Limit | Value | Design impact |
|---|---|---|
| SYNC execution timeout | 2 minutes | Use async triggers or |
| ASYNC execution timeout | 10 minutes | Split heavy work into sub-integrations or external jobs if a single async run exceeds 10 minutes. |
| Max execution lifetime | 31 days | Includes time paused in |
| Total integration data | 30 MB | Shared across input/output variables and private-trigger sub-integrations. Above 10 MB, local logging is disabled, retries stop working, and monitoring skips the run. |
| API trigger input size | 8 MB | Cumulative size across all input variables; larger payloads fail before the workflow starts. |
| Connectors data & timeout | 8 MB in/out; 3 min timeout | Application Integration quotas cap cumulative data sent to/from connections at 8 MB and connector response at 20 MB (Integration Connectors quotas cap the Connectors task payload at 10 MB); custom queries cap at 180 seconds and 50,000 rows. |
| Concurrent executions | 50 per project per region; 10 per integration (defaults) | Both concurrency caps are adjustable; a burst on a single integration hits the 10-per-integration cap, not 50. The execution request rate quota is shown on the project's Cloud Quotas page and can be adjusted there. |
| Integrations / tasks / versions | 1,000 / 100 / 100 | Up to 1,000 integrations per project, 100 tasks per integration, and 100 versions per integration. |
| Publish propagation | Up to 10 minutes | Eventual consistency: an older version can keep running for up to 10 minutes after publishing a new version. |
See references/limits.md for all task-specific payload caps, loop iteration limits, Integration Connectors node limits, and pricing details.
| 限制 | 数值 | 设计影响 |
|---|---|---|
| SYNC 执行超时 | 2 分钟 | 对于超过 2 分钟的工作流,使用异步触发器或 |
| ASYNC 执行超时 | 10 分钟 | 如果单次异步运行超过 10 分钟,将重型工作拆分为子集成或外部作业。 |
| 最长执行生命周期 | 31 天 | 包含在 |
| 集成数据总量 | 30 MB | 在输入/输出变量及 Private 触发器子集成之间共享。超过 10 MB 后,本地日志记录会禁用,重试将停止工作,监控也会跳过该运行。 |
| API 触发器输入大小 | 8 MB | 所有输入变量的累计大小;更大的载荷会在工作流启动前失败。 |
| Connectors 数据与超时 | 输入/输出 8 MB;超时 3 分钟 | Application Integration 配额将发送到/来自 connection 的累计数据限制为 8 MB,并将 connector 响应限制为 20 MB(Integration Connectors 配额将 Connectors 任务载荷限制为 10 MB);自定义查询限制为 180 秒和 50,000 行。 |
| 并发执行数 | 每个项目每个区域 50 个;每个集成 10 个(默认值) | 两个并发上限都可调整;单个集成上的突发流量会触及每个集成 10 个的上限,而不是 50 个。执行请求速率配额显示在项目的 Cloud Quotas 页面中,并可在该页面调整。 |
| 集成/任务/版本数量 | 1,000 / 100 / 100 | 每个项目最多 1,000 个集成、每个集成 100 个任务、每个集成 100 个版本。 |
| 发布传播时间 | 最长 10 分钟 | 最终一致性:发布新版本后,旧版本仍可能继续运行最多 10 分钟。 |
有关所有任务专属载荷上限、循环迭代限制、Integration Connectors 节点限制和定价详情,请参阅 references/limits.md。
Sibling Skills
同级 Skill
- application-integration-basics (this skill): Concepts, API enablement, region provisioning, IAM roles and run-as service accounts, interface choices (REST, Python client, Terraform, ADK), and quotas/limits.
- application-integration-authoring: Building, uploading, versioning, config variables, publishing, executing, and testing integrations via the REST API; trigger IDs; task gotchas; and CI/CD promotion across projects with download/upload.
- application-integration-troubleshooting: Diagnosing failed or stuck executions, checking execution and task states and , listing and filtering executions, Cloud Logging and Cloud Monitoring, suspensions and approvals, Integration Connectors connection health, and IAM / run-as / quota errors.
ErrorInfo
- application-integration-basics(此 skill):概念、API 启用、区域预配、IAM 角色和运行身份服务账户、接口选择(REST、Python client、Terraform、ADK),以及配额/限制。
- application-integration-authoring:通过 REST API 构建、上传和管理集成版本、config variable、发布、执行和测试集成;trigger ID;task 常见问题;以及通过 download/upload 在项目间执行 CI/CD 晋级。
- application-integration-troubleshooting:诊断失败或卡住的执行,检查 execution 和 task 状态及 ,列出和筛选执行,查阅 Cloud Logging 和 Cloud Monitoring,排查暂停与审批、Integration Connectors connection 健康状况,以及 IAM、run-as 和配额错误。
ErrorInfo
Reference Files
参考文件
- references/core-concepts.md: Triggers, execution modes, task types, version lifecycle, edit locks, variables, suspensions, and authentication profiles.
- references/iam-and-service-accounts.md: Predefined IAM roles for Application Integration and Integration Connectors, service agents, run-as service account rules, and IAM commands.
- references/provisioning-and-terraform.md: Per-region provisioning via REST , Cloud console Quick/Advanced setup, CMEK caveats, and Terraform
clients:provision/google_integrations_*resources.google_integration_connectors_* - references/api-access.md: Endpoints, authentication, examples, Python
curldiscovery patterns, ADKgoogle-api-python-client, and MCP connector clarification.ApplicationIntegrationToolset - references/limits.md: Timeouts, payload caps, concurrency quotas, loop/task limits, Integration Connectors limits, and pricing tiers.
- references/core-concepts.md:触发器、执行模式、任务类型、版本生命周期、编辑锁、变量、暂停和 authentication profile。
- references/iam-and-service-accounts.md:Application Integration 和 Integration Connectors 的预定义 IAM 角色、服务代理、run-as service account 规则,以及 IAM 命令。
- references/provisioning-and-terraform.md:通过 REST 按区域预配、Cloud console Quick/Advanced 设置、CMEK 注意事项,以及 Terraform
clients:provision/google_integrations_*resource。google_integration_connectors_* - references/api-access.md:端点、身份验证、示例、Python
curldiscovery 模式、ADKgoogle-api-python-client,以及 MCP connector 辨析。ApplicationIntegrationToolset - references/limits.md:超时、载荷上限、并发配额、循环/任务限制、Integration Connectors 限制和定价层级。