Azure Event Grid は、大規模な信頼性の高いイベント配信を提供するクラウドベースのサービスです。
クライアント ライブラリを使用して Event Grid 名前空間にイベントを送信する
主要なリンク:
- ソース コード の
- パッケージ (NPM)
- API リファレンス ドキュメントの
- 製品のドキュメント
- サンプル
はじめ
現在サポートされている環境
- Node.jsの LTS バージョンを する
- Safari、Chrome、Edge、Firefox の最新バージョン。
詳細については、サポート ポリシーの を参照してください。
前提 条件
- Azure サブスクリプション。
- 既存の Event Grid トピックまたはドメイン。 リソースを作成する必要がある場合は、Azure Portal を使用するか、Azure CLI をできます。
Azure CLI を使用する場合は、<your-resource-group-name> と <your-resource-name> を独自の一意の名前に置き換えます。
Event Grid トピックを作成する
az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Event Grid ドメインを作成する
az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
@azure/eventgrid-namespaces パッケージをインストールする
npmを使用して JavaScript 用の Azure Event Grid 名前空間クライアント ライブラリをインストールします。
npm install @azure/eventgrid-namespaces
名前空間クライアントを作成して認証する
Event Grid 名前空間 API にアクセスするクライアント オブジェクトを作成するには、Event Grid トピックの endpoint と credentialが必要です。 Event Grid 名前空間クライアントは、アクセス キーを使用できます。
Event Grid トピックのエンドポイントは、Azure Portal で、または次の Azure CLI スニペットを使用して確認できます。
az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"
アクセス キーの使用
Azure Portal を使用して Event Grid リソースを参照してアクセス キーを取得するか、次の 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 は、要求の ID ベースの認証のために Azure Active Directory (Azure AD) と統合します。 Azure AD では、ロールベースのアクセス制御 (RBAC) を使用して、ユーザー、グループ、またはアプリケーションに Azure Event Grid リソースへのアクセスを許可できます。
TokenCredentialを使用してトピックまたはドメインにイベントを送信するには、認証された ID に "EventGrid Data Sender" ロールが割り当てられている必要があります。
@azure/identity パッケージを使用すると、開発環境と運用環境の両方で要求をシームレスに承認できます。 Azure Active Directory の詳細については、@azure/identity READMEを参照してください。
たとえば、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 は、Event Grid にイベントを送信するために使用できます。 次のように初期化できます。
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>"
);
EventGridReceiverClient は、Event Grid からイベントを受信するために使用できます。 次のように初期化できます。
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>",
"<subscriptionName>"
);
分散トレースとクラウド イベント
このライブラリは、@azure/core-tracingを使用した分散トレースをサポートしています。 分散トレースを使用する場合、このライブラリは、send 操作中にスパンを作成します。 さらに、クラウド イベント 1.0 スキーマを使用してイベントを送信する場合、SDK は、分散トレース拡張機能を使用して、分散トレース メタデータをイベントに追加します。
traceparent および tracestate 拡張プロパティの値は、イベントを送信する HTTP 要求の traceparent および tracestate ヘッダーに対応します。 イベントに既に traceparent 拡張プロパティがある場合、更新されません。
Kubernetes 上の Event Grid
このライブラリは、Azure Arc を使用して、Kubernetes でテストおよび検証されています。
例
Event Grid トピックにイベントを発行する
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/logger パッケージのドキュメントを参照してください。
次の手順
このライブラリの使用方法の詳細な例については、ディレクトリ サンプルを参照してください。
貢献
このライブラリに投稿する場合は、コードをビルドしてテストする方法の詳細については、投稿ガイド を参照してください。
関連プロジェクト
- Microsoft Azure SDK for Javascript の
Azure SDK for JavaScript