共用方式為


將事件從 Azure API 管理傳送到事件方格

適用於:所有 API 管理 層

「API 管理」能與「Azure 事件方格」整合,讓您能夠將事件通知傳送給其他服務並觸發下游程序。 事件方格是一個完全受控的事件路由服務,這使用發佈-訂閱模型。 事件方格內建支援 Azure FunctionsAzure Logic Apps 等 Azure 服務,並可使用 Webhook 將事件警示傳遞給非 Azure 服務。

例如,使用與 Event Grid 整合,您可以組建應用程式來更新資料庫、建立帳單帳戶,並在每次將使用者新增至 API 管理執行個體時傳送電子郵件通知。

在此文章中,您會訂閱 API 管理執行個體中的 Event Grid 事件、觸發事件,並將事件傳送至處理資料的端點。 為了保持簡單,您會將事件傳送至收集並顯示訊息的範例 Web 應用程式:

事件方格查看器中的 API 管理 事件

必要條件

建立事件端點

在本節中,您可以使用 Resource Manager 範本,來將預先建置的範例 Web 應用程式部署到 Azure App Service。 您稍後會訂閱 API 管理執行個體的事件方格事件,並指定此應用程式做為要將事件傳送至其中的端點。

若要部署範例應用程式,您可以使用 Azure CLI、Azure PowerShell 或 Azure 入口網站。 下列範例會在 Azure CLI 中使用 az deployment group create 命令。

  • RESOURCE_GROUP_NAME 設定為現有資源群組的名稱

  • SITE_NAME 設定為 Web 應用程式的唯一名稱

    網站名稱在 Azure 中必須是唯一的,因為它會構成 Web 應用程式完整網域名稱 (FQDN) 的一部分。 在後續小節中,您會在網頁瀏覽器中瀏覽至應用程式的 FQDN,藉以檢視您的事件。

RESOURCE_GROUP_NAME=<your-resource-group-name>
SITE_NAME=<your-site-name>

az deployment group create \
    --resource-group $RESOURCE_GROUP_NAME \
    --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
    --parameters siteName=$SITE_NAME hostingPlanName=$SITE_NAME-plan

成功部署之後 (可能需要幾分鐘的時間),開啟瀏覽器,然後瀏覽至您的 Web 應用程式以確定它正在執行:

https://<your-site-name>.azurewebsites.net

您應該會看到範例應用程式已呈現,且其中未顯示任何事件訊息。

註冊事件方格資源提供者

若您先前未曾使用過事件方格,您將必須註冊事件方格資源提供者。 如果您先前曾使用過事件方格,請跳到下一節。

在 Azure 入口網站中,執行下列步驟:

  1. 選取左側功能表上的 [訂用帳戶]

  2. 從訂用帳戶清單中選取您要用於事件方格的訂用帳戶

  3. 在 [訂用帳戶] 頁面上,在左側功能表的 [設定] 下方選取 [資源提供者]

  4. 搜尋 Microsoft.EventGrid,並確認 [狀態] 為 [未註冊]

  5. 選取提供者清單中的 Microsoft.EventGrid

  6. 在命令列上選取 [註冊]

    顯示向 Azure 訂用帳戶註冊 Microsoft.EventGrid 提供者的影像。

  7. 重新整理以確定 Microsoft.EventGrid 的狀態已變更為已註冊

    顯示成功向 Azure 訂用帳戶註冊 Microsoft.EventGrid 提供者的影像。

訂閱 API 管理事件

在事件方格中,您可以訂閱「主題」,以告知它您想要追蹤的事件,以及要將它們傳送至何處。 在這裡,您會在 API 管理執行個體中建立事件的訂閱。

  1. Azure 入口網站中,瀏覽至您的 API 管理執行個體。

  2. 選取 [事件] > [+ 事件訂閱]

  3. 在 [基本] 索引標籤上:

    • 輸入事件訂閱的描述性名稱
    • 在 [事件種類] 中,選取要傳送至事件方格的一個或多個 API 管理事件類型。 如需此文章中的範例,請至少選取 Microsoft.APIManagement.ProductCreated
    • 在 [端點詳細資料] 中,選取 [Webhook] 事件種類,按一下 [選取端點],然後輸入您的 Web 應用程式 URL,後面接著 api/updates。 範例:https://myapp.azurewebsites.net/api/updates
    • 選取 [確認選取項目]
  4. 將其餘索引標籤上的設定保留為預設值,然後選取 [建立]

    在 Azure 入口網站 中建立事件訂閱

觸發程序和檢視事件

現在,範例應用程式已啟動且正在執行,而您已使用事件方格來訂閱 API 管理執行個體,您已準備產生事件。

例如,在 API 管理執行個體中建立產品。 如果您的事件訂閱包含 Microsoft.APIManagement.ProductCreated 事件,則建立產品會觸發推送至 Web 應用程式端點的事件。

瀏覽至您的事件方格檢視器 Web 應用程式,而您應該會看到 ProductCreated 事件。 選取事件旁邊的按鈕以顯示詳細資料。

事件方格查看器中的產品已建立事件

Event Grid 事件結構描述

API 管理事件資料包含 resourceUri,可識別觸發事件的 API 管理資源。 如需 API 管理事件訊息結構描述的詳細資訊,請參閱事件方格文件:

API 管理的 Azure 事件方格事件結構描述

下一步