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

如何通过Python移除GCP后端服务的Cloud Armor安全策略?

解决Python移除后端服务绑定的Cloud Armor安全策略问题

问题原因

你调用update()方法时,仅传入了一个只设置security_policy=""的资源对象,GCP Compute API会将未明确指定的字段视为要重置为默认值(比如loadBalancingScheme被设为无效值),从而触发报错。update()方法要求传入完整的后端服务资源对象,而非仅包含修改字段的片段。

正确实现方式

方式1:使用patch()方法(推荐)

patch()方法支持仅更新需要修改的字段,无需传入完整资源对象,更高效简洁:

from google.cloud import compute_v1

client = compute_v1.BackendServicesClient()

# 指定仅更新securityPolicy字段
update_mask = "securityPolicy"
# 构建仅包含目标修改字段的请求体
backend_service_resource = compute_v1.types.BackendService(security_policy="")

client.patch(
    project="你的项目ID",
    backend_service="你的后端服务名称",
    backend_service_resource=backend_service_resource,
    update_mask=update_mask
)

方式2:先获取完整资源再更新

如果必须使用update()方法,需要先拉取后端服务的完整元数据,修改目标字段后再提交更新:

from google.cloud import compute_v1

client = compute_v1.BackendServicesClient()

# 获取后端服务的完整资源对象
backend_service = client.get(
    project="你的项目ID",
    backend_service="你的后端服务名称"
)

# 移除绑定的安全策略
backend_service.security_policy = ""

# 提交完整资源的更新
client.update(
    project="你的项目ID",
    backend_service="你的后端服务名称",
    backend_service_resource=backend_service
)

关键注意点

  • patch()通过update_mask精准指定修改字段,避免误改其他必填配置,是单字段修改的最优方案。
  • 确保执行代码的服务账号拥有compute.backendServices.update权限,否则会触发权限校验错误。

内容的提问来源于stack exchange,提问作者Anandha Krishnan H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:40:26