適用於 JavaScript 的 Azure 事件方格命名空間用戶端連結庫 - 1.0.0 版
Azure 事件方格 是雲端式服務,可大規模提供可靠的事件傳遞。
使用用戶端連結庫將事件傳送至事件方格命名空間
重要連結:
開始使用
目前支援的環境
- LTS 版本的 Node.js
- Safari、Chrome、Edge 和 Firefox 的最新版本。
如需詳細資訊,請參閱我們的支援原則。
必要條件
- Azure 訂用帳戶。
- 現有的 事件方格 主題或網域。 如果您需要建立資源,您可以使用 Azure 入口網站或Azure CLI。
如果您使用 Azure CLI,請將 與 <your-resource-name>
取代<your-resource-group-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
套件
使用 安裝適用於 JavaScript npm
的 Azure 事件方格命名空間用戶端連結庫:
npm install @azure/eventgrid-namespaces
建立和驗證命名空間用戶端
若要建立客戶端物件來存取 Event Grid 命名空間 API,您需要 endpoint
Event Grid 主題和 credential
的 。 事件方格命名空間用戶端可以使用存取金鑰。
您可以在 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 會使用 分散式追蹤延伸模組將分散式追蹤元數據新增至事件。 和 tracestate
延伸模組屬性的值traceparent
會對應至traceparent
傳送事件的 HTTP 要求中的和 tracestate
標頭。 如果事件已經有 traceparent
擴充屬性,則不會更新。
Kubernetes 上的事件方格
此連結庫已在 Kubernetes 上使用 Azure Arc 進行測試和驗證。
範例
將事件發佈至事件方格主題
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/記錄器套件檔。
下一步
如需如何使用此連結庫的詳細範例,請參閱 範例 目錄。
參與
如果您希望向此程式庫投稿,請參閱投稿指南,深入瞭解如何組建與測試程式碼。