审批任务
通过审批任务,您可以配置基于审批的集成。您还可以通过审批任务控制集成流程。
您可以使用审批任务向一个或多个集成用户发送审批请求电子邮件。该电子邮件会包含一个集成链接,用户可手动批准或拒绝该请求。
在集成执行期间,当控制项到达审批任务时,执行将停止,并且审批任务后面的所有任务都将暂停。仅当用户在 Google Cloud 控制台中或使用 API 批准或拒绝审批请求时,集成才会恢复执行。
审批任务具有以下用途:
- 根据用户是批准还是拒绝审批请求来暂停和拆分集成。
- 暂停集成直到经过指定时长。
- 用作调试集成的断点。
比较审批任务、暂停任务和计时器任务
所有三个(审批、暂停和计时器)任务都执行类似的集成暂停和恢复功能。但它们之间存在细微差异。下表介绍了三个任务之间的差异。
| 审批任务 | 暂停任务 | 计时器任务 |
|---|---|---|
| 当用户在 Integrations 界面中或使用 API 批准或拒绝请求时,集成会恢复执行。 | 支持手动和自动恢复集成。如果没有人工干预来撤消暂停,则集成会在暂停时间限制到期后自动恢复执行。 | 仅支持自动恢复集成。集成执行会在暂停时间限制到期后自动恢复。 |
可以从集成界面或通过调用 suspensions.resolve 方法来恢复集成。请参阅使用 API 批准或拒绝。 |
可以通过调用 suspensions.lift 方法来恢复集成。 |
仅支持自动恢复集成。 |
| 集成暂停(已暂停)时,用户会收到通知。 | 集成暂停(已暂停)时,用户不会收到任何通知。 | 集成暂停(已暂停)时,用户不会收到任何通知。 |
支持输出变量(布尔值),可让您在恢复集成之前执行条件检查。但是,输出变量的值只能为 true 或 false。 |
支持输出变量(字符串),可让您在恢复集成之前执行条件检查。您可以为输出变量设置任何值。 | 不支持任何输出变量。 |
配置审批任务
如需配置审批任务,请执行以下操作:
- 在 Google Cloud 控制台中,前往 Application Integration 页面。
- 在导航菜单中,点击集成。
集成页面随即显示,其中列出了 Google Cloud 项目中可用的所有集成。
- 选择现有集成,或点击创建集成以创建新的集成。
如需创建新的集成,请执行以下操作:
- 在创建集成窗格中输入名称和说明。
- 选择集成的区域。
- 为集成选择服务账号。您可以随时通过集成工具栏中的 集成摘要窗格更改或更新集成的服务账号详细信息。
- 点击创建。新创建的集成会在集成编辑器中打开。
- 在集成编辑器导航栏中,点击任务以查看可用任务和连接器的列表。
- 点击审批任务元素,并将其放入集成编辑器中。
- 点击设计器上的审批任务元素以打开审批任务配置窗格。
- 使用任务的配置属性配置显示的字段,详见下表。
系统会自动保存对属性的所有更改。
配置属性
下表介绍了审批任务的配置属性。
| 属性 | 数据类型 | 说明 |
Recipients
|
字符串数组 | 任务暂停时向其发送通知的电子邮件地址。 输入多个电子邮件地址,以英文逗号分隔。 |
Custom notification message
|
字符串 | 任务暂停时电子邮件通知中包含的自定义消息。 值可以是字面量,也可以是变量。如果变量包含自定义消息,请点击 VAR 并选择该变量。 |
Reminder frequency (in hours)
|
整数 | 提醒通知的频率。 如果暂停处于未解决状态,您可以发送提醒电子邮件通知,请求授权用户解决暂停。 |
Time until expiration (in hours)
|
整数 | 暂停的时间段。 如果暂停问题未在时限内解决,系统会默认拒绝暂停。 |
On expiration
|
布尔值 | 暂停到期后采取的操作。 您可以选择拒绝暂停或解除暂停。默认情况下,暂停会被拒绝。 |
isApproved (Approval)
|
布尔值 | 包含暂停解决后的状态的输出变量。
如果暂停得到批准,则 |
使用 API 响应审批请求
如需在不使用 Google Cloud 控制台的情况下批准或拒绝待处理的审批请求,请调用 projects.locations.integrations.executions.suspensions.resolve 方法。
如需批准或拒绝请求,您需要拥有 integrations.suspensions.resolve 权限。如需列出暂停,您还需要拥有 integrations.suspensions.list 权限。Application Integration Approver (roles/integrations.suspensionResolver) 角色和 Application Integration Admin (roles/integrations.integrationAdmin) 角色都包含这两项权限。
如果集成使用“以…身份运行”服务账号,请向该服务账号授予 Service Account User (roles/iam.serviceAccountUser) 角色。随着授予 Service Account User 角色中所述的发布过程推进,此要求将生效。
- 如需查找待处理请求,请使用
projects.locations.integrations.executions.suspensions.list方法列出执行的暂停:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME/executions/EXECUTION_ID/suspensions"在响应中,找到
taskId为审批任务 ID 且state为PENDING的暂停。响应还包括来自同一执行中的暂停任务和其他审批任务的暂停。请注意,暂停的name以暂停 ID 结尾。 - 如需批准或拒绝请求,请调用
suspensions.resolve方法:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "suspension": { "eventExecutionInfoId": "EXECUTION_ID", "integration": "INTEGRATION_NAME", "taskId": "TASK_ID", "state": "STATE" } }' \ "https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME/executions/EXECUTION_ID/suspensions/SUSPENSION_ID:resolve"
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION:集成的区域。INTEGRATION_NAME:集成的名称。EXECUTION_ID:已暂停执行的 ID。TASK_ID:审批任务的 ID(暂停的taskId)。SUSPENSION_ID:来自暂停的name的暂停 ID。STATE:解决状态。使用LIFTED批准请求(将isApproved设置为true),或使用REJECTED拒绝请求(将isApproved设置为false)。
错误处理策略
任务的错误处理策略指定当任务因暂时性错误而失败时要执行的操作。如需了解如何使用错误处理策略,以及了解不同类型的错误处理策略,请参阅错误处理策略。
配额和限制
如需详细了解配额和限制,请参阅配额和限制。