JavaScript 用 Azure Event Grid 名前空間クライアント ライブラリ - バージョン 1.0.0

Azure Event Grid は、大規模な信頼性の高いイベント配信を提供するクラウドベースのサービスです。

クライアント ライブラリを使用して Event Grid 名前空間にイベントを送信する

主要なリンク:

はじめ

現在サポートされている環境

詳細については、サポート ポリシーの を参照してください。

前提 条件

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 の

インプレッション