Bagikan melalui


Pustaka klien Azure Event Grid Namespaces untuk JavaScript - versi 1.0.0

azure Event Grid adalah layanan berbasis cloud yang menyediakan pengiriman peristiwa yang andal dalam skala besar.

Menggunakan pustaka klien untuk Mengirim peristiwa ke Namespace Event Grid

Tautan kunci:

Persiapan

Lingkungan yang saat ini didukung

Lihat kebijakan dukungan kami untuk detail selengkapnya.

Prasyarat

Jika Anda menggunakan Azure CLI, ganti <your-resource-group-name> dan <your-resource-name> dengan nama unik Anda sendiri:

Membuat Topik Event Grid

az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>

Membuat Domain Event Grid

az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>

Menginstal paket @azure/eventgrid-namespaces

Instal pustaka klien Azure Event Grid Namespaces untuk JavaScript dengan npm:

npm install @azure/eventgrid-namespaces

Membuat dan mengautentikasi klien Namespace

Untuk membuat objek klien untuk mengakses EVENT Grid Namespaces API, Anda memerlukan endpoint topik Event Grid dan credential. Klien Namespace Layanan Event Grid dapat menggunakan Kunci Akses.

Anda dapat menemukan titik akhir untuk topik Event Grid Anda baik di Portal Azure atau dengan menggunakan cuplikan Azure CLI di bawah ini:

az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"

Menggunakan Kunci Akses

Gunakan Portal Azure untuk menelusuri ke sumber daya Event Grid Anda dan mengambil Kunci Akses, atau gunakan cuplikan Azure CLI di bawah ini:

az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>

Setelah Anda memiliki kunci API dan titik akhir, Anda dapat menggunakan kelas AzureKeyCredential untuk mengautentikasi klien sebagai berikut:

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 menyediakan integrasi dengan Azure Active Directory (Azure AD) untuk autentikasi permintaan berbasis identitas. Dengan Azure AD, Anda dapat menggunakan kontrol akses berbasis peran (RBAC) untuk memberikan akses ke sumber daya Azure Event Grid Anda kepada pengguna, grup, atau aplikasi.

Untuk mengirim peristiwa ke topik atau domain dengan TokenCredential, identitas terautentikasi harus memiliki peran "Pengirim Data EventGrid" yang ditetapkan.

Dengan paket @azure/identity, Anda dapat mengotorisasi permintaan dengan mulus di lingkungan pengembangan dan produksi. Untuk mempelajari selengkapnya tentang Azure Active Directory, lihat @azure/identity README .

Misalnya, penggunaan dapat menggunakan DefaultAzureCredential untuk membuat klien yang akan mengautentikasi menggunakan 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>"
);

Konsep utama

Mengirim dan Menerima Peristiwa

EventGridSenderClient dapat digunakan untuk mengirim peristiwa ke Event Grid. Anda dapat menginisialisasinya sebagai:

const eventGridSenderClient = new EventGridSenderClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>"),
  "<topicName>"
);

EventGridReceiverClient dapat digunakan untuk menerima peristiwa dari Event Grid. Anda dapat menginisialisasinya sebagai:

const eventGridReceiverClient = new EventGridReceiverClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>"),
  "<topicName>",
  "<subscriptionName>"
);

Pelacakan Terdistribusi dan Peristiwa Cloud

Pustaka ini mendukung pelacakan terdistribusi menggunakan @azure/core-tracing. Saat menggunakan pelacakan terdistribusi, pustaka ini akan membuat rentang selama operasi send. Selain itu, saat mengirim peristiwa menggunakan skema Cloud Events 1.0, SDK akan menambahkan metadata pelacakan terdistribusi ke peristiwa menggunakan ekstensi Pelacakan Terdistribusi . Nilai untuk properti ekstensi traceparent dan tracestate sesuai dengan header traceparent dan tracestate dari permintaan HTTP yang mengirim peristiwa. Jika peristiwa sudah memiliki properti ekstensi traceparent, peristiwa tersebut tidak diperbarui.

Event Grid di Kubernetes

Pustaka ini telah diuji dan divalidasi pada Kubernetes menggunakan Azure Arc.

Contoh

Menerbitkan Peristiwa ke Topik 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);

Pemecahan masalah

Penebangan

Mengaktifkan pengelogan dapat membantu mengungkap informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL ke info. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:

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

setLogLevel("info");

Untuk instruksi lebih rinci tentang cara mengaktifkan log, Anda dapat melihat dokumen paket @azure/pencatat.

Langkah berikutnya

Silakan lihat sampel direktori untuk contoh terperinci tentang cara menggunakan pustaka ini.

Berkontribusi

Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.