本文提供逐步指示,以 CloudEvents JSON 格式 將事件發佈至 Azure 事件方格,並使用推送傳遞模型傳遞這些事件。
具體來說,您可以使用 Azure 入口網站和 Curl 將事件發佈至事件方格中的命名空間主題,並將這些事件從事件訂用帳戶推送至事件中樞處理程式目的地。 如需推送傳遞模型的詳細資訊,請參閱 推送傳遞概觀。
如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶 。
建立事件方格命名空間
事件方格命名空間會提供您張貼事件的使用者定義端點。 下列範例會使用 Azure Cloud Shell 中的 Bash,在您的資源群組中建立命名空間。 命名空間名必須是唯一的,因為它是域名系統 (DNS) 條目的一部分。
瀏覽至 Azure 入口網站。
在主題的搜尋欄中,輸入
Event Grid Namespaces,然後從結果中選取Event Grid Namespaces。在 [建立命名空間] 頁面上,遵循下列步驟:
在 [ 部署] 頁面上,選取 [成功部署后 移至資源 ]。
取得存取金鑰
啟用事件方格命名空間的受控識別
在事件方格命名空間中啟用系統指派的受控識別。 若要使用受控識別將事件傳遞至事件中樞命名空間中的事件中樞,請遵循下列步驟:
- 啟用系統指派或使用者指派的受控識別: 命名空間。 繼續閱讀下一節,以瞭解如何使用 Azure CLI 啟用受控識別。
- 將身分識別新增至事件中樞命名空間上的 Azure 事件中樞數據傳送者 角色,繼續閱讀下一節,以尋找如何新增角色指派。
- 設定使用事件中樞作為端點的事件訂用帳戶,以使用系統指派或使用者指派的受控識別。
在本節中,您會在命名空間上啟用系統指派的受控識別。 您稍後會在本快速入門中執行其他步驟。
在命名空間中建立主題
建立主題,用來保存發佈至命名空間端點的所有事件。
建立事件中樞命名空間
建立事件中樞資源,以用作命名空間主題推送傳遞訂用帳戶的處理常式目的地。 請在因特網瀏覽器的個別索引標籤或個別視窗中執行這些步驟。 流覽至 Azure 入口網站,並使用您之前和相同 Azure 訂用帳戶所使用的相同認證登入。
- 在搜尋列中輸入 事件中樞 ,然後選取 [事件中樞]。
- 在 [ 事件中樞] 頁面上,選取命令行上的 [+ 建立 ]。
- 在 [ 建立命名空間] 頁面上,遵循下列步驟:
- 在 部署 頁面上,部署成功後,選取 移至資源。
將事件方格受控識別新增至事件中樞資料傳送者角色
- 在 [事件中樞命名空間] 頁面上,選取左側功能表上的 [存取控制 (IAM)]。
- 選取命令列上的 新增 ->新增角色指派。
- 在 [ 新增角色指派 ] 頁面上,搜尋 事件中樞數據傳送者,然後從角色清單中選取 [Azure 事件中樞數據發件者 ],然後選取 [ 下一步]。
- 在 [ 成員] 索引標籤中,選取類型的 [受控識別 ],然後選取 [ + 選取成員]。
- 在 [選取受控識別] 頁面上,選取受控識別的事件方格命名空間,然後選取與事件方格命名空間同名的受控識別。
- 在 [ 選取受控識別 ] 頁面上,選擇 [ 選取]。
- 現在,在 [新增角色指派] 頁面上,選取 [檢閱 + 指派]。
- 在 [檢閱 + 指派] 頁面,選取 [檢閱 + 指派]。
建立事件中樞
- 在 事件中樞命名空間 頁面上,選取左側功能表上的 事件中樞。
- 在 事件中樞 頁面上,選取功能列上的 + 事件中樞。
- 在 [ 建立事件中樞 ] 頁面上,輸入事件中樞的名稱,然後選取 [ 檢閱 + 建立]。
- 在 [檢閱 + 建立] 頁面上,選取 [建立]。
建立事件訂閱
建立事件訂閱,將其傳遞模式設定為 Push,其支援 推送傳遞。
- 從使用 [事件中樞命名空間] 頁面開啟的索引標籤或 視窗,切換至使用 [事件方格命名空間] 頁面開啟的索引標籤或視窗。
- 在 [事件方格命名空間] 頁面上,選取左側功能表上的 [主題]。
- 在 [ 主題] 頁面上,選取您在上一個步驟中建立的主題。
- 選取命令行上的 [+ 訂用帳戶 ]。
- 在 [建立事件訂閱] 頁面上,遵循下列步驟:
將事件傳送至您的主題
現在,依照本節中的步驟,將範例事件傳送至命名空間主題。
在 Azure 入口網站中啟動 Cloud Shell。 切換至 Bash。
在 Cloud Shell 中,執行下列命令來宣告變數來保存命名空間的存取金鑰。 您稍早在本快速入門中記下此存取金鑰。
key=ACCESSKEY宣告要保存發行作業 URI 的變數。 將
NAMESPACENAME取代為您的事件方格命名空間的名稱,將TOPICNAME取代為主題的名稱。publish_operation_uri=https://NAMESPACENAME.eastus-1.eventgrid.azure.net/topics/TOPICNAME:publish?api-version=2023-06-01-preview建立符合 CloudEvents 規範事件的 範例:
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} 'data元素是您事件的負載。 任何語式正確的 JSON 都可以進入這個欄位。 如需可在事件中執行之屬性(也稱為內容屬性)的詳細資訊,請參閱 CloudEvents 規格。使用 CURL 將事件傳送至主題。 CURL 是可傳送 HTTP 要求的公用程式。
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri流覽至 Azure 入口網站中的 [ 事件中樞命名空間] 頁面 ,重新整理頁面,並確認圖表中的傳入訊息計數器指出已收到事件。
後續步驟
在本文中,您已建立並設定事件方格命名空間和事件中樞資源。 如需從事件中樞接收事件的逐步說明,請參閱下列教程: