設定叢集,透過電子郵件接收通知

本教學課程說明如何設定 Application Integration,透過電子郵件接收 Google Kubernetes Engine (GKE) 叢集通知

您可以建立具有 Pub/Sub 觸發條件的整合作業,監聽接收 GKE 叢集通知的現有主題。接著,您可以使用「資料對應」和「資料轉換器」工作轉換 Pub/Sub 訊息,並建構純文字電子郵件內文。

設定 GKE 叢集的叢集通知

如要使用 Pub/Sub 接收 GKE 叢集通知,請按照「透過 Pub/Sub 接收叢集通知」一文的說明操作。

建立新的整合服務

如要建立新的整合,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Application Integration」頁面。

    前往「Application Integration」

  2. 在導覽選單中,按一下「整合」。系統隨即會顯示「Integrations」頁面。

  3. 按一下「建立整合」

  4. 在「整合名稱」中,輸入要建立的整合名稱。

  5. 如果啟用多個區域,系統會顯示下拉式選項,供您選取整合的區域。如果只啟用一個區域,系統會預設為該區域,且不會顯示下拉式選單。

    注意:「區域」下拉式選單只會列出Google Cloud 專案中佈建的區域。如要佈建新區域,請按一下方塊底部的「啟用區域」

  6. 按一下「建立」,開啟整合編輯器。

新增及設定 Pub/Sub 觸發條件

如要將 Pub/Sub 觸發條件新增至整合服務,請按照下列步驟操作:

  1. 在整合編輯器中選取「觸發條件」,即可顯示可用觸發條件清單。

  2. 按一下「Pub/Sub」觸發條件元素,並放置到設計工具中。

  3. 在整合服務編輯器中,按一下「Pub/Sub trigger」(Pub/Sub 觸發條件) 元素,即可查看觸發條件設定窗格。

  4. 在「Pub/Sub topic」(Pub/Sub 主題) 欄位中,指定觸發條件應監聽的主題,格式如下:

    projects/PROJECT_ID/topics/TOPIC_ID
    

    更改下列內容:

  • PROJECT_ID:建立主題的 Google Cloud 專案。

  • TOPIC_ID:您在「設定環境」中建立的 Pub/Sub 主題 ID。

    舉例來說,如果您的專案名稱為 my-project,且您將主題命名為 gke-notifications,請輸入:

    projects/my-project/topics/gke-notifications
    

    如要查看專案中的所有可用主題,請參閱「主題」中的「主題名稱」欄。 Google Cloud 「Pub/Sub」觸發條件設定窗格會自動在「Trigger Output」(觸發條件輸出) 欄位中填入變數,用於保留 Pub/Sub 訊息。

新增及設定「資料對應」工作

資料對應工作有助於從 Pub/Sub 通知中擷取相關變數。這項服務會將 Pub/Sub 訊息 JSON 檔案做為輸入內容,並擷取變數做為輸出內容。

如要設定資料對應工作,請按照下列步驟操作:

  1. 選取「工作」,系統隨即會顯示可用工作的清單。

  2. 在整合服務編輯器中,點按並放置「資料對應」元素。

  3. 在設計工具中,按一下「資料對應」工作,開啟該工作的設定窗格。

  4. 如要從 Pub/Sub 觸發條件新增邊緣連線至資料對應,請將指標懸停在 Pub/Sub 觸發條件的控制點上,然後將線條拖曳至資料對應工作的控制點。邊緣表示從 Pub/Sub 觸發條件到資料對應工作的控制流程。

  5. 按一下「開啟資料對應編輯器」。您可以使用資料對應編輯器,透過可用的轉換函式,將輸入變數對應至所選輸出變數。輸出內容隨後會以變數形式提供給任何其他整合任務或觸發條件。 如要進一步瞭解應用程式整合中的變數,請參閱「變數」。

    在本教學課程中,請按照下列步驟,使用 CloudPubSubMessage 做為輸入內容建立對應:

    1. 展開「變數」清單中的 CloudPubSubMessage JSON 變數,然後將 CloudPubSubMessage.data 變數拖曳至第一個「輸入」列。
    2. 如要建立新的輸出變數來保存轉換後的資料值,請按一下「輸出」欄中的第一列。接著,按照下列步驟操作:
      1. 在「Name」(名稱) 欄位中輸入 message_data
      2. 從「變數類型」清單中選取「整合輸出」
      3. 在「資料類型」清單中,選取「字串」
      4. 點按「Create」(建立)message_data 變數會顯示在「輸出」中。
    3. 將「變數」清單中的 CloudPubSubMessage.attributes 變數拖曳至「輸入」欄的第二列。
    4. 按一下「輸出」資料欄中的第二列,建立新的輸出變數,用來保存含有叢集屬性的 JSON 酬載值。填寫下列欄位:

      1. 在「Name」(名稱) 欄位中輸入 attributes
      2. 在「變數類型」清單中選取「無」
      3. 在「資料類型」清單中,選取「JSON」
      4. 從「JSON 結構定義選項」選取「輸入 JSON 結構定義」,然後貼上下列酬載:

        {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {
            "cluster_name": {
              "type": "string"
            },
            "payload": {
              "type": "string"
            },
            "project_id": {
              "type": "string"
            },
            "cluster_location": {
              "type": "string"
            },
            "type_url": {
              "type": "string"
            }
          }
        }
        
      5. 點按「Create」(建立)attributes 變數會顯示在「Output」(輸出) 中。 確認屬性變數類似於下列內容:

        Application Integration 區域變數

    5. 按一下「輸入」欄的第三列,然後從「變數」窗格選取 attributes.cluster_name。您可能需要開始輸入屬性,才能看到上一個步驟中輸入的結構定義所定義的所有 5 個屬性。

    6. 按一下「輸出」資料欄中的對應資料列,建立新的輸出變數,用來保存叢集名稱屬性的值。填寫下列欄位:

      1. 在「Name」(名稱) 欄位中輸入 cluster_name
      2. 從「變數類型」清單中選取「整合輸出」
      3. 在「資料類型」清單中,選取「字串」
      4. 點按「Create」(建立)cluster_name 變數會顯示在「輸出」中。
    7. 針對 project_idcluster_locationtype_urlpayload 重複步驟 ef

    8. 完成對應後,請關閉資料對應編輯器。系統會自動儲存所有變更。

新增及設定 Data Transformer (指令碼) 工作

「資料轉換工具」工作會將從「資料對應」工作擷取的變數做為輸入內容,並轉換成供使用者使用的訊息內文。

如要設定資料轉換器工作,請按照下列步驟操作:

  1. 選取「工作」,系統隨即會顯示可用工作的清單。
  2. 在整合服務編輯器中,點按並放置「Data Transformer (Script)」(資料轉換器 (指令碼)) 元素。
  3. 按一下設計工具中的「資料轉換器」工作,開啟該工作的設定窗格。
  4. 如要從「資料對應」工作新增邊緣連線至「資料轉換器」工作,請將指標懸停在「資料對應」的控制點上,然後將線條拖曳至「資料轉換器」工作的控制點。邊緣表示從「資料對應」工作到「資料轉換器」工作的控制流程。
  5. 按一下「開啟 Data Transformer 編輯器」。您可以在資料轉換編輯器中編寫、編輯及評估自訂 Jsonnet 範本,以便在整合作業中執行資料對應。輸出內容隨後會以變數形式提供給任何其他整合工作或觸發程序。如要進一步瞭解這項轉換器工作,請參閱「資料轉換器工作」。在本快速入門導覽課程中,請按照下列步驟建立指令碼:

    1. 按一下「變數」左側面板中的「建立」。右側隨即會開啟「建立變數」面板。填寫下列欄位:

      • 名稱:輸入 full_message
      • 在「變數類型」下拉式方塊中選取 Output from integration
      • 在「資料類型」下拉式方塊中選取 String
      • 按一下「建立」建立變數並關閉窗格。新的full_message變數會顯示在「變數」清單中。
    2. 選取「指令碼」

    3. 從叢集傳送通知時,請使用下列範例指令碼做為訊息主體的範本:

      local message_data = std.extVar("message_data");
      local cluster_name = std.extVar("cluster_name");
      local project_id = std.extVar("project_id");
      local cluster_location = std.extVar("cluster_location");
      local type_url = std.extVar("type_url");
      local payload = std.extVar("payload");
      
      {full_message: "Project ID: " + project_id + "\n" +
                    "Cluster Name: " + cluster_name + "\n" +
                    "Location: " + cluster_location + "\n" +
                    "Event Type: " + type_url + "\n" +
                    "Message: " + message_data + "\n" +
                    "Payload: " + std.manifestJson(std.parseJson(payload))}
      
    4. 完成對應後,請關閉資料對應編輯器。系統會自動儲存所有變更。

新增並設定「Send Email」(傳送電子郵件) 任務

如要設定「傳送電子郵件」工作,請按照下列步驟操作:

  1. 在整合編輯器中選取「Tasks」(工作),即可顯示可用工作清單。
  2. 在整合服務編輯器中,按一下並放置「傳送電子郵件」元素。
  3. 如要從「資料轉換器」工作新增邊緣連線至「傳送電子郵件」工作,請將指標懸停在「資料轉換器」工作的控制點上,然後將線條拖曳至「傳送電子郵件」工作的控制點。邊緣表示從「資料轉換器」工作到「傳送電子郵件」工作的控制流程。
  4. 按一下設計工具中的「Send Email」(傳送電子郵件) 元素,開啟任務的設定窗格。設定下列屬性:
    1. 收件者:輸入電子郵件地址。您將使用這封電子郵件確認整合是否成功完成。
    2. 主旨:輸入 GKE Notifications
    3. 純文字格式的內文:選取先前在「資料轉換器」工作建立的 full_message 變數。
    4. 其餘選項則可保留預設設定。

系統會自動儲存您對屬性所做的變更,畫布應會顯示類似下列內容:

Application Integration 畫布

測試整合

如要測試新整合,請前往整合圖頂端的導覽列,然後按一下「測試」。右側隨即會開啟一個面板。您可以在「Add a json value」(新增 JSON 值) 區段中使用下列 Pub/Sub 訊息範例:

{
  "data": "Node pool projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool is upgrading to version 1.29.1-gke.1589017.",
  "attributes": {
    "cluster_location": "us-central1-c",
    "cluster_name": "cluster-1",
    "payload": "{\"resourceType\":\"NODE_POOL\",\"operation\":\"operation-upgrade\",\"operationStartTime\":\"2024-05-07T20:09:35.528855756Z\",\"currentVersion\":\"1.28.7-gke.1026000\",\"targetVersion\":\"1.29.1-gke.1589017\",\"resource\":\"projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool\"}",
    "project_id": "my-project",
    "type_url": "type.googleapis.com/google.container.v1beta1.UpgradeEvent"
  }
}

按一下「測試整合」按鈕後,系統會傳送電子郵件至「傳送電子郵件」任務中設定的電子郵件地址。

發布整合項目

成功測試這項整合功能後,請按一下「發布」,讓整合功能開始處理訊息。

您只能編輯整合的 DRAFT 版本,且只能執行整合的 ACTIVE 版本。如要編輯整合項目,請在整合設計工具頁面按一下「啟用編輯」,然後建立草稿版本。詳情請參閱整合編輯鎖定