共用方式為


使用命名空間主題,將事件傳遞至 Azure 事件中樞 - Azure 入口網站

文章提供以 CloudEvents JSON 格式將事件發佈到 Azure 事件方格,以及透過使用推送傳遞模型來傳遞這些事件的逐步指示。

具體來說,您可以使用 Azure 入口網站和 Curl 將事件發佈至事件方格中的命名空間主題,並將這些事件從事件訂用帳戶推送至事件中樞處理常式目的地。 如需推送傳遞模型的詳細資訊,請參閱推送傳遞概觀

如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶

建立事件方格命名空間

事件方格命名空間會提供您用來張貼事件的使用者定義端點。 下列範例使用 Azure Cloud Shell 中的 Bash,在您的資源群組中建立命名空間。 命名空間名稱必須是唯一的,因為它是網域名稱系統 (DNS) 項目的一部分。

  1. 瀏覽至 Azure 入口網站。

  2. 在主題的搜尋列中,輸入 Event Grid Namespaces,然後從結果中選取 [Event Grid Namespaces]。

    顯示 Azure 入口網站中搜尋列的螢幕擷取畫面。

  3. 在 [事件方格命名空間] 頁面上,選取命令列上的 [+ 建立]顯示 [事件方格命名空間] 頁面的螢幕擷取畫面,其中已選取命令列上的 [建立] 按鈕。

  4. 在 [建立命名空間] 頁面上,遵循下列步驟:

    1. 選取您要在其中建立命名空間的 [Azure 訂用帳戶]
    2. 選取 [建立新的] 或選取現有的資源群組,以建立新的資源群組。
    3. 輸入命名空間的名稱
    4. 選取您要在其中建立資源群組的 [位置]
    5. 然後,選取 [檢閱 + 建立]
      顯示 [建立命名空間] 頁面的螢幕擷取畫面。
    6. 在 [檢閱 + 建立] 頁面上,選取 [建立]
  5. 部署成功後,在 [部署] 頁面上選取 [移至資源]

取得存取金鑰

  1. 在 [事件方格命名空間] 頁面上,選取左側功能表上的 [存取金鑰]
  2. 選取存取金鑰旁的 [複製] 按鈕。 顯示 [事件方格命名空間] 頁面的螢幕擷取畫面,其中已選取 [存取金鑰] 索引標籤。
  3. 將存取金鑰儲存在某個位置。 您稍後會在本快速入門中使用此入口網站。

啟用事件方格命名空間的受控識別

在事件方格命名空間中啟用系統指派的受控識別。 若要使用受控識別將事件傳遞至事件中樞命名空間中的事件中樞,請遵循下列步驟:

  1. 啟用系統指派和使用者指派的受控識別:命名空間。 繼續閱讀下一節,以了解如何使用 Azure CLI 啟用受控識別。
  2. 將身分識別新增至事件中樞命名空間上的 Azure 事件中樞資料傳送者角色,接著繼續閱讀下一節,以尋找如何新增角色指派。
  3. 設定使用事件中樞作為端點的事件訂用帳戶,以使用系統指派或使用者指派的受控識別。

在本節中,您會在命名空間上啟用系統指派的受控識別。 您稍後會在本快速入門中執行其他步驟。

  1. 在 [事件方格命名空間] 頁面上,選取左側功能表上的 [身分識別]

  2. 在 [身分識別] 頁面上,針對 [狀態] 選取 [開啟]

  3. 選取命令列上的儲存

    顯示 [事件方格命名空間] 頁面 [身分識別] 索引標籤的螢幕擷取畫面。

在命名空間中建立主題

建立主題以用來保存發佈至命名空間端點的所有事件。

  1. 選取左側功能表上的 [主題]
  2. 在 [主題] 頁面上,選取命令列上的 [+ 主題]顯示 [主題] 頁面的螢幕擷取畫面。
  3. 在 [建立主題] 頁面上,遵循下列步驟:
    1. 輸入主題的名稱
    2. 選取 建立
      顯示 [建立主題] 頁面的螢幕擷取畫面。

建立事件中樞命名空間

建立事件中樞資源,以用作命名空間主題推送傳遞訂用帳戶的處理常式目的地。 請在網際網路瀏覽器的個別索引標籤或個別視窗中執行這些步驟。 瀏覽至 Azure 入口網站,並使用您之前使用的相同認證和相同 Azure 訂用帳戶來登入。

  1. 在搜尋列中輸入事件中樞,然後選取 [事件中樞]
  2. 在 [事件中樞] 頁面的命令列上,選取 [+ 建立]
  3. 在 [建立命名空間] 頁面上,遵循下列步驟:
    1. 選取您用來建立事件方格命名空間的 Azure 訂用帳戶
    2. 選取您先前使用的資源群組
    3. 輸入事件中樞命名空間的 [名稱]
    4. 選取您用於事件方格命名空間的相同位置
    5. 選取 [基本] 作為定價層。
    6. 選取 [檢閱 + 建立]。 顯示 [建立事件中樞命名空間] 頁面的螢幕擷取畫面。
    7. [檢閱] 頁面上,選取 [建立]
  4. 在 [部署] 頁面上,於部署成功之後選取 [移至資源]

將事件方格受控識別新增至事件中樞資料傳送者角色

  1. 在 [事件中樞命名空間] 頁面上,選取左側功能表上的 [存取控制 (IAM)]
  2. 選取命令列上的 [新增] ->[新增角色指派]顯示 [事件中樞命名空間] 頁面的螢幕擷取畫面,其中已選取 [存取控制] 索引標籤。
  3. 在 [新增角色指派] 頁面上,搜尋事件中樞資料傳送者,然後從角色清單中選取 [Azure 事件中樞資料傳送者],然後選取 [下一步]顯示 [新增角色指派] 頁面的螢幕擷取畫面。
  4. 在 [成員] 索引標籤上,針對類型選取 [受控識別],然後選取 [選取成員]顯示 [新增角色指派] 頁面 [成員] 索引標籤的螢幕擷取畫面。
  5. 在 [選取受控識別] 頁面上,選取 [受控識別] 的 [事件方格命名空間],然後選取與事件方格命名空間相同名稱的受控識別。 顯示 [選取受控識別] 頁面的螢幕擷取畫面。
  6. 在 [選取受控識別] 頁面上,選擇 [選取]顯示所選受控識別的螢幕擷取畫面。
  7. 現在,在 [新增角色指派] 頁面上,選取 [檢閱 + 指派]顯示 [新增角色指派] 頁面的螢幕擷取畫面,其中已選取 [受控識別]。
  8. 在 [檢閱 + 指派] 頁面,選取 [檢閱 + 指派]

建立事件中樞

  1. 在 [事件中樞命名空間] 頁面上,選取左側功能表中的 [事件中樞]
  2. 在 [事件中樞] 頁面上,選取命令列中的 [+事件中樞]顯示 [事件中樞] 頁面的螢幕擷取畫面,其中已選取 [+ 事件中樞]。
  3. 在 [建立事件中樞] 頁面上,輸入事件中樞的名稱,然後選取 [檢閱 + 建立]顯示 [建立事件中樞] 頁面的螢幕擷取畫面。
  4. 在 [檢閱 + 建立] 頁面上,選取 [建立]

建立事件訂閱

建立一個事件訂用帳戶,將其傳遞模式設為支援推送傳遞的 [推送]

  1. 從使用 [事件中樞命名空間] 頁面開啟的索引標籤或 視窗,切換至使用 [事件方格命名空間] 頁面開啟的索引標籤或視窗。
  2. 在 [事件方格命名空間] 頁面上,選取左側功能表上的 [主題]
  3. 在 [主題] 頁面上,選取您在上一個步驟中所建立的主題。
  4. 選取命令列上的 [+ 訂閱]顯示 [主題] 頁面的螢幕擷取畫面,其中已選取 [建立訂用帳戶] 按鈕。
  5. 在 [建立事件訂閱] 頁面上,遵循下列步驟:
    1. 在 [基本] 索引標籤中,輸入事件訂閱的名稱
    2. 選取 [推送] 以取得事件傳遞模式。
    3. 確認已針對 [端點類型] 選取 [事件中樞]
    4. 選取 [設定端點]顯示 [建立訂用帳戶] 頁面的螢幕擷取畫面,其中已針對傳遞模式選取 [推送]。
    5. 在 [選取事件中樞] 頁面上,遵循下列步驟:
      1. 選取具有事件中樞的 [Azure 訂用帳戶] 和 [資源群組]
      2. 選取 [事件中樞命名空間] 和 [事件中樞]
      3. 然後,選取 [確認選取項目]顯示 [選取事件中樞] 頁面的螢幕擷取畫面。
    6. 回到 [建立訂用帳戶] 頁面,針對 [受控識別類型] 選取 [系統指派]顯示 [建立訂用帳戶] 頁面的螢幕擷取畫面,其中已針對 [受控識別類型] 設定 [系統指派]。
    7. 選取 建立

將事件傳送至您的主題

現在,依照本節中的步驟,將範例事件傳送至命名空間主題。

  1. 在 Azure 入口網站中啟動 Cloud Shell。 切換至 Bash

    顯示 Cloud Shell 的螢幕擷取畫面。

  2. 在 Cloud Shell 中,執行下列命令來宣告一個變數以保存命名空間的存取金鑰。 您稍早在本快速入門中記下此存取金鑰。

    key=ACCESSKEY
    
  3. 宣告一個變數來保存發佈作業 URI。 將 NAMESPACENAME 取代為您的事件方格命名空間的名稱,將 TOPICNAME 取代為主題的名稱。

    publish_operation_uri=https://NAMESPACENAME.eastus-1.eventgrid.azure.net/topics/TOPICNAME:publish?api-version=2023-06-01-preview
    
  4. 建立一個範例符合 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 規格。

  5. 使用 CURL 將事件傳送至主題。 CURL 是可傳送 HTTP 要求的公用程式。

    curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
    

    瀏覽至 Azure 入口網站中的 [事件中樞命名空間] 頁面、重新整理頁面,然後確認圖表中的傳入訊息計數器指出已收到事件。

    顯示事件中樞頁面的螢幕擷取畫面,其中包含顯示已收到事件的圖表。

下一步

在本文中,您已建立並設定事件方格命名空間和事件中樞資源。 如需從事件中樞接收事件的逐步指示,請參閱下列教學課程: