動作群組

當 Azure 監視器資料指出基礎結構或應用程式可能有問題時,就會觸發警示。 警示可以包含動作群組,這是通知喜好設定的集合。 Azure 監視器、Azure 服務健康狀態和 Azure Advisor 會使用動作群組來通知使用者相關警示並採取動作。

本文說明如何建立及管理動作群組。

每個動作的組成為:

  • 類型:已傳送的通知,或已執行的動作。 範例包括傳送語音通話、簡訊或電子郵件。 您也可以觸發各種類型的自動化動作。
  • 名稱:動作群組內的唯一識別碼。
  • 詳細資料:依類型而有所不同的對應詳細資料。

一般而言,動作群組是全域服務。 在開發中,要讓它們更具區域可用性的努力正在發展中。 用戶端的全域要求可由任何區域中的動作群組服務處理。 如果動作群組服務的某個區域關閉,流量會自動在其他區域中路由處理。 作為全域服務,動作群組可協助提供災害復原解決方案。 區域要求依賴可用性區域備援來符合隱私權需求,並提供類似的災害復原解決方案。

  • 您可以將最多五個動作群組新增至警示規則。
  • 動作群組會同時執行 (沒有特定順序)。
  • 多個警示規則可以使用相同的動作群組。

在 Azure 入口網站 中建立動作群組

  1. 前往 Azure 入口網站

  2. 搜尋並選取 [監視]。 [ 監視] 窗格會將所有監視設定和數據合併在一個檢視中。

  3. 選取 [ 警示],然後選取 [ 動作群組]。

    Screenshot of the Alerts page in the Azure portal with the action groups button highlighter.

  4. 選取 建立

    Screenshot that shows the Action groups page in the Azure portal. The Create button is called out.

  5. 設定基本動作群組設定。 在 [ 項目詳細資料] 區段中:

    • 選取 [訂用帳戶] 和 [資源群組] 的值。

    • 選取區域。

      選項 行為
      全球 動作群組服務會決定儲存動作群組的位置。 動作群組會在至少兩個區域中保存,以確保區域復原能力。 可以在任何地理區域中處理動作。

      由於服務健康情況警示執行的語音、簡訊和電子郵件動作,可復原 Azure 即時網站事件。
      地區 動作群組儲存在選取的區域內。 動作群組是區域備援。 如果您要確保動作群組的處理是在特定的 地理界限內執行,請使用此選項。 您可以選擇下列其中一個區域,以進行動作群組的區域處理:
      - 美國中南部
      - 美國中北部
      - 瑞典中部
      - 德國中西部
      我們會持續新增更多區域,以進行動作群組的區域數據處理。

    動作群組會儲存在您選取的訂用帳戶、區域和資源群組中。

  6. [執行個體詳細資料] 區段中,輸入 [動作群組名稱][顯示名稱] 的值。 當群組用來傳送通知時,顯示名稱會用來取代完整動作群組名稱。

    Screenshot that shows the Create action group dialog. Values are visible in the Subscription, Resource group, Action group name, and Display name boxes.

  7. 設定通知。 選取 [下一步:通知],或選取 頁面頂端的 [通知 ] 索引卷標。

  8. 定義觸發警示時,要傳送的通知清單。

  9. 針對每個通知:

    1. 選取 [ 通知類型],然後填入該通知的適當欄位。 可用的選項如下:

      通知類型 描述 欄位​​
      寄送電子郵件給 Azure Resource Manager 角色 根據訂用帳戶成員的角色傳送電子郵件給訂用帳戶成員。
      通知電子郵件只會傳送至為 Microsoft Entra 使用者設定的主要電子郵件地址。
      電子郵件只會傳送給所選角色的 Microsoft Entra ID 用戶 成員,而不是傳送給 Microsoft Entra 群組或服務主體。
      請參閱電子郵件
      輸入為 Microsoft Entra 使用者設定的主要電子郵件位址。 請參閱電子郵件
      電子郵件 請確定您已正確設定電子郵件篩選和任何惡意程式碼/垃圾郵件預防服務。 電子郵件會從下列電子郵件地址傳送:
      * azure-noreply@microsoft.com
      * azureemail-noreply@microsoft.com
      * alerts-noreply@mail.windowsazure.com
      輸入應收到通知的電子郵件。
      SMS SMS 通知支援雙向通訊。 SMS 包含下列資訊:
      * 此警示傳送至動作群組的簡短名稱
      * 警示的標題。
      使用者可以回應 SMS 以:
      * 取消訂閱所有動作群組或單一動作群組的所有SMS警示。
      * 重新訂閱警示
      * 要求說明。
      如需受支援 SMS 回覆的詳細資訊,請參閱 SMS 回覆
      輸入 SMS 收件者的 [國碼 (地區碼)] 和 [電話號碼]。 如果您無法在 Azure 入口網站中選取您的國碼 (地區碼),即表示您的國家/地區不支援 SMS。 如果您的國碼 (地區碼) 無法使用,您可以在 [分享您的想法] 投票以新增您的國家/地區。 作為因應措施,直到支援您的國家/地區為止,請將動作群組設定為將 Webhook 呼叫給支援您國家/地區的第三方 SMS 提供者。
      Azure 應用程式推播通知 將通知傳送至 Azure 行動應用程式。 若要啟用 Azure 行動應用程式的推播通知,請提供 Azure 行動應用程式的詳細資訊,請參閱 Azure 行動應用程式 在 [Azure 帳戶電子郵件] 欄位中,輸入您在設定 Azure 行動應用程式時用來作為帳戶識別碼的電子郵件地址。
      語音 語音通知。 輸入通知收件者的 [國碼 (地區碼)] 和 [電話號碼]。 如果您無法在 Azure 入口網站中選取您的國碼 (地區碼),即表示您的國家/地區不支援語音通知。 如果您的國碼 (地區碼) 無法使用,您可以在 [分享您的想法] 投票以新增您的國家/地區。 作為因應措施,直到支援您的國家/地區為止,請將動作群組設定為將 Webhook 呼叫給支援您國家/地區的第三方語音電話提供者。
    2. 如果您要開啟一般警示架構請選擇取 。 常見的警示架構是單一可延伸且統一的警示承載,可用於 Azure 監視器中的所有警示服務。 如需通用架構的詳細資訊,請參閱 一般警示架構

      Screenshot that shows the Notifications tab of the Create action group dialog. Configuration information for an email notification is visible.

    3. 選取 [確定]。

  10. 設定動作。 選取 [下一步:動作]。 或選取頁面頂端的 [動作] 索引標籤。

  11. 定義觸發警示時,要觸發的動作清單。 選取動作類型,然後輸入每個動作的名稱。

    動作類型 詳細資料
    自動化 Runbook 如需自動化 Runbook 承載限制的相關資訊,請參閱自動化限制
    事件中樞 [事件中樞] 動作會將通知發佈至 [事件中樞]。 如需事件中樞的詳細資訊,請參閱 Azure 事件中樞— 巨量數據串流平臺和事件擷取服務。 您可以從事件接收者訂閱警示通知資料流程。
    函式 在函式中呼叫現有的 HTTP 觸發程序端點。 如需詳細資訊,請參閱 Azure Functions
    當您定義函式動作時,函式的 HTTP 觸發程序端點和存取金鑰會儲存在動作定義中,例如 https://azfunctionurl.azurewebsites.net/api/httptrigger?code=<access_key>。 如果您變更函式的存取金鑰,則必須移除並重新建立動作群組中的函式動作。
    您的端點必須支援 HTTP POST 方法。
    函式必須具有儲存體帳戶的存取權。 如果沒有存取權,則無法使用金鑰,且無法存取函式 URI。
    了解如何還原儲存體帳戶的存取權
    ITSM ITSM 動作需要 ITSM 連線。 若要了解如何建立 ITSM 連線,請參閱 ITSM 整合
    邏輯應用程式 您可以使用 Azure Logic Apps 來建置和自訂整合的工作流程,以及自訂警示通知。
    安全 Webhook 當您使用安全 Webhook 動作時,必須使用 Microsoft Entra ID 來保護動作群組與端點之間的連線,這是受保護的 Web API。 請參閱設定安全 Webhook 的驗證。 安全 Webhook 不支援基本驗證。 如果您使用基本驗證,請使用 Webhook 動作。
    Webhook 如果您使用 Webhook 動作,您的目標 Webhook 端點必須能夠處理不同警示來源發出的各種 JSON 承載。
    您無法透過 Webhook 動作傳遞安全性憑證。 若要使用基本驗證,您必須透過 URI 傳遞認證。
    如果 Webhook 端點需要特定結構描述,例如 Microsoft Teams 結構描述,請使用 Logic Apps 動作類型來操作警示結構描述,以符合目標 Webhook 的期望。
    如需用於重試 Webhook 動作規則的相關資訊,請參閱 Webhook

    Screenshot that shows the Actions tab of the Create action group dialog. Several options are visible in the Action type list.

  12. (選擇性。)如果您想要將索引鍵/值組指派給動作群組來分類您的 Azure 資源,請選取 [下一步:標籤 ] 或 [捲標 ] 索引標籤。否則,請略過此步驟。

    Screenshot that shows the Tags tab of the Create action group dialog. Values are visible in the Name and Value boxes.

  13. 選取 [檢閱 + 建立] 來檢閱您的設定。 此步驟會快速檢查您的輸入,以確定您已輸入所有必要的資訊。 如果發生問題,則會在這裡回報。 在您檢閱設定之後,請選取 [建立] 以建立動作群組。

    Screenshot that shows the Review + create tab of the Create action group dialog. All configured values are visible.

注意

當您設定動作以透過電子郵件或簡訊通知人員時,他們會收到確認,指出他們已新增至動作群組。

測試 Azure 入口網站中的動作群組

當您在 Azure 入口網站 中建立或更新動作群組時,您可以測試動作群組。

  1. 在 Azure 入口網站 中建立動作群組。

    注意

    如果您要編輯現有的動作群組,請先將變更儲存至動作群組,再進行測試。

  2. 在動作群組頁面上,選取 [ 測試動作群組]。

    Screenshot that shows the test action group page with the Test option.

  3. 選取範例類型,以及您想要測試的通知和動作類型。 然後選取 [測試]。

    Screenshot that shows the Test sample action group page with an email notification type and a webhook action type.

  4. 如果您關閉視窗,或在測試執行時選取 [返回測試設定 ],則會停止測試,而且您不會取得測試結果。

    Screenshot that shows the Test Sample action group page. A dialog contains a Stop button and asks the user about stopping the test.

  5. 測試完成時,會出現 [成功] 或 [失敗] 的測試狀態 如果測試失敗,而且您想要取得詳細資訊,請選取 [ 檢視詳細數據]。

    Screenshot that shows the Test sample action group page showing a test that failed.

您可以使用錯誤詳細數據一節中的資訊來了解問題。 然後,您可以編輯、儲存變更,然後再次測試動作群組。

當您執行測試並選取通知類型時,您會在主旨中收到含有「測試」的訊息。 測試提供在生產環境中啟用動作群組之前,檢查動作群組是否如預期般運作。 測試電子郵件通知中的所有詳細數據和連結都是來自範例參考集。

測試動作群組的角色需求

下表描述測試動作功能所需的角色成員資格需求:

角色成員資格 現有的動作群組 現有的資源群組和新動作群組 新的資源群組和新動作群組
訂用帳戶參與者 支援 支援 支援
資源群組參與者 支援 支援 不適用
動作群組資源參與者 支援 不適用 不適用
Azure 監視器參與者 支援 支援 不適用
自訂角色 支援 支援 不適用

注意

  • 您可以在每個時間週期執行有限的測試。 若要檢查哪些限制適用於您的情況,請參閱 Azure 監視器服務限制
  • 當您在入口網站中設定動作群組時,可以選擇加入或退出一般警示架構。
    • 若要尋找所有範例類型的常見架構範例,請參閱 測試動作群組的常見警示架構定義。
    • 若要尋找非通用架構警示定義,請參閱 測試動作群組的非通用警示架構定義。

使用 Resource Manager 樣本建立動作群組

您可以使用 Azure Resource Manager 樣本 來設定動作群組。 使用範本,您可以自動設定可在特定警示類型中重複使用的動作群組。 這些動作群組可確保觸發警示時,所有正確的合作對象都會收到通知。

基本步驟如下:

  1. 建立範本作為 JSON 檔案,描述如何建立動作群組。
  2. 使用 任何部署方法部署範本。

動作群組 Resource Manager 範本

若要使用 Resource Manager 範本建立動作群組,您可以建立 類型的 Microsoft.Insights/actionGroups資源。 然後填入所有相關屬性。 以下是建立動作群組的兩個範例範本。

第一個範本說明如何為動作群組建立 Resource Manager 範本,其中動作定義會在範本中硬式編碼。 第二個範本描述如何建立範本,以在部署範本時將 Webhook 組態資訊當做輸入參數。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "actionGroupName": {
      "type": "string",
      "metadata": {
        "description": "Unique name (within the Resource Group) for the Action group."
      }
    },
    "actionGroupShortName": {
      "type": "string",
      "metadata": {
        "description": "Short name (maximum 12 characters) for the Action group."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Insights/actionGroups",
      "apiVersion": "2021-09-01",
      "name": "[parameters('actionGroupName')]",
      "location": "Global",
      "properties": {
        "groupShortName": "[parameters('actionGroupShortName')]",
        "enabled": true,
        "smsReceivers": [
          {
            "name": "contosoSMS",
            "countryCode": "1",
            "phoneNumber": "5555551212"
          },
          {
            "name": "contosoSMS2",
            "countryCode": "1",
            "phoneNumber": "5555552121"
          }
        ],
        "emailReceivers": [
          {
            "name": "contosoEmail",
            "emailAddress": "devops@contoso.com",
            "useCommonAlertSchema": true

          },
          {
            "name": "contosoEmail2",
            "emailAddress": "devops2@contoso.com",
            "useCommonAlertSchema": true
          }
        ],
        "webhookReceivers": [
          {
            "name": "contosoHook",
            "serviceUri": "http://requestb.in/1bq62iu1",
            "useCommonAlertSchema": true
          },
          {
            "name": "contosoHook2",
            "serviceUri": "http://requestb.in/1bq62iu2",
            "useCommonAlertSchema": true
          }
        ],
         "SecurewebhookReceivers": [
          {
            "name": "contososecureHook",
            "serviceUri": "http://requestb.in/1bq63iu1",
            "useCommonAlertSchema": false
          },
          {
            "name": "contososecureHook2",
            "serviceUri": "http://requestb.in/1bq63iu2",
            "useCommonAlertSchema": false
          }
        ],
        "eventHubReceivers": [
          {
            "name": "contosoeventhub1",
            "subscriptionId": "replace with subscription id GUID",
            "eventHubNameSpace": "contosoeventHubNameSpace",
            "eventHubName": "contosoeventHub",
            "useCommonAlertSchema": true
          }
        ]
      }
    }
  ],
  "outputs":{
      "actionGroupId":{
          "type":"string",
          "value":"[resourceId('Microsoft.Insights/actionGroups',parameters('actionGroupName'))]"
      }
  }
}
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "actionGroupName": {
      "type": "string",
      "metadata": {
        "description": "Unique name (within the Resource Group) for the Action group."
      }
    },
    "actionGroupShortName": {
      "type": "string",
      "metadata": {
        "description": "Short name (maximum 12 characters) for the Action group."
      }
    },
    "webhookReceiverName": {
      "type": "string",
      "metadata": {
        "description": "Webhook receiver service Name."
      }
    },    
    "webhookServiceUri": {
      "type": "string",
      "metadata": {
        "description": "Webhook receiver service URI."
      }
    }    
  },
  "resources": [
    {
      "type": "Microsoft.Insights/actionGroups",
      "apiVersion": "2021-09-01",
      "name": "[parameters('actionGroupName')]",
      "location": "Global",
      "properties": {
        "groupShortName": "[parameters('actionGroupShortName')]",
        "enabled": true,
        "smsReceivers": [
        ],
        "emailReceivers": [
        ],
        "webhookReceivers": [
          {
            "name": "[parameters('webhookReceiverName')]",
            "serviceUri": "[parameters('webhookServiceUri')]",
            "useCommonAlertSchema": true
          }
        ]
      }
    }
  ],
  "outputs":{
      "actionGroupResourceId":{
          "type":"string",
          "value":"[resourceId('Microsoft.Insights/actionGroups',parameters('actionGroupName'))]"
      }
  }
}

管理動作群組

建立動作群組之後,您可以在入口網站中檢視它:

  1. 前往 Azure 入口網站

  2. 從 [ 監視] 頁面,選取 [ 警示]。

  3. 選取 [ 動作群組]。

  4. 選取您要管理的動作群組。 您可以:

    • 新增、編輯或移除動作。
    • 刪除動作群組。

通知的服務限制

電話號碼或電子郵件可以包含在許多訂用帳戶的動作群組中。 當傳送太多通知給特定電話號碼、電子郵件位址或裝置時,Azure 監視器會使用速率限制來暫停通知。 速率限制可確保警示可管理且可採取動作。

速率限制適用於簡訊、語音和電子郵件通知。 所有其他通知動作的速率都不受限制。 如需速率限制的相關信息,請參閱 Azure 監視器服務限制

所有訂用帳戶都會套用速率限制。 只要達到閾值,就會套用速率限制,即使從多個訂用帳戶傳送訊息也一樣。

當電子郵件位址受到速率限制時,會傳送通知來傳達已套用速率限制,以及速率限制到期的時間。

以電子郵件傳送 Azure Resource Manager

當您使用 Azure Resource Manager 傳送電子郵件通知時,您可以將電子郵件傳送給訂用帳戶角色的成員。 電子郵件只會傳送給角色的 Microsoft Entra ID 用戶 成員。 電子郵件不會傳送給 Microsoft Entra 群組或服務主體。

通知電子郵件只會傳送至主要電子郵件位址。

如果您的主要電子郵件未收到通知,請設定電子郵件 Azure Resource Manager 角色的電子郵件位址:

  1. 在 Azure 入口網站中,移至 [Microsoft Entra ID]

  2. 在左側,選取 [ 所有使用者]。 右側會出現使用者清單。

  3. 選取您要檢閱的主要電子郵件的使用者

    Screenshot that shows the Azure portal All users page. Information about one user is visible but is indecipherable.

  4. 在使用者配置檔中,查看 [電子郵件] 值的 [連絡資訊]。 如果空白:

    1. 在頁面頂端,選取 [ 編輯]。
    2. 輸入電子郵件地址。
    3. 在頁面頂端,選取 [儲存]

    Screenshot that shows a user profile page in the Azure portal. The Edit button and the Email box are called out.

每個動作群組的電子郵件動作數目可能有限。 若要檢查哪些限制適用於您的情況,請參閱 Azure 監視器服務限制

當您設定 Resource Manager 角色時:

  1. 將類型 為 User 的實體指派給角色。
  2. 在訂用帳戶層級進行指派。
  3. 請確定已 為其 Microsoft Entra 設定檔中的使用者設定電子郵件位址。

注意

客戶在將新的 Azure Resource Manager 角色新增至訂用帳戶之後,最多可能需要 24 小時才會開始接收通知。

SMS

如需速率限制的相關信息,請參閱語音、簡訊、電子郵件、Azure App 服務 推播通知和 Webhook 文章的速率限制。

如需在動作群組中使用SMS通知的重要資訊,請參閱 動作群組中的SMS警示行為。

每個動作群組的SMS動作數目可能有限。

注意

如果您無法在 Azure 入口網站中選取您的國碼 (地區碼),即表示您的國家/地區不支援 SMS。 如果您的國碼 (地區碼) 無法使用,您可以在 [分享您的想法] 投票以新增您的國家/地區。 同時,作為因應措施,請將您的動作群組設定為呼叫Webhook給第三方SMS提供者,以在您的國家/地區提供支援。

簡訊回復

SMS 通知支援這些回復。 SMS 的收件者可以使用下列值回復 SMS:

答覆 描述
禁用 <Action Group Short name> 停用動作群組的進一步SMS
使 <Action Group Short name> 從動作群組重新啟用SMS
停止 停用所有動作群組的進一步SMS
START 從所有動作群組重新啟用簡訊
HELP 回應會傳送給具有本文連結的使用者。

注意

如果使用者已取消訂閱SMS警示,但接著會新增至新的動作群組;他們會收到該新動作群組的簡訊警示,但仍未訂閱所有先前的動作群組。

每個動作群組的 Azure 應用程式動作數目可能有限。

支援SMS通知的國家/地區

國碼 (地區碼) Country
61 澳洲
43 奧地利
32 比利時
55 巴西
1 加拿大
56 智利
86 中國
420 捷克共和國
45 丹麥
372 愛沙尼亞
358 芬蘭
33 法國
49 德國
852 香港特別 管理員 區
91 印度
353 愛爾蘭
972 以色列
39 義大利
81 日本
352 盧森堡
60 馬來西亞
52 墨西哥
31 荷蘭
64 紐西蘭
47 挪威
351 葡萄牙
1 波多黎各
40 羅馬尼亞
7 俄羅斯
65 新加坡
27 南非
82 南韓
34 西班牙
41 瑞士
886 台灣
971 阿拉伯聯合大公國
44 英國
1 美國

語音

如需速率限制的重要資訊,請參閱語音、簡訊、電子郵件、Azure App 服務 推播通知和 Webhook 文章的速率限制。

每個動作群組的語音動作數目可能有限。

注意

如果您無法在 Azure 入口網站 中選取您的國家/地區代碼,則國家/地區不支援語音通話。 如果您的國碼 (地區碼) 無法使用,您可以在 [分享您的想法] 投票以新增您的國家/地區。 同時,作為因應措施,請將您的動作群組設定為呼叫 Webhook 給第三方語音通話提供者,以提供您國家/地區的支援。

語音通知支持的國家/地區

國碼 (地區碼) Country
61 澳洲
43 奧地利
32 比利時
55 巴西
1 加拿大
56 智利
420 捷克共和國
45 丹麥
358 芬蘭
353 愛爾蘭
972 以色列
352 盧森堡
60 馬來西亞
52 墨西哥
31 荷蘭
64 紐西蘭
47 挪威
351 葡萄牙
65 新加坡
27 南非
46 斯威登
44 英國
1 美國

如需支持國家/地區定價的相關信息,請參閱 Azure 監視器定價

Webhook

注意

如果您使用 Webhook 動作,您的目標 Webhook 端點必須能夠處理不同警示來源發出的各種 JSON 承載。 您無法透過 Webhook 動作傳遞安全性憑證。 若要使用基本驗證,您必須透過 URI 傳遞認證。 如果 Webhook 端點預期特定架構,例如 Microsoft Teams 架構,請使用 Logic Apps 動作來轉換警示架構,以符合目標 Webhook 的期望。

呼叫 Webhook 動作群組時,通常會遵循下列規則:

  • 叫用 Webhook 時,如果第一次呼叫失敗,則會重試至少 1 次,並在各種延遲間隔中重試最多 5 次 (5 次,20 秒,40 秒)。
    • 第 1 到 2 次嘗試之間的延遲為 5 秒
    • 第 2 到 3 次嘗試之間的延遲為 20 秒
    • 第 3 到 4 次嘗試之間的延遲為 5 秒
    • 第 4 到 5 次嘗試之間的延遲為 40 秒
    • 第 5 到 6 次嘗試之間的延遲為 5 秒
  • 嘗試呼叫 Webhook 的重試失敗之後,沒有動作群組呼叫端點 15 分鐘。
  • 重試邏輯假設可以重試呼叫。 狀態代碼:408、429、503、504 或 HttpRequestException、WebException, TaskCancellationException 允許重試呼叫」。

設定安全 Webhook 的驗證

安全的 Webhook 動作會使用“AZNS Microsoft Entra Webhook” Microsoft Entra 應用程式的 Microsoft Entra 租使用者中的服務主體實例,向受保護的 API 進行驗證。 若要讓動作群組運作,此 Microsoft Entra Webhook 服務主體必須新增為目標 Microsoft Entra 應用程式上角色的成員,以授與目標端點的存取權。

如需 Microsoft Entra 應用程式和服務主體的概觀,請參閱 Microsoft 身分識別平台 (v2.0) 概觀。 請遵循下列步驟來利用安全的 Webhook 功能。

注意

不支援 SecureWebhook基本身份驗證。 若要使用基本身份驗證,您必須使用 Webhook

如果您使用 Webhook 動作,您的目標 Webhook 端點必須能夠處理不同警示來源發出的各種 JSON 承載。 如果 Webhook 端點預期特定架構,例如 Microsoft Teams 架構,請使用 Logic Apps 動作來轉換警示架構,以符合目標 Webhook 的期望。

  1. 為受保護的 Web API 建立 Microsoft Entra 應用程式。 如需詳細資訊,請參閱 受保護的 Web API:應用程式註冊。 將受保護的 API 設定為由精靈應用程式呼叫,並公開應用程式許可權,而不是委派的許可權。 如需這些許可權的詳細資訊,請參閱 服務或精靈應用程式呼叫您的 Web API。

    注意

    設定受保護的 Web API 以接受 V2.0 存取令牌。 如需此設定的詳細資訊,請參閱 Microsoft Entra 應用程式指令清單

  2. 若要讓動作群組使用您的 Microsoft Entra 應用程式,請使用遵循此程式的 PowerShell 腳本。

    注意

    您必須獲指派 Microsoft Entra Application 管理員 istrator 角色,才能執行此腳本。

    1. 修改 PowerShell 腳本的 Connect-AzureAD 呼叫,以使用您的 Microsoft Entra 租使用者識別碼。
    2. 修改 PowerShell 腳本的 $myAzureADApplicationObjectId 變數,以使用 Microsoft Entra 應用程式的物件識別碼。
    3. 執行修改過的腳本。

    注意

    服務主體必須指派 Microsoft Entra 應用程式的擁有者角色 ,才能在動作群組中建立或修改安全的 Webhook 動作。

  3. 設定安全的 Webhook 動作。

    1. $myApp.ObjectId複製文稿中的值。
    2. 在 Webhook 動作定義中,於 [ 物件識別符 ] 方塊中,輸入您複製的值。

    Screenshot that shows the Secured Webhook dialog in the Azure portal with the Object ID box.

保護 Webhook PowerShell 腳本

Connect-AzureAD -TenantId "<provide your Azure AD tenant ID here>"

# Define your Azure AD application's ObjectId.
$myAzureADApplicationObjectId = "<the Object ID of your Azure AD Application>"

# Define the action group Azure AD AppId.
$actionGroupsAppId = "461e8683-5575-4561-ac7f-899cc907d62a"

# Define the name of the new role that gets added to your Azure AD application.
$actionGroupRoleName = "ActionGroupsSecureWebhook"

# Create an application role with the given name and description.
Function CreateAppRole([string] $Name, [string] $Description)
{
    $appRole = New-Object Microsoft.Open.AzureAD.Model.AppRole
    $appRole.AllowedMemberTypes = New-Object System.Collections.Generic.List[string]
    $appRole.AllowedMemberTypes.Add("Application");
    $appRole.DisplayName = $Name
    $appRole.Id = New-Guid
    $appRole.IsEnabled = $true
    $appRole.Description = $Description
    $appRole.Value = $Name;
    return $appRole
}

# Get your Azure AD application, its roles, and its service principal.
$myApp = Get-AzureADApplication -ObjectId $myAzureADApplicationObjectId
$myAppRoles = $myApp.AppRoles
$actionGroupsSP = Get-AzureADServicePrincipal -Filter ("appId eq '" + $actionGroupsAppId + "'")

Write-Host "App Roles before addition of new role.."
Write-Host $myAppRoles

# Create the role if it doesn't exist.
if ($myAppRoles -match "ActionGroupsSecureWebhook")
{
    Write-Host "The Action Group role is already defined.`n"
}
else
{
    $myServicePrincipal = Get-AzureADServicePrincipal -Filter ("appId eq '" + $myApp.AppId + "'")

    # Add the new role to the Azure AD application.
    $newRole = CreateAppRole -Name $actionGroupRoleName -Description "This is a role for Action Group to join"
    $myAppRoles.Add($newRole)
    Set-AzureADApplication -ObjectId $myApp.ObjectId -AppRoles $myAppRoles
}

# Create the service principal if it doesn't exist.
if ($actionGroupsSP -match "AzNS AAD Webhook")
{
    Write-Host "The Service principal is already defined.`n"
}
else
{
    # Create a service principal for the action group Azure AD application and add it to the role.
    $actionGroupsSP = New-AzureADServicePrincipal -AppId $actionGroupsAppId
}

New-AzureADServiceAppRoleAssignment -Id $myApp.AppRoles[0].Id -ResourceId $myServicePrincipal.ObjectId -ObjectId $actionGroupsSP.ObjectId -PrincipalId $actionGroupsSP.ObjectId

Write-Host "My Azure AD Application (ObjectId): " + $myApp.ObjectId
Write-Host "My Azure AD Application's Roles"
Write-Host $myApp.AppRoles

將 Runbook 動作從「執行身分帳戶」移轉至「以受控識別執行」

注意

Azure 自動化「執行身分帳戶」已 2023 年 9 月 30 日淘汰,這會影響以動作類型 “Automation Runbook” 建立的動作。 淘汰之後,不支持連結至「執行身分帳戶」Runbook 的現有動作。 不過,這些 Runbook 會繼續執行,直到自動化帳戶的「執行身分」憑證到期為止。

若要確保您可以繼續使用 Runbook 動作,您需要:

  1. 新增動作類型為 「Automation Runbook」 的新動作,然後從下拉式清單中選擇相同的 Runbook,以編輯動作群組。 (下拉式清單中的所有 5 個 Runbook 都已重新設定在後端,以使用受控識別進行驗證,而不是執行身分帳戶。自動化帳戶中系統指派的受控識別會使用訂用帳戶層級的 VM 參與者角色來啟用。」

    Screenshot of adding a runbook action to an action group.

    Screenshot of configuring the runbook action.

  2. 刪除連結至「執行身分帳戶」Runbook 的舊 Runbook 動作。

  3. 儲存動作群組。

下一步