本文档介绍如何管理布置政策。具体而言:
更新指定布置政策政策的虚拟机 (VM) 实例的属性,以执行以下一项操作:
将布置政策替换为其他现有布置政策。
移除布置政策。
删除不再需要的布置政策。
准备工作
- 查看布置政策的限制。
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
所需的角色
如需获得替换、移除或删除布置政策所需的权限,请让管理员在项目上为您授予 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。
此预定义角色包含替换、移除或删除布置政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需替换、移除或删除布置政策,您需要具备以下权限:
-
要更新虚拟机属性:项目上的
compute.instances.update
-
要删除布置政策:项目上的
compute.resourcePolicies.delete
替换虚拟机中的布置政策
您可以使用 gcloud CLI 和 REST 将虚拟机中指定的布置政策替换为其他布置政策。
gcloud
如需将虚拟机中的布置政策替换为其他布置政策,请执行以下步骤:
如需导出现有虚拟机的属性,请使用
gcloud compute instances export
命令。gcloud compute instances export VM_NAME \ --destination=FILE_PATH \ --zone=ZONE
替换以下内容:
VM_NAME
:指定布置政策的现有虚拟机的名称。FILE_PATH
:要保存虚拟机配置文件的路径。ZONE
:该虚拟机所在的可用区。
在您选择的文本编辑器中,打开虚拟机配置文件。
如需将布置政策替换为其他现有政策,请将
resourcePolicies
字段中的值替换为其他布置政策。... resourcePolicies: - https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/another-example-policy ...
您还可以修改虚拟机的其他属性。如需了解详情,请参阅您可以更新的属性。
执行更新虚拟机属性中的其余步骤。
REST
如需将虚拟机中的布置政策替换为其他布置政策,请执行以下步骤:
如需导出现有虚拟机的属性,请向
instances.get
方法发出GET
请求。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
替换以下内容:
PROJECT_ID
:虚拟机所在项目的 ID。ZONE
:该虚拟机所在的可用区。VM_NAME
:指定布置政策的现有虚拟机的名称。
如需将布置政策替换为其他现有政策,请将
resourcePolicies
字段中的值替换为其他布置政策。{ ... "resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/another-example-policy" ], ... }
您还可以修改虚拟机的其他属性。如需了解详情,请参阅您可以更新的属性。
执行更新虚拟机属性中的其余步骤。
从虚拟机中移除布置政策
您可以使用 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 资源的布置政策,请执行以下一项操作:
如果仅将政策应用于虚拟机,并且您希望保留虚拟机,请执行以下操作:
删除布置政策。
否则,请执行以下操作:
按以下顺序删除应用了该布置政策的所有其他 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
:现有布置政策的名称。