快速入門:使用 Azure CLI 路由傳送 Azure Cache for Redis 事件至 Web 端點
Azure Event Grid 是一項雲端事件服務。 在本快速入門中,您將使用 Azure CLI 訂閱 Azure Cache for Redis 事件、觸發事件並檢視結果。
通常,您會將事件傳送至可處理事件資料及採取行動的端點。 但為簡化本快速入門,您會傳送事件至 Web 應用程式,應用程式會收集並顯示訊息。 完成本快速入門所述的步驟後,您會看到事件資料傳送至 Web 應用程式。
如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 鍵執行程式碼或命令。
如果您選擇在本機安裝和使用 CLI,本快速入門需要您執行最新版的 Azure CLI (2.0.70 或更新版本)。 若要尋找版本,請執行 az --version
。 如果您需要安裝或升級,請參閱安裝 Azure CLI。
如果您未使用 Cloud Shell,必須先使用 az login
登入。
建立資源群組
事件方格主題會部署為個別的 Azure 資源,且須佈建在 Azure 資源群組下。 資源群組是在其中部署與管理 Azure 資源的邏輯集合。
使用 az group create 命令來建立資源群組。
下列範例會在 westcentralus 位置建立名為 <resource_group_name>
的資源群組。 以資源群組的唯一名稱取代 <resource_group_name>
。
az group create --name <resource_group_name> --location westcentralus
建立快取執行個體
#/bin/bash
# Create a Basic C0 (256 MB) Azure Cache for Redis instance
az redis create --name <cache_name> --resource-group <resource_group_name> --location westcentralus --sku Basic --vm-size C0
建立訊息端點
訂閱主題之前,讓我們建立事件訊息的端點。 端點通常會根據事件資料來採取動作。 若要簡化此快速入門,請部署預先建置的 Web 應用程式以顯示事件訊息。 部署的解決方案包括 App Service 方案、App Service Web 應用程式,以及 GitHub 的原始程式碼。
以 Web 應用程式的唯一名稱取代 <your-site-name>
。 Web 應用程式名稱必須是唯一的,因為它是 DNS 項目的一部分。
sitename=<your-site-name>
az deployment group create \
--resource-group <resource_group_name> \
--template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" \
--parameters siteName=$sitename hostingPlanName=viewerhost
部署需要幾分鐘的時間才能完成。 成功部署之後,檢視 Web 應用程式,確定它正在執行。 在網頁瀏覽器中,瀏覽至:https://<your-site-name>.azurewebsites.net
您現在應該會看到沒有顯示任何訊息的網站。
啟用事件方格資源提供者
如果您先前在 Azure 訂用帳戶中從未使用過事件方格,可能必須註冊事件方格資源提供者。 執行下列命令以註冊提供者:
az provider register --namespace Microsoft.EventGrid
可能需要一點時間才能完成註冊。 若要檢查狀態,請執行下列命令:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
當
registrationState
是Registered
時,代表已準備好繼續進行。
訂閱 Azure Cache for Redis 執行個體
在此步驟中,您會訂閱主題並告知事件方格您要追蹤的事件,及這些事件傳送的目的地。 下列範例會訂閱您建立的 Azure Cache for Redis 執行個體,並從 Web 應用程式傳遞 URL 作為事件通知的端點。 以事件訂用帳戶的名稱來取代 <event_subscription_name>
。 對於 <resource_group_name>
和 <cache_name>
,使用您稍早建立的值。
Web 應用程式的端點必須包含的尾碼 /api/updates/
。
cacheId=$(az redis show --name <cache_name> --resource-group <resource_group_name> --query id --subscription <subscription_id> --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--source-resource-id $cacheId \
--name <event_subscription_name> \
--endpoint $endpoint
再次檢視您的 Web 應用程式,並注意訂閱驗證事件是否已傳送至其中。 選取眼睛圖示以展開事件資料。 事件方格會傳送驗證事件,以便端點確認接收事件資料。 Web 應用程式包括用於驗證訂閱的程式碼。
從 Azure Cache for Redis 觸發事件
現在,讓我們觸發事件以了解 Event Grid 如何將訊息散發至您的端點。 讓我們匯出 Azure Cache for Redis 執行個體中儲存的資料。 接著,再次使用您之前建立的 {cache_name}
和 {resource_group_name}
的值。
az redis export --ids '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}' \
--prefix '<prefix_for_exported_files>' \
--container '<SAS_url>'
您已觸發此事件,而 Event Grid 會將訊息傳送至您在訂閱時設定的端點。 檢視您的 Web 應用程式,以查看您剛剛傳送的事件。
[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
"eventType": "Microsoft.Cache.ExportRDBCompleted",
"topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
"data": {
"name": "ExportRDBCompleted",
"timestamp": "2020-12-10T18:07:54.4937063+00:00",
"status": "Succeeded"
},
"subject": "ExportRDBCompleted",
"dataversion": "1.0",
"metadataVersion": "1",
"eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]
清除資源
如果您打算繼續使用此 Azure Cache for Redis 執行個體和事件訂閱,請勿清除本快速入門中建立的資源。 如果您不打算繼續,請使用下列命令刪除本快速入門中建立的資源。
以您在上面建立的資源群組取代 <resource_group_name>
。
az group delete --name <resource_group_name>
下一步
知道如何建立主題和事件訂閱後,您可以深入了解 Azure Cache for Redis 事件,及事件方格可提供的協助: