共用方式為


適用於 JavaScript 的 Azure 事件方格命名空間用戶端連結庫 - 1.0.0 版

Azure 事件方格 是雲端式服務,可提供大規模的可靠事件傳遞。

使用用戶端連結庫將事件傳送至事件方格命名空間

主要連結:

開始

目前支持的環境

如需詳細資訊,請參閱我們的 支持原則

先決條件

如果您使用 Azure CLI,請使用您自己的唯一名稱取代 <your-resource-group-name><your-resource-name>

建立事件方格主題

az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>

建立事件方格網域

az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>

安裝 @azure/eventgrid-namespaces 套件

使用 npm安裝適用於 JavaScript 的 Azure 事件方格命名空間用戶端連結庫:

npm install @azure/eventgrid-namespaces

建立及驗證命名空間用戶端

若要建立客戶端物件來存取 Event Grid 命名空間 API,您需要事件方格主題的 endpointcredential。 事件方格命名空間用戶端可以使用存取金鑰。

您可以在 Azure 入口網站,或使用下列 Azure CLI 代碼段,找到事件方格主題的端點:

az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"

使用存取金鑰

使用 Azure 入口網站 流覽至事件方格資源並擷取存取金鑰,或使用下列 Azure CLI 代碼段:

az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>

擁有 API 金鑰和端點之後,您可以使用 AzureKeyCredential 類別來驗證用戶端,如下所示:

const { EventGridSenderClient, EventGridReceiverClient, AzureKeyCredential } = require("@azure/eventgrid-namespaces");

const eventGridSenderClient = new EventGridSenderClient(
  "<endpoint>",
  new AzureKeyCredential("<Access Key>")
);

const eventGridReceiverClient = new EventGridReceiverClient(
  "<endpoint>",
  new AzureKeyCredential("<Access Key>")
);

Azure EventGrid 提供與 Azure Active Directory (Azure AD) 的整合,以身分識別為基礎的要求驗證。 透過 Azure AD,您可以使用角色型存取控制 (RBAC) 將 Azure 事件方格資源的存取權授與使用者、群組或應用程式。

若要將事件傳送至具有 TokenCredential的主題或網域,已驗證的身分識別應該已指派 「EventGrid 數據傳送者」角色。

透過 @azure/identity 套件,您可以在開發和生產環境中順暢地授權要求。 若要深入瞭解 Azure Active Directory,請參閱 @azure/identity 自述檔

例如,使用 可以使用 DefaultAzureCredential 來建構將使用 Azure Active Directory 進行驗證的用戶端:

const { EventGridSenderClient, EventGridReceiverClient } = require("@azure/eventgrid-namespaces");
const { DefaultAzureCredential } = require("@azure/identity");

const eventGridSenderClient = new EventGridSenderClient(
  "<endpoint>",
  new DefaultAzureCredential(),
  "<topicName>"
);

const eventGridReceiverClient = new EventGridReceiverClient(
  "<endpoint>",
  new DefaultAzureCredential(),
  "<topicName>",
  "<subscriptionName>"
);

重要概念

傳送和接收事件

EventGridSenderClient 可用來將事件傳送至事件方格。 您可以將它初始化為:

const eventGridSenderClient = new EventGridSenderClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>"),
  "<topicName>"
);

EventGridReceiverClient 可用於從事件方格接收事件。 您可以將它初始化為:

const eventGridReceiverClient = new EventGridReceiverClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>"),
  "<topicName>",
  "<subscriptionName>"
);

分散式追蹤和雲端事件

此連結庫支援使用 @azure/core-tracing的分散式追蹤。 使用分散式追蹤時,此連結庫會在 send 作業期間建立範圍。 此外,使用雲端事件 1.0 架構傳送事件時,SDK 會使用 分散式追蹤延伸模組,將分散式追蹤元數據新增至事件traceparenttracestate 延伸模組屬性的值會對應至從傳送事件的 HTTP 要求 traceparenttracestate 標頭。 如果事件已經有 traceparent 擴充屬性,則不會更新它。

Kubernetes 上的事件方格

此連結庫已在使用 Azure Arc Kubernetes 上進行測試和驗證。

例子

將事件發佈至事件方格主題

const { EventGridSenderClient, AzureKeyCredential } = require("@azure/eventgrid-namespaces");

const client = new EventGridSenderClient(
  "<endpoint>",
  new AzureKeyCredential("<API key>"),
  "<topicName>"
);

const cloudEvent: CloudEvent = {
  type: "example",
  source: "https://example.com",
  id: `singleEventIdV210001`,
  time: new Date(),
  data: {
    resourceUri: "https://dummyurl.com",
  },
  specversion: "1.0",
};
// Publish the Cloud Event
await client.sendEvents(cloudEvent);

故障排除

伐木

啟用記錄可能有助於找出有關失敗的實用資訊。 若要查看 HTTP 要求和回應的記錄,請將 AZURE_LOG_LEVEL 環境變數設定為 info。 或者,您可以在運行時間啟用記錄,方法是在 @azure/logger中呼叫 setLogLevel

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

如需如何啟用記錄的詳細指示,請參閱 @azure/記錄器套件檔案

後續步驟

如需如何使用此連結庫的詳細範例,請參閱 範例 目錄。

貢獻

如果您想要參與此連結庫,請閱讀 參與指南,以深入瞭解如何建置和測試程序代碼。

印象