本文將說明如何取代、移除或刪除刊登位置政策。
在下列情況下,建議您取代、移除或刪除刊登位置政策:
取代虛擬機器 (VM) 執行個體中的配置政策,將 VM 移至與其他 VM 不同的位置。
當您不再關心 VM 相對於其他 VM 的位置時,請從 VM 中移除放置政策。
刪除不再需要的刊登位置政策。
事前準備
- 請詳閱刊登位置政策的 限制規定。
-
如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
必要的角色
如要取得替換、移除或刪除刊登位置政策所需的權限,請要求管理員為您授予專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備替換、移除或刪除刊登位置政策所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要取代、移除或刪除刊登位置政策,您必須具備下列權限:
-
如要從 VM 中取代或移除配置政策,請按照下列步驟操作:
compute.instances.update
on the project -
如要刪除配置政策,請按照下列步驟操作:
compute.resourcePolicies.delete
on the project
取代 VM 中的配置政策
在將 VM 中的擴散配置政策替換為密集配置政策前,請確認 VM 使用支援的機器類型和主機維護政策。如果您需要先更新 VM,再取代其配置政策,請執行下列其中一項或兩項操作:
在 VM 中取代放置政策後,您必須重新啟動 VM,讓新套用的放置政策生效。
如要取代 VM 中的配置政策,請選取下列任一選項:
gcloud
建立空的 YAML 檔案。
如要將 VM 的屬性匯出至剛建立的 YAML 檔案,請使用
gcloud compute instances export
指令。gcloud compute instances export VM_NAME \ --destination=FILE_PATH \ --zone=ZONE
更改下列內容:
VM_NAME
:指定了放置政策的現有 VM 名稱。FILE_PATH
:上一個步驟中建立的 YAML 檔案路徑。ZONE
:VM 所在區域。
在 YAML 設定檔中,編輯
resourcePolicies
欄位的值,指定不同的刊登位置政策。resourcePolicies: - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME
更改下列內容:
PROJECT_ID
:放置位置政策所在專案的 ID。您只能指定與 VM 位於相同專案中的放置政策。REGION
:刊登位置政策所在的區域。POLICY_NAME
:刊登位置政策的名稱。
如要更新 VM 並重新啟動,請使用
gcloud compute instances update-from-file
指令,並將--most-disruptive-allowed-action
旗標設為RESTART
。gcloud compute instances update-from-file VM_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE
更改下列內容:
VM_NAME
:VM 名稱。YAML_FILE
:YAML 檔案的路徑,其中包含您在上一個步驟中修改的設定資料。ZONE
:VM 所在區域。
REST
建立空白 JSON 檔案。
如要查看現有 VM 的屬性,請對
instances.get
方法發出GET
要求。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
更改下列內容:
PROJECT_ID
:VM 所在專案的 ID。ZONE
:VM 所在區域。VM_NAME
:指定了放置政策的現有 VM 名稱。
在先前步驟中建立的空 JSON 檔案中,執行下列操作:
輸入
GET
要求輸出的 VM 屬性。找出
resourcePolicies
欄位,然後編輯其值,指定不同的刊登位置政策。"resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ]
更改下列內容:
PROJECT_ID
:放置位置政策所在專案的 ID。您只能指定與 VM 位於相同專案中的放置政策。REGION
:刊登位置政策所在的區域。POLICY_NAME
:刊登位置政策的名稱。
如要更新 VM 並重新啟動,請對
instances.update
方法提出PUT
要求。在要求中執行以下操作:在要求網址中,將
most_disruptive_allowed_action
查詢參數設為RESTART
。針對要求主體,請使用您在先前步驟中建立及更新的 JSON 檔案中的 VM 設定詳細資料。
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART { ... "resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ], ... }
如要進一步瞭解如何更新 VM 的屬性,請參閱「更新 VM 屬性」。
從 VM 移除配置政策
如果您想從 VM 中移除含有兩個以上可用性網域的散布版位政策,可以不停止 VM 即可執行。如果您想移除密集配置政策或只有一個可用性網域的散布配置政策,請先停止 VM,再移除附加的配置政策。
從 VM 移除放置政策不會影響其實際位置。不過,如果 VM 正在進行即時遷移,Compute Engine 可能會將 VM 移至不同的實體位置。
如要從 VM 移除配置政策,請選取下列任一選項:
gcloud
如要從 VM 移除放置政策,請使用 gcloud compute instances remove-resource-policies
指令。
gcloud compute instances remove-resource-policies VM_NAME \
--resource-policies=POLICY_NAME \
--zone=ZONE
更改下列內容:
VM_NAME
:指定放置政策的現有 VM 名稱。POLICY_NAME
:套用至 VM 的刊登位置政策名稱。如要確認刊登位置政策的名稱,請查看 VM 的詳細資料,並檢查resourcePolicies
欄位的值。ZONE
:VM 所在區域。
REST
如要從 VM 移除放置政策,請對 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
:VM 所在專案的 ID。ZONE
:VM 所在區域。VM_NAME
:指定放置政策的現有 VM 名稱。REGION
:刊登位置政策所在的區域。POLICY_NAME
:套用至 VM 的刊登位置政策名稱。如要確認刊登位置政策的名稱,請查看 VM 的詳細資料,並檢查resourcePolicies
欄位的值。
刪除配置政策
您只能刪除未套用至「任何」Compute Engine 資源的放置政策。否則刪除配置政策的作業會失敗。如要刪除套用至一或多個 Compute Engine 資源的刊登位置政策,請執行下列任一操作:
如果政策只套用至 VM,且您想保留 VM,請執行下列操作:
按照本文件說明從 VM 移除放置政策。
按照本節所述刪除配置政策。
否則,請按照下列步驟操作:
選用:從您要保留的任何 VM 中移除配置政策,如本文件所述。
依下列順序刪除所有其他套用放置政策的 Compute Engine 資源:
VM
保留項目
執行個體範本
按照本節所述刪除配置政策。
如要刪除刊登位置政策,請選擇下列任一做法:
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
:現有刊登位置政策的名稱。