將事件從 Azure API 管理傳送到事件方格
適用於:所有 API 管理 層
「API 管理」能與「Azure 事件方格」整合,讓您能夠將事件通知傳送給其他服務並觸發下游程序。 事件方格是一個完全受控的事件路由服務,這使用發佈-訂閱模型。 事件方格內建支援 Azure Functions 和 Azure Logic Apps 等 Azure 服務,並可使用 Webhook 將事件警示傳遞給非 Azure 服務。
例如,使用與 Event Grid 整合,您可以組建應用程式來更新資料庫、建立帳單帳戶,並在每次將使用者新增至 API 管理執行個體時傳送電子郵件通知。
在此文章中,您會訂閱 API 管理執行個體中的 Event Grid 事件、觸發事件,並將事件傳送至處理資料的端點。 為了保持簡單,您會將事件傳送至收集並顯示訊息的範例 Web 應用程式:
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 如果您沒有 API 管理服務,請完成下列快速入門:建立 Azure API 管理執行個體
- 在 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 入口網站中,執行下列步驟:
選取左側功能表上的 [訂用帳戶]。
從訂用帳戶清單中選取您要用於事件方格的訂用帳戶。
在 [訂用帳戶] 頁面上,在左側功能表的 [設定] 下方選取 [資源提供者]。
搜尋 Microsoft.EventGrid,並確認 [狀態] 為 [未註冊]。
選取提供者清單中的 Microsoft.EventGrid。
在命令列上選取 [註冊]。
重新整理以確定 Microsoft.EventGrid 的狀態已變更為已註冊。
在事件方格中,您可以訂閱「主題」,以告知它您想要追蹤的事件,以及要將它們傳送至何處。 在這裡,您會在 API 管理執行個體中建立事件的訂閱。
在 Azure 入口網站中,瀏覽至您的 API 管理執行個體。
選取 [事件] > [+ 事件訂閱]。
在 [基本] 索引標籤上:
- 輸入事件訂閱的描述性名稱。
- 在 [事件種類] 中,選取要傳送至事件方格的一個或多個 API 管理事件類型。 如需此文章中的範例,請至少選取 Microsoft.APIManagement.ProductCreated
- 在 [端點詳細資料] 中,選取 [Webhook] 事件種類,按一下 [選取端點],然後輸入您的 Web 應用程式 URL,後面接著
api/updates
。 範例:https://myapp.azurewebsites.net/api/updates
。 - 選取 [確認選取項目]。
將其餘索引標籤上的設定保留為預設值,然後選取 [建立]。
現在,範例應用程式已啟動且正在執行,而您已使用事件方格來訂閱 API 管理執行個體,您已準備產生事件。
例如,在 API 管理執行個體中建立產品。 如果您的事件訂閱包含 Microsoft.APIManagement.ProductCreated 事件,則建立產品會觸發推送至 Web 應用程式端點的事件。
瀏覽至您的事件方格檢視器 Web 應用程式,而您應該會看到 ProductCreated
事件。 選取事件旁邊的按鈕以顯示詳細資料。
API 管理事件資料包含 resourceUri
,可識別觸發事件的 API 管理資源。 如需 API 管理事件訊息結構描述的詳細資訊,請參閱事件方格文件:
- 深入瞭解訂閱事件。