工具:update_workflow_config
更新现有 Dataform 工作流配置的属性,例如其执行时间表 (cron)、关联的版本配置或调用替换项。
对 cron_schedule 的修改会立即生效,并应用于所有未来的预定执行。
name 参数值必须采用 projects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config} 格式。
每次更新都必须提供 workflow_config.release_config 参数值。使用 get_workflow_config 工具读取当前工作流配置,并在更新请求中添加其 release_config 值。
根据此工作流配置创建的工作流调用在自定义服务账号下运行。如需指定此服务账号,请设置 invocationConfig.serviceAccount 参数值。如果省略,调用会回退到使用代码库的 service_account。服务账号不能是默认的 Dataform 服务代理。服务账号必须具有执行工作流所需的权限,并且用户必须获得授权才能以所选服务账号的身份执行操作。此授权通常通过 Service Account User (roles/iam.serviceAccountUser) IAM 角色授予,该角色可授予给服务账号本身或包含该服务账号的项目。
以下代码示例展示了如何使用 curl 调用 update_workflow_config MCP 工具。
| Curl 请求 |
|---|
curl --location 'https://dataform.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "update_workflow_config", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
UpdateWorkflowConfig 请求消息。
UpdateWorkflowConfigRequest
| JSON 表示法 |
|---|
{
"updateMask": string,
"workflowConfig": {
object ( |
| 字段 | |
|---|---|
updateMask |
可选。指定工作流配置中要更新的字段。如果未设置,系统会更新所有字段。 这是完全限定字段名称的逗号分隔列表。示例: |
workflowConfig |
必需。要更新的工作流配置。 |
FieldMask
| JSON 表示法 |
|---|
{ "paths": [ string ] } |
| 字段 | |
|---|---|
paths[] |
一组字段掩码路径。 |
WorkflowConfig
| JSON 表示法 |
|---|
{ "name": string, "releaseConfig": string, "invocationConfig": { object ( |
| 字段 | |
|---|---|
name |
标识符。工作流配置的名称。 |
releaseConfig |
必需。要执行其 release_compilation_result 的发布配置的名称。必须采用 |
invocationConfig |
可选。如果未设置,系统将使用默认的 InvocationConfig。 |
cronSchedule |
可选。用于自动执行此工作流配置的可选时间安排(采用 cron 格式)。 |
timeZone |
可选。指定在解读 cron_schedule 时要使用的时区。必须是时区数据库中的时区名称。如果未指定,则默认值为 |
recentScheduledExecutionRecords[] |
仅限输出。最近 10 次预定执行尝试的记录,按 |
disabled |
可选。停用工作流调用的自动创建功能。 |
createTime |
仅限输出。创建 WorkflowConfig 时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。上次更新 WorkflowConfig 时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
workflowTriggerConfig |
可选。相应工作流的触发器配置。如果存在,工作流将根据指定的触发器触发。 |
联合字段
|
|
internalMetadata |
仅限输出。用于在内部提供资源的所有元数据信息。例如:时间戳、标志、状态字段等。此字段的格式为 JSON 字符串。 |
InvocationConfig
| JSON 表示法 |
|---|
{ "includedTargets": [ { object ( |
| 字段 | |
|---|---|
includedTargets[] |
可选。要包含的一组操作标识符。 |
includedTags[] |
可选。要包含的标记集。 |
transitiveDependenciesIncluded |
可选。如果设置为 true,则会执行所含操作的传递依赖项。 |
transitiveDependentsIncluded |
可选。如果设置为 true,则会执行所含操作的传递从属项。 |
fullyRefreshIncrementalTablesEnabled |
可选。如果设置为 true,则任何增量表都将完全刷新。 |
serviceAccount |
可选。用于运行工作流调用的服务账号。 |
联合字段
|
|
queryPriority |
可选。指定 BigQuery 中查询执行的优先级。如需了解详情,请访问 https://cloud.google.com/bigquery/docs/running-queries#queries。 |
目标
| JSON 表示法 |
|---|
{ "database": string, "schema": string, "name": string } |
| 字段 | |
|---|---|
database |
可选。操作的数据库(Google Cloud 项目 ID)。 |
schema |
可选。 |
name |
可选。操作的名称,位于 |
ScheduledExecutionRecord
| JSON 表示法 |
|---|
{ "executionTime": string, // Union field |
| 字段 | |
|---|---|
executionTime |
仅限输出。相应执行尝试的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
联合字段 result。相应执行尝试的结果。result 只能是下列其中一项: |
|
workflowInvocation |
已创建的工作流调用的名称(如果已成功创建)。必须采用 |
errorStatus |
尝试创建工作流调用时遇到的错误状态(如果尝试失败)。 |
状态
| JSON 表示法 |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| 字段 | |
|---|---|
code |
状态代码,应为 |
message |
面向开发者的错误消息(应采用英语)。任何向用户显示的错误消息都应进行本地化并通过 |
details[] |
包含错误详细信息的消息列表。有一组通用的消息类型可供 API 使用。 可以包含任意类型字段的对象。附加字段 |
不限
| JSON 表示法 |
|---|
{ "typeUrl": string, "value": string } |
| 字段 | |
|---|---|
typeUrl |
通过 URI 引用(由以斜杠结尾的前缀和完全限定的类型名称组成)标识序列化 Protobuf 消息的类型。 示例:type.googleapis.com/google.protobuf.StringValue 此字符串必须包含至少一个 前缀是任意的,Protobuf 实现应仅剥离最后一个 所有类型网址字符串都必须是合法的 URI 引用,并且(对于文本格式)还必须满足以下额外限制:引用的内容只能包含字母数字字符、百分号编码的转义字符以及以下集合中的字符(不包括外侧的反引号): 在 |
value |
包含由 type_url 描述的类型的 Protobuf 序列化。 使用 base64 编码的字符串。 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 到 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。 |
WorkflowTriggerConfig
| JSON 表示法 |
|---|
{ "condition": enum ( |
| 字段 | |
|---|---|
condition |
可选。触发工作流时要使用的条件。 |
workflowTriggers[] |
必需。用于调用工作流的触发器定义。 |
minExecutionDuration |
可选。两次连续执行之间的最短时长。如果未指定,则每次满足触发条件且没有正在进行的工作流执行时,系统都会执行工作流。 该时长以秒为单位,最多包含九个小数位,以“ |
maxWaitDuration |
可选。触发条件得到满足的有效最长等待时间。如果未指定,则工作流不会触发,直到满足条件为止。 该时长以秒为单位,最多包含九个小数位,以“ |
recentTriggerEvaluationRecords[] |
仅限输出。最近 10 次触发评估的记录,按 |
lastSuccessfulEvaluationTime |
仅限输出。上次成功评估触发器的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
WorkflowTrigger
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 trigger。用于定义调用工作流的条件的触发器。trigger 只能是下列其中一项: |
|
tableUpdateTrigger |
表更新触发器配置。 |
TableUpdateTrigger
| JSON 表示法 |
|---|
{
"table": {
object ( |
| 字段 | |
|---|---|
table |
用于触发工作流的目标表。 |
triggerUpdateTime |
仅限输出。导致工作流调用的相应表的修改时间。在成功调用工作流后,触发服务会更新此字段。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
时长
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
时间段的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些界限是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年 |
nanos |
时间跨度的有符号秒数小数部分(以纳秒为单位)。小于 1 秒的时长用 0 |
TriggerEvaluationRecord
| JSON 表示法 |
|---|
{
"evaluationTime": string,
"status": {
object ( |
| 字段 | |
|---|---|
evaluationTime |
仅限输出。相应触发器评估尝试的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
status |
仅限输出。触发器评估的状态。成功由代码 0 (OK) 表示。仅当状态代码不为零时,才会显示此消息。 |
QueryPriority
BigQuery 中查询执行的优先级类型。
| 枚举 | |
|---|---|
QUERY_PRIORITY_UNSPECIFIED |
默认值。此值未使用。 |
INTERACTIVE |
查询将在 BigQuery 中以交互式优先级执行。如需了解详情,请访问 https://cloud.google.com/bigquery/docs/running-queries#queries。 |
BATCH |
查询将在 BigQuery 中以批量优先级执行。如需了解详情,请访问 https://cloud.google.com/bigquery/docs/running-queries#batchqueries。 |
条件
触发工作流时要使用的条件。
| 枚举 | |
|---|---|
CONDITION_UNSPECIFIED |
如果值为 CONDITION_UNSPECIFIED,则默认值为 ANY。 |
ALL |
如果为 ALL,则必须满足所有触发器配置条件,然后才能调用工作流。 |
ANY |
如果存在,则必须满足至少一个触发器配置条件,然后才能调用工作流。 |
输出架构
表示 Dataform 工作流配置。
WorkflowConfig
| JSON 表示法 |
|---|
{ "name": string, "releaseConfig": string, "invocationConfig": { object ( |
| 字段 | |
|---|---|
name |
标识符。工作流配置的名称。 |
releaseConfig |
必需。要执行其 release_compilation_result 的发布配置的名称。必须采用 |
invocationConfig |
可选。如果未设置,系统将使用默认的 InvocationConfig。 |
cronSchedule |
可选。用于自动执行此工作流配置的可选时间安排(采用 cron 格式)。 |
timeZone |
可选。指定在解读 cron_schedule 时要使用的时区。必须是时区数据库中的时区名称。如果未指定,则默认值为 |
recentScheduledExecutionRecords[] |
仅限输出。最近 10 次预定执行尝试的记录,按 |
disabled |
可选。停用工作流调用的自动创建功能。 |
createTime |
仅限输出。创建 WorkflowConfig 时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。上次更新 WorkflowConfig 时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
workflowTriggerConfig |
可选。相应工作流的触发器配置。如果存在,工作流将根据指定的触发器触发。 |
联合字段
|
|
internalMetadata |
仅限输出。用于在内部提供资源的所有元数据信息。例如:时间戳、标志、状态字段等。此字段的格式为 JSON 字符串。 |
InvocationConfig
| JSON 表示法 |
|---|
{ "includedTargets": [ { object ( |
| 字段 | |
|---|---|
includedTargets[] |
可选。要包含的一组操作标识符。 |
includedTags[] |
可选。要包含的标记集。 |
transitiveDependenciesIncluded |
可选。如果设置为 true,则会执行所含操作的传递依赖项。 |
transitiveDependentsIncluded |
可选。如果设置为 true,则会执行所含操作的传递从属项。 |
fullyRefreshIncrementalTablesEnabled |
可选。如果设置为 true,则任何增量表都将完全刷新。 |
serviceAccount |
可选。用于运行工作流调用的服务账号。 |
联合字段
|
|
queryPriority |
可选。指定 BigQuery 中查询执行的优先级。如需了解详情,请访问 https://cloud.google.com/bigquery/docs/running-queries#queries。 |
目标
| JSON 表示法 |
|---|
{ "database": string, "schema": string, "name": string } |
| 字段 | |
|---|---|
database |
可选。操作的数据库(Google Cloud 项目 ID)。 |
schema |
可选。 |
name |
可选。操作的名称,位于 |
ScheduledExecutionRecord
| JSON 表示法 |
|---|
{ "executionTime": string, // Union field |
| 字段 | |
|---|---|
executionTime |
仅限输出。相应执行尝试的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
联合字段 result。相应执行尝试的结果。result 只能是下列其中一项: |
|
workflowInvocation |
已创建的工作流调用的名称(如果已成功创建)。必须采用 |
errorStatus |
尝试创建工作流调用时遇到的错误状态(如果尝试失败)。 |
状态
| JSON 表示法 |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| 字段 | |
|---|---|
code |
状态代码,应为 |
message |
面向开发者的错误消息(应采用英语)。任何向用户显示的错误消息都应进行本地化并通过 |
details[] |
包含错误详细信息的消息列表。有一组通用的消息类型可供 API 使用。 可以包含任意类型字段的对象。附加字段 |
不限
| JSON 表示法 |
|---|
{ "typeUrl": string, "value": string } |
| 字段 | |
|---|---|
typeUrl |
通过 URI 引用(由以斜杠结尾的前缀和完全限定的类型名称组成)标识序列化 Protobuf 消息的类型。 示例:type.googleapis.com/google.protobuf.StringValue 此字符串必须包含至少一个 前缀是任意的,Protobuf 实现应仅剥离最后一个 所有类型网址字符串都必须是合法的 URI 引用,并且(对于文本格式)还必须满足以下额外限制:引用的内容只能包含字母数字字符、百分号编码的转义字符以及以下集合中的字符(不包括外侧的反引号): 在 |
value |
包含由 type_url 描述的类型的 Protobuf 序列化。 使用 base64 编码的字符串。 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 到 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。 |
WorkflowTriggerConfig
| JSON 表示法 |
|---|
{ "condition": enum ( |
| 字段 | |
|---|---|
condition |
可选。触发工作流时要使用的条件。 |
workflowTriggers[] |
必需。用于调用工作流的触发器定义。 |
minExecutionDuration |
可选。两次连续执行之间的最短时长。如果未指定,则每次满足触发条件且没有正在进行的工作流执行时,系统都会执行工作流。 该时长以秒为单位,最多包含九个小数位,以“ |
maxWaitDuration |
可选。触发条件得到满足的有效最长等待时间。如果未指定,则工作流不会触发,直到满足条件为止。 该时长以秒为单位,最多包含九个小数位,以“ |
recentTriggerEvaluationRecords[] |
仅限输出。最近 10 次触发评估的记录,按 |
lastSuccessfulEvaluationTime |
仅限输出。上次成功评估触发器的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
WorkflowTrigger
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 trigger。用于定义调用工作流的条件的触发器。trigger 只能是下列其中一项: |
|
tableUpdateTrigger |
表更新触发器配置。 |
TableUpdateTrigger
| JSON 表示法 |
|---|
{
"table": {
object ( |
| 字段 | |
|---|---|
table |
用于触发工作流的目标表。 |
triggerUpdateTime |
仅限输出。导致工作流调用的相应表的修改时间。在成功调用工作流后,触发服务会更新此字段。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
时长
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
时间段的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些界限是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年 |
nanos |
时间跨度的有符号秒数小数部分(以纳秒为单位)。小于 1 秒的时长用 0 |
TriggerEvaluationRecord
| JSON 表示法 |
|---|
{
"evaluationTime": string,
"status": {
object ( |
| 字段 | |
|---|---|
evaluationTime |
仅限输出。相应触发器评估尝试的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
status |
仅限输出。触发器评估的状态。成功由代码 0 (OK) 表示。仅当状态代码不为零时,才会显示此消息。 |
QueryPriority
BigQuery 中查询执行的优先级类型。
| 枚举 | |
|---|---|
QUERY_PRIORITY_UNSPECIFIED |
默认值。此值未使用。 |
INTERACTIVE |
查询将在 BigQuery 中以交互式优先级执行。如需了解详情,请访问 https://cloud.google.com/bigquery/docs/running-queries#queries。 |
BATCH |
查询将在 BigQuery 中以批量优先级执行。如需了解详情,请访问 https://cloud.google.com/bigquery/docs/running-queries#batchqueries。 |
条件
触发工作流时要使用的条件。
| 枚举 | |
|---|---|
CONDITION_UNSPECIFIED |
如果值为 CONDITION_UNSPECIFIED,则默认值为 ANY。 |
ALL |
如果为 ALL,则必须满足所有触发器配置条件,然后才能调用工作流。 |
ANY |
如果存在,则必须满足至少一个触发器配置条件,然后才能调用工作流。 |
工具注释
工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。
除了标题字符串之外,还定义了以下布尔值提示:
readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界工具,而内存工具不是开放世界工具。
破坏性提示:❌ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:❌