Bagikan melalui


Pustaka klien Azure Event Hubs untuk JavaScript - versi 6.0.3

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:

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

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:

  • buffer
  • os
  • path
  • process

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

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 EventDataBatch objek 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 false untuk 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 EventHubProducerClient mengambil parameter opsional jenis yang EventHubClientOptions dapat Anda gunakan untuk menentukan opsi seperti jumlah percobaan ulang.
  • Metode ini createBatch mengambil parameter opsional jenis yang CreateBatchOptions dapat Anda gunakan untuk mengkhususkan ukuran batch maksimum yang didukung oleh batch yang dibuat.
  • Metode ini sendBatch mengambil parameter opsional jenis yang SendBatchOptions dapat Anda gunakan untuk menentukan abortSignal untuk membatalkan operasi saat ini.
  • Jika Anda ingin mengirim ke partisi tertentu, kelebihan metode memungkinkan sendBatch Anda 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:

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 DEBUG sebagai berikut:
export DEBUG=azure*,rhea*,-rhea:raw,-rhea:message
  • Jika Anda hanya tertarik pada kesalahan dan peringatan SDK, maka Anda dapat mengatur variabel lingkungan DEBUG sebagai 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.