JavaScript 用 Azure Event Grid 名前空間クライアント ライブラリ - バージョン 1.0.0
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