替换、移除或删除布置政策


本文档介绍如何管理布置政策。具体而言:

  • 更新指定布置政策政策的虚拟机 (VM) 实例的属性,以执行以下一项操作:

    • 将布置政策替换为其他现有布置政策。

    • 移除布置政策。

  • 删除不再需要的布置政策。

准备工作

  • 查看布置政策的限制
  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. 设置默认区域和可用区

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

所需的角色

如需获得替换、移除或删除布置政策所需的权限,请让管理员在项目上为您授予 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

此预定义角色包含替换、移除或删除布置政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需替换、移除或删除布置政策,您需要具备以下权限:

  • 要更新虚拟机属性:项目上的 compute.instances.update
  • 要删除布置政策:项目上的 compute.resourcePolicies.delete

您也可以使用自定义角色或其他预定义角色来获取这些权限。

替换虚拟机中的布置政策

您可以使用 gcloud CLI 和 REST 将虚拟机中指定的布置政策替换为其他布置政策。

gcloud

如需将虚拟机中的布置政策替换为其他布置政策,请执行以下步骤:

  1. 如需导出现有虚拟机的属性,请使用 gcloud compute instances export 命令

    gcloud compute instances export VM_NAME \
        --destination=FILE_PATH \
        --zone=ZONE
    

    替换以下内容:

    • VM_NAME:指定布置政策的现有虚拟机的名称。

    • FILE_PATH:要保存虚拟机配置文件的路径。

    • ZONE:该虚拟机所在的可用区。

  2. 在您选择的文本编辑器中,打开虚拟机配置文件。

  3. 如需将布置政策替换为其他现有政策,请将 resourcePolicies 字段中的值替换为其他布置政策。

    ...
    resourcePolicies:
    - https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/another-example-policy
    ...
    

    您还可以修改虚拟机的其他属性。如需了解详情,请参阅您可以更新的属性

  4. 执行更新虚拟机属性中的其余步骤。

REST

如需将虚拟机中的布置政策替换为其他布置政策,请执行以下步骤:

  1. 如需导出现有虚拟机的属性,请向 instances.get 方法发出 GET 请求。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

    替换以下内容:

    • PROJECT_ID:虚拟机所在项目的 ID。

    • ZONE:该虚拟机所在的可用区。

    • VM_NAME:指定布置政策的现有虚拟机的名称。

  2. 如需将布置政策替换为其他现有政策,请将 resourcePolicies 字段中的值替换为其他布置政策。

    {
    ...
    "resourcePolicies": [
      "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/another-example-policy"
    ],
    ...
    }
    

    您还可以修改虚拟机的其他属性。如需了解详情,请参阅您可以更新的属性

  3. 执行更新虚拟机属性中的其余步骤。

从虚拟机中移除布置政策

您可以使用 gcloud CLI 和 REST 移除应用于虚拟机的布置政策。

gcloud

如需从虚拟机中移除布置政策,请使用 gcloud compute instances remove-resource-policies 命令

gcloud compute instances remove-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

替换以下内容:

  • VM_NAME:指定布置政策的现有虚拟机的名称。

  • POLICY_NAME:应用于虚拟机的布置政策的名称。如需验证布置政策的名称,请查看虚拟机的详细信息并查看 resourcePolicies 字段。

  • ZONE:该虚拟机所在的可用区。

REST

如需从虚拟机中移除布置政策,请向 instances.removeResourcePolicies 方法发出 POST 请求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/removeResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

替换以下内容:

  • PROJECT_ID:虚拟机所在项目的 ID。

  • ZONE:该虚拟机所在的可用区。

  • VM_NAME:指定布置政策的现有虚拟机的名称。

  • REGION:布置政策所在的区域。

  • POLICY_NAME:应用于虚拟机的布置政策的名称。如需验证布置政策的名称,请查看虚拟机的详细信息并查看 resourcePolicies 字段。

删除布置政策

仅当未将某个布置政策应用于任何 Compute Engine 资源时,才能删除该布置政策。否则,删除布置政策会失败。如果要删除应用于 Compute Engine 资源的布置政策,请执行以下一项操作:

您可以使用 gcloud CLI 和 REST 删除布置政策。

gcloud

如需删除布置政策,请使用 gcloud compute resource-policies delete 命令

gcloud compute resource-policies delete POLICY_NAME \
    --region=REGION

替换以下内容:

  • POLICY_NAME:现有布置政策的名称。

  • REGION:布置政策所在的区域。

REST

如需删除布置政策,请向 resourcePolicies.delete 方法发出 DELETE 请求。

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME

替换以下内容:

  • PROJECT_ID:布置政策所在项目的 ID。

  • REGION:布置政策所在的区域。

  • POLICY_NAME:现有布置政策的名称。

后续步骤