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 Hubs adalah layanan publikasi-langganan yang sangat dapat diskalakan yang dapat menyerap jutaan peristiwa per detik dan mengalirkannya ke beberapa konsumen. Ini memungkinkan Anda memproses dan menganalisis sejumlah besar data yang dihasilkan oleh perangkat dan aplikasi yang terhubung. Jika Anda ingin mengetahui lebih lanjut tentang Azure Event Hubs, Anda mungkin ingin meninjau: Apa itu Event Hubs?
Pustaka klien Azure Event Hubs memungkinkan Anda mengirim dan menerima peristiwa di aplikasi Node.js Anda.
Tautan utama:
- Kode sumber
- Paket (npm)
- Dokumentasi Referensi API
- dokumentasi produk
- Sampel
CATATAN: Jika Anda menggunakan versi 2.1.0 atau lebih rendah dan ingin bermigrasi ke versi terbaru paket ini, silakan lihat panduan migrasi kami untuk berpindah dari EventHubs V2 ke EventHubs V5
Sampel untuk v2 dan dokumentasi masih tersedia di sini:
Kode sumber untuk v2.1.0 | Paket untuk v2.1.0 (npm) | Sampel untuk v2.1.0
Memulai Langkah Pertama
Pasang paketnya
Menginstal pustaka klien Azure Event Hubs menggunakan npm
npm install @azure/event-hubs
Lingkungan yang didukung saat ini
- Versi LTS dari Node.js
- Versi terbaru Safari, Chrome, Edge, dan Firefox.
Lihat kebijakan dukungan kami untuk detail selengkapnya.
Prasyarat
Mengonfigurasi TypeScript
Pengguna TypeScript harus menginstal definisi jenis Node:
npm install @types/node
Anda juga perlu mengaktifkan compilerOptions.allowSyntheticDefaultImports di tsconfig.jsonAnda . Perhatikan bahwa jika Anda telah mengaktifkan compilerOptions.esModuleInterop, allowSyntheticDefaultImports diaktifkan secara default. Lihat buku pegangan opsi kompiler TypeScript untuk informasi selengkapnya.
Bundel JavaScript
Untuk menggunakan pustaka klien ini di browser, pertama-tama Anda perlu menggunakan bunder. Untuk detail tentang cara melakukan ini, silakan lihat dokumentasi bundling kami.
Selain apa yang dijelaskan di sana, pustaka ini juga membutuhkan polyfill tambahan untuk modul bawaan inti NodeJS berikut agar dapat bekerja dengan baik di browser:
bufferospathprocess
Bundling dengan Webpack
Jika Anda menggunakan Webpack v5, Anda dapat menginstal dependensi dev berikut
npm install --save-dev os-browserify path-browserify
Kemudian tambahkan yang berikut ini ke dalam webpack.config.js Anda
const path = require("path");
+const webpack = require("webpack");
module.exports = {
entry: "./src/index.ts",
@@ -12,8 +13,21 @@ module.exports = {
},
],
},
+ plugins: [
+ new webpack.ProvidePlugin({
+ process: "process/browser",
+ }),
+ new webpack.ProvidePlugin({
+ Buffer: ["buffer", "Buffer"],
+ }),
+ ],
resolve: {
extensions: [".ts", ".js"],
+ fallback: {
+ buffer: require.resolve("buffer/"),
+ os: require.resolve("os-browserify"),
+ path: require.resolve("path-browserify"),
+ },
},
Bundling dengan Rollup
Jika Anda menggunakan Bundler Rollup, instal dependensi pengembang berikut
npm install --save-dev @rollup/plugin-commonjs @rollup/plugin-inject @rollup/plugin-node-resolve
Kemudian sertakan yang berikut ini dalam rollup.config.js Anda
+import nodeResolve from "@rollup/plugin-node-resolve";
+import cjs from "@rollup/plugin-commonjs";
+import shim from "rollup-plugin-shim";
+import inject from "@rollup/plugin-inject";
export default {
// other configs
plugins: [
+ shim({
+ fs: `export default {}`,
+ net: `export default {}`,
+ tls: `export default {}`,
+ path: `export default {}`,
+ dns: `export function resolve() { }`,
+ }),
+ nodeResolve({
+ mainFields: ["module", "browser"],
+ preferBuiltins: false,
+ }),
+ cjs(),
+ inject({
+ modules: {
+ Buffer: ["buffer", "Buffer"],
+ process: "process",
+ },
+ exclude: ["./**/package.json"],
+ }),
]
};
Silakan lihat dokumentasi bundler favorit Anda untuk informasi lebih lanjut tentang penggunaan polyfill.
Dukungan React Native
Mirip dengan browser, React Native tidak mendukung beberapa API JavaScript yang digunakan oleh pustaka SDK ini sehingga Anda perlu menyediakan polyfill untuk mereka. Silakan lihat sampel Messaging React Native dengan Expo untuk detail lebih lanjut.
Mengautentikasi klien
Interaksi dengan Event Hubs dimulai dengan instans kelas EventHubConsumerClient atau instans kelas EventHubProducerClient . Ada kelebihan konstruktor untuk mendukung berbagai cara membuat instance kelas ini seperti yang ditunjukkan di bawah ini:
Gunakan string koneksi untuk namespace Event Hubs
Salah satu kelebihan beban konstruktor mengambil string koneksi formulir Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name;SharedAccessKey=my-SA-key; dan nama entitas ke instans Event Hub Anda. Anda dapat membuat grup konsumen dan mendapatkan string koneksi serta nama entitas dari portal Microsoft Azure.
import { EventHubProducerClient, EventHubConsumerClient } from "@azure/event-hubs";
const producerClient = new EventHubProducerClient("my-connection-string", "my-event-hub");
const consumerClient = new EventHubConsumerClient(
"my-consumer-group",
"my-connection-string",
"my-event-hub",
);
Gunakan string koneksi untuk kebijakan di Event Hub
Kelebihan konstruktor lain mengambil string koneksi yang sesuai dengan kebijakan akses bersama yang telah Anda tentukan langsung pada instans Event Hub (dan bukan namespace Event Hubs).
String koneksi ini akan berbentuk Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name;SharedAccessKey=my-SA-key;EntityPath=my-event-hub-name.
Perbedaan utama dalam format string koneksi dari kelebihan beban konstruktor sebelumnya adalah .;EntityPath=my-event-hub-name
import { EventHubProducerClient, EventHubConsumerClient } from "@azure/event-hubs";
const producerClient = new EventHubProducerClient("my-connection-string-with-entity-path");
const consumerClient = new EventHubConsumerClient(
"my-consumer-group",
"my-connection-string-with-entity-path",
);
Menggunakan namespace Event Hubs dan Azure Identity
Kelebihan beban konstruktor ini mengambil nama host dan nama entitas instans Event Hub Anda dan kredensial yang mengimplementasikan antarmuka TokenCredential. Ini memungkinkan Anda untuk mengautentikasi menggunakan perwakilan Azure Active Directory. Ada implementasi antarmuka yang TokenCredential tersedia dalam paket @azure/identitas . Nama host adalah format <yournamespace>.servicebus.windows.net. Saat menggunakan Azure Active Directory, perwakilan Anda harus diberi peran yang memungkinkan akses ke Event Hubs, seperti peran Pemilik Data Azure Event Hubs. Untuk informasi selengkapnya tentang menggunakan otorisasi Azure Active Directory dengan Event Hubs, silakan lihat dokumentasi terkait.
import { DefaultAzureCredential } from "@azure/identity";
import { EventHubProducerClient, EventHubConsumerClient } from "@azure/event-hubs";
const credential = new DefaultAzureCredential();
const producerClient = new EventHubProducerClient("my-host-name", "my-event-hub", credential);
const consumerClient = new EventHubConsumerClient(
"my-consumer-group",
"my-host-name",
"my-event-hub",
credential,
);
Konsep utama
Produser Event Hub adalah sumber data telemetri, informasi diagnostik, log penggunaan, atau data log lainnya, sebagai bagian dari solusi perangkat tertanam, aplikasi perangkat seluler, judul game yang berjalan di konsol atau perangkat lain, beberapa solusi bisnis berbasis klien atau server, atau situs web.
Konsumen Event Hub mengambil informasi tersebut dari Event Hub dan memprosesnya. Pemrosesan mungkin melibatkan agregasi, komputasi kompleks dan pemfilteran. Pemrosesan juga dapat melibatkan distribusi atau penyimpanan informasi secara mentah atau diubah. Konsumen Event Hub seringkali merupakan bagian infrastruktur platform yang kuat dan berskala tinggi dengan kemampuan analitik bawaan, seperti Azure Stream Analytics, Apache Spark, atau Apache Storm.
Partisi adalah urutan peristiwa yang diurutkan yang disimpan di Event Hub. Partisi adalah sarana organisasi data yang terkait dengan paralelisme yang diperlukan oleh konsumen peristiwa. Azure Event Hubs menyediakan streaming pesan melalui pola konsumen yang dipartisi di mana setiap konsumen hanya membaca subset tertentu, atau partisi, dari aliran pesan. Saat peristiwa yang lebih baru tiba, mereka ditambahkan ke akhir urutan ini. Jumlah partisi ditentukan pada saat Event Hub dibuat dan tidak dapat diubah.
Grup konsumen adalah tampilan seluruh Event Hub. Grup konsumen memungkinkan beberapa aplikasi yang mengonsumsi untuk masing-masing memiliki tampilan terpisah dari aliran peristiwa, dan untuk membaca aliran secara independen dengan kecepatan mereka sendiri dan dari posisi mereka sendiri. Mungkin ada paling banyak 5 pembaca bersamaan pada partisi per kelompok konsumen; namun, disarankan bahwa hanya ada satu konsumen aktif untuk partisi dan pasangan grup konsumen tertentu. Setiap pembaca aktif menerima semua peristiwa dari partisinya; Jika ada beberapa pembaca pada partisi yang sama, maka mereka akan menerima peristiwa duplikat.
Untuk konsep selengkapnya dan diskusi yang lebih mendalam, lihat: Fitur Event Hubs
Panduan seputar percobaan ulang
Dan EventHubConsumerClientEventHubProducerClient terima options di mana Anda dapat mengatur yang retryOptions memungkinkan Anda menyetel cara SDK menangani kesalahan sementara.
Contoh kesalahan sementara termasuk masalah jaringan atau layanan sementara.
Mencoba ulang saat menggunakan peristiwa
Jika error sementara (misalnya masalah jaringan sementara) ditemui saat SDK menerima peristiwa, SDK akan mencoba kembali menerima peristiwa berdasarkan opsi coba lagi yang diteruskan ke .EventHubConsumerClient
Jika upaya coba ulang maksimum habis, fungsi akan processError dipanggil.
Anda dapat menggunakan pengaturan coba lagi untuk mengontrol seberapa cepat Anda diberi tahu tentang masalah sementara seperti masalah koneksi jaringan.
Misalnya, jika Anda perlu segera mengetahui ketika ada masalah jaringan, Anda dapat menurunkan nilai untuk maxRetries dan retryDelayInMs.
Setelah menjalankan processError fungsi, klien terus menerima peristiwa dari partisi selama kesalahan tersebut dapat dicoba ulang. Jika tidak, klien memanggil fungsi yang disediakan processClose pengguna.
Fungsi ini juga dipanggil saat Anda menghentikan langganan atau ketika klien berhenti membaca peristiwa dari partisi saat ini karena diambil oleh instans lain dari aplikasi Anda sebagai bagian dari penyeimbangan beban.
Fungsi ini processClose memberikan kesempatan untuk memperbarui pos pemeriksaan jika diperlukan.
Setelah mengeksekusi processClose, klien (atau dalam kasus penyeimbangan beban, klien dari instans lain dari aplikasi Anda) akan memanggil fungsi yang disediakan processInitialize pengguna untuk melanjutkan peristiwa pembacaan dari pos pemeriksaan yang terakhir diperbarui untuk partisi yang sama.
Jika Anda ingin berhenti mencoba membaca peristiwa, Anda harus memanggil close() yang subscription dikembalikan dengan metode tersebut subscribe .
Examples
Bagian berikut menyediakan cuplikan kode yang mencakup beberapa tugas umum menggunakan Azure Event Hubs
- Memeriksa Pusat Peristiwa
- Menerbitkan peristiwa ke Event Hub
- Menggunakan peristiwa dari Pusat Aktivitas
- Menggunakan EventHubConsumerClient untuk bekerja dengan IotHub
Memeriksa Pusat Peristiwa
Banyak operasi Event Hub berlangsung dalam cakupan partisi tertentu.
Karena partisi dimiliki oleh Event Hub, namanya ditetapkan pada saat pembuatan.
Untuk memahami partisi apa yang tersedia, Anda mengkueri Pusat Peristiwa menggunakan salah satu dari dua klien yang tersedia: EventHubProducerClient atau EventHubConsumerClient
Dalam contoh di bawah ini, kita menggunakan .EventHubProducerClient
import { EventHubProducerClient } from "@azure/event-hubs";
const client = new EventHubProducerClient("connectionString", "eventHubName");
const partitionIds = await client.getPartitionIds();
await client.close();
Menerbitkan peristiwa ke Event Hub
Untuk memublikasikan peristiwa, Anda harus membuat .EventHubProducerClient Sementara contoh di bawah ini menunjukkan satu cara untuk membuat klien, lihat bagian Mengautentikasi klien untuk mempelajari cara lain untuk membuat instance klien.
Anda dapat menerbitkan peristiwa ke partisi tertentu, atau mengizinkan layanan Event Hubs untuk memutuskan peristiwa partisi mana yang harus dipublikasikan. Disarankan untuk menggunakan perutean otomatis ketika penerbitan peristiwa harus sangat tersedia atau ketika data peristiwa harus didistribusikan secara merata di antara partisi. Dalam contoh di bawah ini, kita akan memanfaatkan perutean otomatis.
- Membuat
EventDataBatchobjek menggunakan createBatch - Tambahkan peristiwa ke batch menggunakan metode tryAdd. Anda dapat melakukan ini hingga batas ukuran batch maksimum tercapai atau sampai Anda selesai menambahkan jumlah acara yang Anda sukai, mana yang lebih dulu. Metode ini akan kembali
falseuntuk menunjukkan bahwa tidak ada lagi peristiwa yang dapat ditambahkan ke batch karena ukuran batch maksimum tercapai. - Kirim batch peristiwa menggunakan metode sendBatch .
Dalam contoh di bawah ini, kami mencoba mengirim 10 peristiwa ke Azure Event Hubs.
import { EventHubProducerClient } from "@azure/event-hubs";
const producerClient = new EventHubProducerClient("connectionString", "eventHubName");
const eventDataBatch = await producerClient.createBatch();
let numberOfEventsToSend = 10;
while (numberOfEventsToSend > 0) {
const wasAdded = eventDataBatch.tryAdd({ body: "my-event-body" });
if (!wasAdded) {
break;
}
numberOfEventsToSend--;
}
await producerClient.sendBatch(eventDataBatch);
await producerClient.close();
Ada opsi yang dapat Anda lewati pada tahap yang berbeda untuk mengontrol proses pengiriman peristiwa ke Azure Event Hubs.
- Konstruktor
EventHubProducerClientmengambil parameter opsional jenis yangEventHubClientOptionsdapat Anda gunakan untuk menentukan opsi seperti jumlah percobaan ulang. - Metode ini
createBatchmengambil parameter opsional jenis yangCreateBatchOptionsdapat Anda gunakan untuk mengkhususkan ukuran batch maksimum yang didukung oleh batch yang dibuat. - Metode ini
sendBatchmengambil parameter opsional jenis yangSendBatchOptionsdapat Anda gunakan untuk menentukanabortSignaluntuk membatalkan operasi saat ini. - Jika Anda ingin mengirim ke partisi tertentu, kelebihan metode memungkinkan
sendBatchAnda meneruskan id partisi untuk mengirim peristiwa. Contoh Periksa Pusat Peristiwa di atas menunjukkan cara mengambil id partisi yang tersedia.
Catatan: Saat bekerja dengan Azure Stream Analytics, isi peristiwa yang dikirim juga harus berupa objek JSON.
Misalnya: body: { "message": "Hello World" }
Menggunakan peristiwa dari Pusat Aktivitas
Untuk menggunakan peristiwa dari instans Event Hub, Anda juga perlu mengetahui grup konsumen mana yang ingin Anda targetkan. Setelah Anda mengetahui hal ini, Anda siap untuk membuat EventHubConsumerClient. Sementara contoh di bawah ini menunjukkan satu cara untuk membuat klien, lihat bagian Mengautentikasi klien untuk mempelajari cara lain untuk membuat instance klien.
Metode subscribe pada klien memiliki kelebihan beban yang, dikombinasikan dengan konstruktor, dapat melayani beberapa cara untuk mengonsumsi peristiwa:
- Menggunakan peristiwa dalam satu proses
- Gunakan peristiwa dengan beban yang diseimbangkan di beberapa proses
- Mengkonsumsi peristiwa dari satu partisi
Metode ini subscribe mengambil parameter opsional jenis yang SubscriptionOptions dapat Anda gunakan untuk menentukan opsi seperti maxBatchSize (jumlah peristiwa yang harus ditunggu) dan maxWaitTimeInSeconds (jumlah waktu untuk menunggu peristiwa maxBatchSize tiba).
Menggunakan peristiwa dalam satu proses
Mulailah dengan membuat instance EventHubConsumerClient, lalu panggil subscribe() metode di dalamnya untuk mulai menggunakan peristiwa.
Metode ini subscribe mengambil callback untuk memproses peristiwa saat diterima dari Azure Event Hubs.
Untuk berhenti menerima peristiwa, Anda dapat memanggil close() objek yang dikembalikan oleh subscribe() metode.
import { EventHubConsumerClient, earliestEventPosition } from "@azure/event-hubs";
const client = new EventHubConsumerClient("my-consumer-group", "connectionString", "eventHubName");
// In this sample, we use the position of earliest available event to start from
// Other common options to configure would be `maxBatchSize` and `maxWaitTimeInSeconds`
const subscriptionOptions = {
startPosition: earliestEventPosition,
};
const subscription = client.subscribe(
{
processEvents: async (events, context) => {
// event processing code goes here
},
processError: async (err, context) => {
// error reporting/handling code here
},
},
subscriptionOptions,
);
// Wait for a few seconds to receive events before closing
setTimeout(async () => {
await subscription.close();
await client.close();
console.log(`Exiting sample`);
}, 3 * 1000);
Gunakan peristiwa dengan beban yang diseimbangkan di beberapa proses
Azure Event Hubs mampu menangani jutaan peristiwa per detik. Untuk menskalakan aplikasi pemrosesan, Anda dapat menjalankan beberapa instans aplikasi Anda dan membuatnya menyeimbangkan beban di antara mereka sendiri.
Mulailah dengan membuat instance menggunakan EventHubConsumerClient salah satu kelebihan beban konstruktor yang mengambil , CheckpointStorelalu panggil subscribe() metode untuk mulai mengonsumsi peristiwa. Penyimpanan pos pemeriksaan akan memungkinkan pelanggan dalam grup konsumen untuk mengoordinasikan pemrosesan antara beberapa instans aplikasi Anda.
Dalam contoh ini, kita akan menggunakan BlobCheckpointStore paket from yang @azure/eventhubs-checkpointstore-blob mengimplementasikan baca/tulis yang diperlukan ke penyimpanan yang tahan lama dengan menggunakan Azure Blob Storage.
Metode ini subscribe mengambil callback untuk memproses peristiwa saat diterima dari Azure Event Hubs.
Untuk berhenti menerima peristiwa, Anda dapat memanggil close() objek yang dikembalikan oleh subscribe() metode.
import { ContainerClient } from "@azure/storage-blob";
import { BlobCheckpointStore } from "@azure/eventhubs-checkpointstore-blob";
import { EventHubConsumerClient } from "@azure/event-hubs";
const storageAccountConnectionString = "storage-account-connection-string";
const containerName = "container-name";
const eventHubConnectionString = "eventhub-connection-string";
const consumerGroup = "my-consumer-group";
const eventHubName = "eventHubName";
const blobContainerClient = new ContainerClient(storageAccountConnectionString, containerName);
if (!(await blobContainerClient.exists())) {
await blobContainerClient.create();
}
const checkpointStore = new BlobCheckpointStore(blobContainerClient);
const consumerClient = new EventHubConsumerClient(
consumerGroup,
eventHubConnectionString,
eventHubName,
checkpointStore,
);
const subscription = consumerClient.subscribe({
processEvents: async (events, context) => {
// event processing code goes here
if (events.length === 0) {
// If the wait time expires (configured via options in maxWaitTimeInSeconds) Event Hubs
// will pass you an empty array.
return;
}
// Checkpointing will allow your service to pick up from
// where it left off when restarting.
//
// You'll want to balance how often you checkpoint with the
// performance of your underlying checkpoint store.
await context.updateCheckpoint(events[events.length - 1]);
},
processError: async (err, context) => {
// handle any errors that occur during the course of
// this subscription
console.log(`Errors in subscription to partition ${context.partitionId}: ${err}`);
},
});
// Wait for a few seconds to receive events before closing
await new Promise((resolve) => setTimeout(resolve, 10 * 1000));
await subscription.close();
await consumerClient.close();
console.log(`Exiting sample`);
Silakan lihat Menyeimbangkan beban partisi di beberapa instans aplikasi Anda untuk mempelajari selengkapnya.
Mengkonsumsi peristiwa dari satu partisi
Mulailah dengan membuat instance EventHubConsumerClient, lalu panggil subscribe() metode di dalamnya untuk mulai menggunakan peristiwa. Teruskan id partisi yang ingin Anda targetkan ke metode yang subscribe() akan dikonsumsi hanya dari partisi tersebut.
Dalam contoh di bawah ini, kita menggunakan partisi pertama.
Metode ini subscribe mengambil callback untuk memproses peristiwa saat diterima dari Azure Event Hubs.
Untuk berhenti menerima peristiwa, Anda dapat memanggil close() objek yang dikembalikan oleh subscribe() metode.
import { EventHubConsumerClient, earliestEventPosition } from "@azure/event-hubs";
const client = new EventHubConsumerClient("my-consumer-group", "connectionString", "eventHubName");
const partitionIds = await client.getPartitionIds();
// In this sample, we use the position of earliest available event to start from
// Other common options to configure would be `maxBatchSize` and `maxWaitTimeInSeconds`
const subscriptionOptions = {
startPosition: earliestEventPosition,
};
const subscription = client.subscribe(
partitionIds[0],
{
processEvents: async (events, context) => {
// event processing code goes here
},
processError: async (err, context) => {
// error reporting/handling code here
},
},
subscriptionOptions,
);
// Wait for a few seconds to receive events before closing
setTimeout(async () => {
await subscription.close();
await client.close();
console.log(`Exiting sample`);
}, 3 * 1000);
Menggunakan EventHubConsumerClient untuk bekerja dengan IotHub
Anda juga dapat menggunakan EventHubConsumerClient untuk bekerja dengan IotHub. Ini berguna untuk menerima data telemetri IotHub dari EventHub yang ditautkan.
String koneksi terkait tidak akan memiliki klaim kirim, sehingga peristiwa pengiriman tidak dimungkinkan.
- Harap perhatikan bahwa string koneksi harus untuk titik akhir yang kompatibel dengan Event Hub (misalnya "Endpoint=sb://my-iothub-namespace-[uid].servicebus.windows.net/; SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key; EntityPath=my-iot-hub-name")
import { EventHubConsumerClient } from "@azure/event-hubs";
const client = new EventHubConsumerClient(
"my-consumer-group",
"Endpoint=sb://my-iothub-namespace-[uid].servicebus.windows.net/;SharedAccessKeyName=my-SA-name;SharedAccessKey=my-SA-key;EntityPath=my-iot-hub-name",
);
await client.getEventHubProperties();
// retrieve partitionIds from client.getEventHubProperties() or client.getPartitionIds()
const partitionId = "0";
await client.getPartitionProperties(partitionId);
await client.close();
Troubleshooting
Dependensi AMQP
Pustaka Event Hubs bergantung pada pustaka rhea-promise untuk mengelola koneksi, pengiriman, dan penerimaan peristiwa melalui protokol AMQP .
Penebangan kayu
Anda dapat mengatur AZURE_LOG_LEVEL variabel lingkungan untuk mengaktifkan pengelogan ke stderr:
export AZURE_LOG_LEVEL=verbose
Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Untuk instruksi lebih rinci tentang cara mengaktifkan log, Anda dapat melihat dokumen paket @azure/logger.
Anda juga dapat mengatur variabel lingkungan DEBUG untuk mendapatkan log saat menggunakan pustaka ini.
Ini dapat berguna jika Anda juga ingin memancarkan log dari dependensi rhea-promise dan rhea juga.
Catatan: AZURE_LOG_LEVEL, jika diatur, lebih diutamakan daripada DEBUG.
Jangan tentukan pustaka azure apa pun melalui DEBUG saat juga menentukan AZURE_LOG_LEVEL atau memanggil setLogLevel.
- Hanya mendapatkan log debug tingkat info dari SDK Event Hubs.
export DEBUG=azure:*:info
- Mendapatkan log debug dari SDK Event Hubs dan pustaka tingkat protokol.
export DEBUG=azure*,rhea*
- Jika Anda tidak tertarik untuk melihat data peristiwa mentah (yang menggunakan sejumlah besar ruang konsol/disk) maka Anda dapat mengatur variabel lingkungan
DEBUGsebagai berikut:
export DEBUG=azure*,rhea*,-rhea:raw,-rhea:message
- Jika Anda hanya tertarik pada kesalahan dan peringatan SDK, maka Anda dapat mengatur variabel lingkungan
DEBUGsebagai berikut:
export DEBUG=azure:*:(error|warning),rhea-promise:error,rhea:events,rhea:frames,rhea:io,rhea:flow
Langkah selanjutnya
Kode sampel lainnya
Silakan lihat direktori sampel untuk contoh terperinci tentang cara menggunakan pustaka ini untuk mengirim dan menerima peristiwa ke/dari Event Hubs.
Contributing
Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.
Azure SDK for JavaScript