使用 Terraform 管理快訊政策

本文說明如何使用Google Cloud Terraform Provider,編輯及刪除 Google Cloud 專案中的警告政策。 Google Cloud Terraform 供應商 提供下列快訊政策和通知管道資源:

Terraform 是一種工具,可建構、變更基礎架構,並管理基礎架構版本。並使用設定檔描述執行單一應用程式或整個基礎架構所需的元件。如要進一步瞭解如何使用 Terraform,請參閱下列文件:

這項功能僅支援 Google Cloud 專案。 如要進行 App Hub 設定,請選取 App Hub 主專案或啟用應用程式的資料夾管理專案。

事前準備

如要取得必要權限,以便使用 Terraform 修改快訊政策,請要求管理員授予您專案的下列 IAM 角色:

  • 監控編輯者 (roles/monitoring.editor)
  • 建立及使用記錄式快訊政策: 記錄檔設定寫入者 (roles/logging.configWriter)

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

如要進一步瞭解 Cloud Monitoring 角色,請參閱「使用 Identity and Access Management 控制存取權」。

編輯或刪除快訊政策

如要編輯或刪除專案中的快訊政策,請按照下列步驟操作: Google Cloud

  1. 安裝及設定 Terraform,如要進行 App Hub 設定,請選取 App Hub 主專案或啟用應用程式的資料夾管理專案。

  2. 在 Cloud Shell 中,前往包含 Terraform 設定的目錄。

  3. 編輯設定檔,找出快訊政策的 google_monitoring_alert_policy 資源,然後修改或刪除該資源。

  4. 在 Cloud Shell 中輸入 terraform apply

將快訊政策設定匯出為 Terraform 設定

您可以將警報政策設定從 Google Cloud匯出至 Terraform 設定中的 Terraform 定義。如果您在建立 Terraform 設定後,於 Google Cloud建立快訊政策,這個程序就很有幫助。

如要匯出快訊政策,請按照下列步驟操作:

  1. 安裝及設定 Terraform,如要進行 App Hub 設定,請選取 App Hub 主專案或啟用應用程式的資料夾管理專案。

  2. 在 Cloud Shell 中,前往包含 Terraform 設定的目錄。

  3. 在 Terraform 設定的檔案中新增 import 區塊。匯入區塊具有下列引數:

    • to:Terraform 設定中指定的資源位址。這個欄位的格式為 google_monitoring_alert_policy.RESOURCE_NAME,其中 RESOURCE_NAME 是您選擇的值。建議選擇能清楚描述快訊政策的資源名稱。

    • id:快訊政策的名稱。這個欄位的格式為 project/PROJECT_ID/alertPolicies/ALERT_POLICY_ID

    舉例來說,您想匯出監控 CPU 使用率的快訊政策,因此將 RESOURCE_NAME 設為 cpu_usage_threshold。然後將 id 設為快訊政策名稱:

    import {
    to = google_monitoring_alert_policy.cpu_usage_threshold
    id = "projects/my-alerting-project/alertPolicies/7160801095019277297"
    }
    
  4. 在 Cloud Shell 中執行下列指令:

    terraform plan -generate-config-out=generated.tf
    

    前一個指令會建立名為 generated.tf 的檔案,供您在將警告政策定義新增至 Terraform 設定前進行檢查。您可以編輯定義、將定義移至其他檔案,或保持不變。

  5. 在 Cloud Shell 中輸入 terraform apply,將快訊政策定義匯入 Terraform 設定。

如要進一步瞭解如何為不屬於 Terraform 設定的資源產生定義,請參閱「產生設定」。

後續步驟

  • 進一步瞭解 Terraform
  • 試用使用Google Cloud Terraform Provider 和 Cloud Monitoring 的程式碼範例。
  • 在 GitHub 上查看 Google Cloud Terraform 供應商存放區
  • 如要回報錯誤或詢問 Terraform 相關問題,請在 GitHub 上提出問題