BigQuery Transfer API:调用patch接口禁用AdWords传输配置失败
解决BigQuery Transfer API Patch操作无法禁用AdWords传输配置的问题
听起来你遇到了用projects.locations.transferConfig.patch接口禁用AdWords传输配置却没生效的问题,我帮你梳理下最可能的原因和解决办法:
1. 核心问题:请求体缺少disabled字段
BigQuery Transfer API的patch接口是增量更新——它只会修改你在请求体中明确指定的字段。如果你想禁用传输配置,必须在请求体中添加"disabled": true这个关键字段,否则API不会自动更改传输配置的启用状态。
2. 别忘了updateMask参数(最容易忽略的点)
除了请求体里的字段,你还需要在请求的URL中指定updateMask参数,明确告诉API你要更新哪些字段。如果没包含disabled,哪怕请求体里写了这个字段,API也会直接忽略它。
比如你只想禁用传输配置,请求URL应该带上updateMask=disabled;如果同时要更新显示名称和禁用状态,就用updateMask=displayName,disabled。
修正后的请求示例
这里给你一个完整的请求体示例(包含禁用字段):
{ "name": "projects/digital-hall-119520/locations/us/transferConfigs/5abc469c-0000-2340-9419-f403045efe74", "destinationDatasetId": "Test_Backfill", "displayName": "PatchTransferNew", "dataSourceId": "adwords", "params": { "customer_id": "7875544940" }, "disabled": true }
对应的curl请求示例(记得替换你的访问令牌):
curl -X PATCH \ 'https://bigquerydatatransfer.googleapis.com/v1/projects/digital-hall-119520/locations/us/transferConfigs/5abc469c-0000-2340-9419-f403045efe74?updateMask=disabled,displayName' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "displayName": "PatchTransferNew", "disabled": true }'
额外检查项
- 权限验证:确保你的账号拥有
bigquery.transfers.update权限,没有足够权限的话,操作可能返回成功但实际不会生效。 - 验证结果:操作完成后,调用
projects.locations.transferConfigs.get接口获取该传输配置的详情,查看disabled字段是否为true,确认是否真正生效。
内容的提问来源于stack exchange,提问作者Narendra k
相关产品推荐
相关产品推荐

