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

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

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

主要リンク:

はじめに

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

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

前提条件

Azure CLI を使用する場合は、 と <your-resource-name> を独自の一意の名前に置き換えます<your-resource-group-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 パッケージのインストール

を使用して JavaScript 用の Azure Event Grid 名前空間クライアント ライブラリを npmインストールします。

npm install @azure/eventgrid-namespaces

名前空間クライアントを作成して認証する

Event Grid 名前空間 API にアクセスするためのクライアント オブジェクトを作成するには、Event Grid トピックの と credentialが必要endpointです。 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 データ送信者" ロールが割り当てられている必要があります。

パッケージを @azure/identity 使用すると、開発環境と運用環境の両方で要求をシームレスに承認できます。 Azure Active Directory の詳細については、README に関するページを@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 は、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 作成します。 さらに、Cloud Events 1.0 スキーマを使用してイベントを送信する場合、SDK は分散トレース拡張機能を使用してイベントに 分散トレース メタデータを追加します。 および tracestate 拡張プロパティのtraceparent値は、イベントを送信する traceparent HTTP 要求の ヘッダーと 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_LEVELinfo に設定します。 または、@azure/loggersetLogLevel を呼び出して、実行時にログ記録を有効にすることもできます。

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

setLogLevel("info");

ログを有効にする方法の詳細な手順については、 @azure/logger パッケージのドキュメントを参照してください。

次の手順

このライブラリの使用方法の詳細な例については、 samples ディレクトリを参照してください。

共同作成

このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。

インプレッション数