本指南說明如何刪除「採用 JavaScript 的動態網頁應用程式」快速部署解決方案。您可以參考本指南刪除現有的解決方案部署作業。您無法再從 Google Cloud 控制台部署採用 JavaScript 的動態網頁應用程式,且我們也不再支援這類應用程式。
費用
如要預估採用 JavaScript 解決方案的動態網頁應用程式所使用的 Google Cloud 資源費用,請參閱 Google Cloud Pricing Calculator 中的預先計算估算值。
您可以使用預估值做為起點,計算部署作業的費用。您可以修改預估值,反映您對解決方案中所用資源所做的任何設定變更。
預先計算的預估值是根據特定因素的假設計算得出,包括:
- 資源的 Google Cloud 部署位置。
- 資源的使用時間。
您也可以查看已部署資源的使用費用。詳情請參閱「查看帳單報表和費用趨勢」。
取得必要的 IAM 權限
如要刪除現有部署作業,您必須具備下表所列的 Identity and Access Management (IAM) 權限。如果您具備部署解決方案的專案的 roles/owner
「基本角色」,就已具備所有必要權限。如果您沒有 roles/owner
角色,請要求管理員授予這些權限 (或包含這些權限的角色)。
所需的 IAM 權限 | 包含必要權限的預先定義角色 |
---|---|
|
服務使用情形管理員 ( roles/serviceusage.serviceUsageAdmin ) |
|
服務帳戶管理員 ( roles/iam.serviceAccountAdmin ) |
|
專案 IAM 管理員 ( roles/resourcemanager.projectIamAdmin ) |
config.deployments.create config.deployments.list |
Cloud Infrastructure Manager 管理員 ( roles/config.admin ) |
為解決方案建立的服務帳戶
當您透過控制台啟動刪除程序時,系統會建立服務帳戶,代表您部署解決方案 (並在您選擇的時間刪除部署作業)。系統會暫時為這個服務帳戶指派特定的 IAM 權限,也就是說,在解決方案部署和刪除作業完成後,系統會自動撤銷這些權限。Google 建議您在刪除部署後,再刪除服務帳戶,如本指南稍後所述。
查看指派給服務帳戶的角色
這些角色會列於此處,以便Google Cloud 專案或機構的管理員需要時參考。
roles/datastore.owner
roles/iam.serviceAccountAdmin
roles/iam.serviceAccountUser
roles/resourcemanager.projectIamAdmin
roles/run.admin
roles/`roles/secretmanager.admin
roles/storage.admin
roles/compute.networkAdmin
roles/compute.admin
刪除部署作業
不再需要解決方案時,請刪除所有資源,以免繼續產生費用。
透過控制台刪除
如果您是透過控制台部署解決方案,請使用這個程序。
在 Google Cloud 控制台中,前往「Solution deployments」(解決方案部署項目) 頁面。
選取包含要刪除的部署作業的專案。
找出要刪除的部署。
在部署作業的資料列中,按一下
「Actions」(動作),然後選取「Delete」(刪除)。您可能需要捲動畫面才能看到資料列中的「動作」。
輸入部署名稱,然後按一下「確認」。
「狀態」欄位顯示「刪除中」。
如果刪除作業失敗,請參閱刪除部署作業時發生錯誤一文中的疑難排解指南。
如果您不再需要用於解決方案的 Google Cloud 專案,可以刪除該專案。詳情請參閱「選用:刪除專案」。
使用 Terraform CLI 刪除
如果您是使用 Terraform CLI 部署解決方案,請使用這個程序。
在 Cloud Shell 中,確認目前的工作目錄為
$HOME/cloudshell_open/terraform-dynamic-javascript-webapp/infra
。如果不是,請前往該目錄。移除 Terraform 佈建的資源:
terraform destroy
Terraform 會顯示即將刪除的資源清單。
系統提示你執行動作時,請輸入
yes
。Terraform 會顯示訊息,顯示進度。刪除所有資源後,Terraform 會顯示以下訊息:
Destroy complete!
如果刪除作業失敗,請參閱刪除部署作業時發生錯誤一文中的疑難排解指南。
如果您不再需要用於解決方案的 Google Cloud 專案,可以刪除該專案。詳情請參閱「選用:刪除專案」。
選用步驟:刪除專案
如果您在新的 Google Cloud 專案中部署解決方案,且不再需要該專案,請完成下列步驟將其刪除:
- 前往 Google Cloud 控制台的「管理資源」頁面。
- 在專案清單中選取要刪除的專案,然後按一下「刪除」。
- 輸入提示中的專案 ID,然後按一下「Shut down」。
選用:刪除服務帳戶
如果您已刪除用於解決方案的專案,請略過本節。
如本指南前述,在您部署解決方案時,系統會為您建立服務帳戶。服務帳戶會暫時指派特定的 IAM 權限,也就是說,在完成解決方案部署和刪除作業後,系統會自動撤銷權限,但不會刪除服務帳戶。Google 建議您刪除這個服務帳戶。
如果您是透過 Google Cloud 控制台部署解決方案,請前往「Solution deployments」頁面。(如果您已在該頁面,請重新整理瀏覽器)。系統會在背景觸發程序,刪除服務帳戶。因此您不需要採取進一步行動。
如果您是使用 Terraform CLI 部署解決方案,請完成下列步驟:
前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面。
選取用於解決方案的專案。
選取要刪除的服務帳戶。
為解決方案建立的服務帳戶電子郵件 ID 格式如下:
goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
電子郵件 ID 包含下列值:
- DEPLOYMENT_NAME:部署作業的名稱。
- NNN:隨機的 3 位數字。
- PROJECT_ID:您部署解決方案的專案 ID。
點選「刪除」。
排解錯誤
您可以採取的診斷和解決錯誤的行動,取決於部署方法和錯誤的複雜度。
刪除部署作業時發生錯誤
在某些情況下,刪除部署作業可能會失敗:
- 透過控制台部署解決方案後,如果變更解決方案所佈建的任何資源,然後嘗試刪除部署作業,刪除作業可能會失敗。「Solution deployments」頁面上的「Status」欄位顯示「Failed」,Cloud Build 記錄則會顯示錯誤的原因。
- 使用 Terraform CLI 部署解決方案後,如果您使用非 Terraform 介面 (例如控制台) 變更任何資源,然後嘗試刪除部署作業,刪除作業可能會失敗。
terraform destroy
指令的輸出內容會顯示錯誤的原因。
請查看錯誤記錄和訊息,找出並刪除導致錯誤的資源,然後再試著刪除部署作業。
如果您無法刪除以主控台為基礎的部署,也無法使用 Cloud Build 記錄診斷錯誤,請使用 Terraform CLI 刪除部署,如下一節所述。
使用 Terraform CLI 刪除以控制台為基礎的部署作業
本節說明如何刪除以主控台為基礎的部署作業,如果您嘗試透過主控台刪除時發生錯誤,請按照本節說明操作。在這個方法中,您會為要刪除的部署下載 Terraform 設定,然後使用 Terraform CLI 刪除部署。
找出部署作業的 Terraform 程式碼、記錄和其他資料儲存的區域。這個區域可能與您在部署解決方案時選取的區域不同。
在 Google Cloud 控制台中,前往「Solution deployments」頁面。
選取包含要刪除的部署作業的專案。
在部署清單中找出要刪除的部署所在的資料列。
按一下
「查看所有資料列內容」。在「Location」欄中,請注意「第二個」位置,如以下範例所示:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
為要刪除的部署建立專案 ID、區域和名稱的環境變數:
export REGION="REGION" export PROJECT_ID="PROJECT_ID" export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
在這些指令中,請這樣取代:
- REGION:您在本程序中先前記下的地點。
- PROJECT_ID:部署解決方案的專案 ID。
- DEPLOYMENT_NAME:要刪除的部署名稱。
取得要刪除的部署作業最新修訂版本 ID:
export REVISION_ID=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \ | jq .latestRevision -r) echo $REVISION_ID
輸出結果會與下列內容相似:
projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
取得部署作業的 Terraform 設定檔 Cloud Storage 位置:
export CONTENT_PATH=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \ | jq .applyResults.content -r) echo $CONTENT_PATH
以下是這個指令的輸出範例:
gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
從 Cloud Storage 下載 Terraform 設定至 Cloud Shell:
gcloud storage cp $CONTENT_PATH $HOME --recursive cd $HOME/content/infra
等到畫面顯示
Operation completed
訊息,如以下範例所示:Operation completed over 45 objects/268.5 KiB
初始化 Terraform:
terraform init
等待系統顯示下列訊息:
Terraform has been successfully initialized!
移除已部署的資源:
terraform destroy
Terraform 會顯示即將刪除的資源清單。
如果系統顯示未宣告變數的警告,請忽略警告。
系統提示你執行動作時,請輸入
yes
。Terraform 會顯示訊息,顯示進度。刪除所有資源後,Terraform 會顯示下列訊息:
Destroy complete!
刪除部署成果:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
請稍候片刻,然後確認已刪除部署構件:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \ | jq .error.message
如果輸出內容顯示
null
,請稍候幾秒鐘,然後再次執行指令。刪除部署構件後,系統會顯示以下範例所示的訊息:
Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
後續步驟
如要進一步瞭解 Google Cloud 產品和功能,請參閱: