Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
- versi LTS Node.js
- Versi terbaru Safari, Chrome, Edge, dan Firefox.
Lihat kebijakan dukungan kami untuk detail selengkapnya.
Prasyarat
- Langganan Azure .
- Topik atau Domain Event Grid yang ada. Jika Anda perlu membuat sumber daya, Anda dapat menggunakan Portal Microsoft Azure atau Azure CLI.
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.
Proyek terkait
Azure SDK for JavaScript