這很重要
Azure Cache for Redis 宣布了所有 SKU 的淘汰時間表。 建議您儘快將現有的 Azure Cache for Redis 執行個體移至 Azure 受控 Redis 。
有關退役的更詳細資訊:
Azure Event Grid 是一項雲端事件服務。 在本快速入門中,您將使用 Azure CLI 訂閱 Azure Cache for Redis 事件、觸發事件並檢視結果。
通常,您會將事件傳送至可處理事件資料及採取行動的端點。 但為簡化本快速入門,您會傳送事件至 Web 應用程式,應用程式會收集並顯示訊息。 完成本快速入門所述的步驟後,您會看到事件資料傳送至 Web 應用程式。
如果您沒有 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 命令來建立資源群組。
下列範例會在 <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 訂用帳戶中使用事件方格,您可能需要註冊 Event Grid 資源提供者。 執行下列命令以註冊提供者:
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 事件,及事件方格可提供的協助: