Aracılığıyla paylaş


JavaScript için Azure Event Hubs istemci kitaplığı - sürüm 5.12.0

Azure Event Hubs saniyede milyonlarca olay alıp bunları birden çok tüketiciye aktarabilen yüksek oranda ölçeklenebilir bir yayımlama-abone olma hizmetidir. Bu, bağlı cihazlarınız ve uygulamalarınız tarafından üretilen çok büyük miktarda veriyi işlemenize ve analiz etmenizi sağlar. Azure Event Hubs hakkında daha fazla bilgi edinmek isterseniz şunları gözden geçirmek isteyebilirsiniz: Event Hubs nedir?

Azure Event Hubs istemci kitaplığı, Node.js uygulamanızda olayları gönderip almanıza olanak tanır.

Önemli bağlantılar:

NOT: Sürüm 2.1.0 veya üzerini kullanıyorsanız ve bu paketin en son sürümüne geçmek istiyorsanız lütfen EventHubs V2'den EventHubs V5'e geçiş kılavuzumuza bakın

v2 örnekleri ve belgelere buradan ulaşabilirsiniz:

v2.1.0 | için kaynak kodv2.1.0 (npm) | paketiv2.1.0 örnekleri

Başlarken

Paketi yükleme

npm kullanarak Azure Event Hubs istemci kitaplığını yükleme

npm install @azure/event-hubs

Şu anda desteklenen ortamlar

Daha fazla ayrıntı için destek ilkemize bakın.

Önkoşullar

TypeScript'i yapılandırma

TypeScript kullanıcılarının Düğüm türü tanımlarının yüklü olması gerekir:

npm install @types/node

ayrıca tsconfig.json etkinleştirmeniz compilerOptions.allowSyntheticDefaultImports gerekir. seçeneğini etkinleştirdiyseniz compilerOptions.esModuleInteropvarsayılan allowSyntheticDefaultImports olarak etkin olduğunu unutmayın. Daha fazla bilgi için bkz. TypeScript'in derleyici seçenekleri el kitabı .

JavaScript Paketi

Bu istemci kitaplığını tarayıcıda kullanmak için önce bir paketleyici kullanmanız gerekir. Bunun nasıl yapılacağının ayrıntıları için lütfen paketleme belgelerimize bakın.

Burada açıklananlara ek olarak, bu kitaplığın tarayıcılarda düzgün çalışabilmesi için aşağıdaki NodeJS çekirdek yerleşik modülleri için ek polifill'lere de ihtiyacı vardır:

  • buffer
  • os
  • path
  • process

Webpack ile Paketleme

Webpack v5 kullanıyorsanız aşağıdaki geliştirme bağımlılıklarını yükleyebilirsiniz

  • npm install --save-dev os-browserify path-browserify

ardından aşağıdakileri webpack.config.js

 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"),
+    },
   },

Toplama ile Paketleme

Rollup bundler kullanıyorsanız aşağıdaki geliştirme bağımlılıklarını yükleyin

  • npm install --save-dev @rollup/plugin-commonjs @rollup/plugin-inject @rollup/plugin-node-resolve

Ardından aşağıdakileri rollup.config.js

+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"],
+    }),
  ]
};

Polifill kullanma hakkında daha fazla bilgi için lütfen sık kullandığınız paketleyicinin belgelerine bakın.

React Native Desteği

Tarayıcılara benzer şekilde, React Native bu SDK kitaplığı tarafından kullanılan bazı JavaScript API'lerini desteklemediğinden, bunlar için polifill sağlamanız gerekir. Diğer ayrıntılar için lütfen Expo ile Mesajlaşma React Native örneğine bakın.

İstemcinin kimliğini doğrulama

Event Hubs ile etkileşim , EventHubConsumerClient sınıfının bir örneğiyle veya EventHubProducerClient sınıfının bir örneğiyle başlar. Aşağıda gösterildiği gibi bu sınıfların örneğini oluşturmanın farklı yollarını destekleyen oluşturucu aşırı yüklemeleri vardır:

Event Hubs ad alanı için bağlantı dizesi kullanma

Oluşturucu aşırı yüklemelerinden biri form Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name;SharedAccessKey=my-SA-key; ve varlık adının bir bağlantı dizesi Olay Hub'ı örneğinize götürür. Bir tüketici grubu oluşturabilir ve bağlantı dizesi yanı sıra varlık adını Azure portal alabilirsiniz.

const { EventHubProducerClient, EventHubConsumerClient } = require("@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"
);

Event Hub'da ilke için bağlantı dizesi kullanma

Başka bir oluşturucu aşırı yüklemesi, doğrudan Olay Hub'ı örneğinde (Event Hubs ad alanında değil) tanımladığınız paylaşılan erişim ilkesine karşılık gelen bağlantı dizesi alır. Bu bağlantı dizesi biçiminde Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name;SharedAccessKey=my-SA-key;EntityPath=my-event-hub-nameolacaktır. bağlantı dizesi biçimindeki temel fark, önceki oluşturucu aşırı yüklemesinden farkıdır;EntityPath=my-event-hub-name.

const { EventHubProducerClient, EventHubConsumerClient } = require("@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"
);

Event Hubs ad alanını ve Azure Kimliğini kullanma

Bu oluşturucu aşırı yüklemesi, Event Hub örneğinizin konak adını ve varlık adını ve TokenCredential arabirimini uygulayan kimlik bilgilerini alır. Bu, Azure Active Directory sorumlusu kullanarak kimlik doğrulaması yapmanıza olanak tanır. arabiriminin TokenCredential uygulamaları @azure/kimlik paketinde kullanılabilir. Ana bilgisayar adı biçimindedir <yournamespace>.servicebus.windows.net. Azure Active Directory kullanırken sorumlunuza Event Hubs'a erişim izni veren Azure Event Hubs Veri Sahibi rolü gibi bir rol atanmalıdır. Event Hubs ile Azure Active Directory yetkilendirmesini kullanma hakkında daha fazla bilgi için lütfen ilişkili belgelere bakın.

const { EventHubProducerClient, EventHubConsumerClient } = require("@azure/event-hubs");

const { DefaultAzureCredential } = require("@azure/identity");
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
);

Önemli kavramlar

  • Olay Hub'ı üreticisi, ekli cihaz çözümü, mobil cihaz uygulaması, konsolda veya başka bir cihazda çalışan oyun başlığı, bazı istemci veya sunucu tabanlı iş çözümü veya bir web sitesinin parçası olarak telemetri verileri, tanılama bilgileri, kullanım günlükleri veya diğer günlük verilerinin kaynağıdır.

  • Olay Hub'ı tüketicisi bu tür bilgileri Olay Hub'ından alır ve işler. İşleme toplama, karmaşık hesaplama ve filtreleme içerebilir. İşleme, bilgilerin ham veya dönüştürülmüş bir şekilde dağıtılmasını veya depolanmasını da içerebilir. Event Hub tüketicileri genellikle Azure Stream Analytics, Apache Spark veya Apache Storm gibi yerleşik analiz özelliklerine sahip sağlam ve yüksek ölçekli platform altyapısı parçalarıdır.

  • Bölüm, Olay Hub'ında tutulan sıralı bir olay dizisidir. Bölümler, olay tüketicilerinin gerektirdiği paralellikle ilişkili bir veri düzenleme aracıdır. Azure Event Hubs, her tüketicinin ileti akışının yalnızca belirli bir alt kümesini veya bölümünü okuduğu bölümlenmiş bir tüketici deseni üzerinden ileti akışı sağlar. Yeni olaylar geldikçe dizinin sonuna eklenir. Bölüm sayısı bir Olay Hub'ı oluşturulduğunda belirtilir ve değiştirilemez.

  • Tüketici grubu, Olay Hub'ının tamamının görünümüdür. Tüketici grupları, her biri olay akışının ayrı bir görünümüne sahip olmak ve akışı kendi hızlarında ve kendi konumlarından bağımsız olarak okumak için birden çok kullanan uygulama sağlar. Tüketici grubu başına bir bölümde en fazla 5 eşzamanlı okuyucu olabilir; ancak belirli bir bölüm ve tüketici grubu eşleştirmesi için yalnızca bir etkin tüketici olması önerilir. Her etkin okuyucu, bölümünden tüm olayları alır; Aynı bölümde birden çok okuyucu varsa, yinelenen olaylar alırlar.

Daha fazla kavram ve daha ayrıntılı tartışma için bkz. Event Hubs Özellikleri

Yeniden denemeler ile ilgili yönergeler

VEEventHubProducerClient, SDK'nın EventHubConsumerClient geçici hataları nasıl işlediğini ayarlamanıza olanak sağlayan öğesini ayarlayabileceğiniz retryOptions yeri kabul options eder. Geçici hatalara örnek olarak geçici ağ veya hizmet sorunları verilebilir.

Olayları kullanırken yeniden denemeler

SDK olayları alırken geçici bir hatayla (ör. geçici bir ağ sorunu) karşılaşılırsa, içine geçirilen EventHubConsumerClientyeniden deneme seçeneklerine göre olayları almayı yeniden dener. Yeniden deneme sayısı üst sınırı tükenirse processError işlev çağrılır.

Ağ bağlantısı sorunu gibi geçici sorunlar hakkında ne kadar hızlı bilgi sahibi olduğunuzu denetlemek için yeniden deneme ayarlarını kullanabilirsiniz. Örneğin, bir ağ sorunu olduğunda hemen bilmeniz gerekiyorsa ve retryDelayInMsdeğerlerini maxRetries düşürebilirsiniz.

İşlev yürütüldükten processError sonra, hata yeniden denenebilir olduğu sürece istemci bölümden olayları almaya devam eder. Aksi takdirde, istemci kullanıcı tarafından sağlanan processClose işlevi çağırır. Bu işlev, aboneliği durdurduğunuzda veya istemci, yük dengeleme kapsamında uygulamanızın başka bir örneği tarafından alınması nedeniyle geçerli bölümden olayları okumayı durdurduğunda da çağrılır.

İşlev, processClose gerekirse denetim noktalarını güncelleştirme fırsatı sağlar. yürüttkten processClosesonra, istemci (veya yük dengeleme durumunda, uygulamanızın başka bir örneğinden gelen bir istemci), aynı bölüm için son güncelleştirilen denetim noktasından okuma olaylarını sürdürmek için kullanıcı tarafından sağlanan processInitialize işlevi çağırır.

Olayları okumayı denemeyi durdurmak istiyorsanız, yöntemi tarafından subscribe döndürülen üzerinde subscription öğesini çağırmanız close() gerekir.

Örnekler

Aşağıdaki bölümlerde, Azure Event Hubs kullanarak bazı yaygın görevleri kapsayan kod parçacıkları sağlanır

Olay Hub'larını inceleme

Birçok Olay Hub'ı işlemi belirli bir bölüm kapsamında gerçekleşir. Bölümler Olay Hub'ına ait olduğundan, bölümlerin adları oluşturma sırasında atanır. Hangi bölümlerin kullanılabilir olduğunu anlamak için, kullanılabilir iki istemciden birini kullanarak Olay Hub'ını sorgularsınız: EventHubProducerClient veya EventHubConsumerClient

Aşağıdaki örnekte bir EventHubProducerClientkullanıyoruz.

const { EventHubProducerClient } = require("@azure/event-hubs");

async function main() {
  const client = new EventHubProducerClient("connectionString", "eventHubName");

  const partitionIds = await client.getPartitionIds();

  await client.close();
}

main();

Olayları Olay Hub'ına yayımlama

Olayları yayımlamak için bir EventHubProducerClientoluşturmanız gerekir. Aşağıdaki örnekte istemci oluşturmanın bir yolu gösterilse de istemcinin örneğini oluşturmanın diğer yollarını öğrenmek için İstemcinin kimliğini doğrulama bölümüne bakın.

Olayları belirli bir bölüme yayımlayabilir veya Event Hubs hizmetinin hangi bölüm olaylarının yayımlanması gerektiğine karar vermesine izin vekleyebilirsiniz. Olayların yayımlanmasının yüksek oranda kullanılabilir olması gerektiğinde veya olay verilerinin bölümler arasında eşit dağıtılması gerektiğinde otomatik yönlendirmeyi kullanmanız önerilir. Aşağıdaki örnekte otomatik yönlendirmeden yararlanacağız.

  • createBatch kullanarak nesne EventDataBatch İçerik Oluşturucu
  • tryAdd yöntemini kullanarak toplu işleme olay ekleyin. En yüksek toplu iş boyutu sınırına ulaşılana kadar veya beğendiğiniz olay sayısını (hangisi önce gelirse) eklemeyi bitirene kadar bunu yapabilirsiniz. Bu yöntem, maksimum toplu iş boyutuna ulaşılması nedeniyle toplu işleme daha fazla olay eklenmeyeceğini belirtmek için döndürülebilir false .
  • sendBatch yöntemini kullanarak olay toplu işlemini gönderin.

Aşağıdaki örnekte, Azure Event Hubs 10 olay göndermeye çalışıyoruz.

const { EventHubProducerClient } = require("@azure/event-hubs");

async function main() {
  const producerClient = new EventHubProducerClient("connectionString", "eventHubName");

  const eventDataBatch = await producerClient.createBatch();
  let numberOfEventsToSend = 10;

  while (numberOfEventsToSend > 0) {
    let wasAdded = eventDataBatch.tryAdd({ body: "my-event-body" });
    if (!wasAdded) {
      break;
    }
    numberOfEventsToSend--;
  }

  await producerClient.sendBatch(eventDataBatch);
  await producerClient.close();
}

main();

olayları Azure Event Hubs gönderme işlemini denetlemek için farklı aşamalarda geçirebileceğiniz seçenekler vardır.

  • Oluşturucu, EventHubProducerClient yeniden deneme sayısı gibi seçenekleri belirtmek için kullanabileceğiniz isteğe bağlı türde EventHubClientOptions bir parametre alır.
  • yöntemi, createBatch oluşturulan toplu iş tarafından desteklenen en büyük toplu iş boyutunu speicify için kullanabileceğiniz isteğe bağlı bir tür CreateBatchOptions parametresi alır.
  • yöntemi, sendBatch geçerli işlemi iptal etmek için belirtmek abortSignal için kullanabileceğiniz isteğe bağlı türde SendBatchOptions bir parametre alır.
  • Belirli bir bölüme göndermek istemeniz durumunda yönteminin sendBatch aşırı yüklemesi, olayları göndermek için bölümün kimliğini geçirmenize olanak tanır. Yukarıdaki Olay Hub'ını İncele örneği, kullanılabilir bölüm kimliklerinin nasıl getirildiğini gösterir.

Not: Azure Stream Analytics ile çalışırken, gönderilen olayın gövdesi de bir JSON nesnesi olmalıdır. Örnek: body: { "message": "Hello World" }

Olay Hub'ından olayları kullanma

Olay Hub'ı örneğinden olayları kullanmak için, hangi tüketici grubunu hedeflemek istediğinizi de bilmeniz gerekir. Bunu bildiğinizde bir EventHubConsumerClient oluşturmaya hazırsınızdır. Aşağıdaki örnekte istemci oluşturmanın bir yolu gösterilse de istemcinin örneğini oluşturmanın diğer yollarını öğrenmek için İstemcinin kimliğini doğrulama bölümüne bakın.

subscribe İstemcideki yöntemi, oluşturucuyla birlikte olayları kullanmanın çeşitli yollarını kapsayabilen aşırı yüklemelere sahiptir:

yöntemi, subscribe maxBatchSize (bekleyebileceğiniz olay sayısı) ve maxWaitTimeInSeconds (maxBatchSize olaylarının gelmesini bekleme süresi) gibi seçenekleri belirtmek için kullanabileceğiniz isteğe bağlı türde SubscriptionOptions bir parametre alır.

Olayları tek bir işlemde kullanma

öğesinin EventHubConsumerClientbir örneğini oluşturarak başlayın ve ardından olayları kullanmaya başlamak için yöntemini çağırın subscribe() .

yöntemi, subscribe Azure Event Hubs alınan olayları işlemek için geri çağırmalar alır. Olayları almayı durdurmak için yöntemi tarafından subscribe() döndürülen nesnede çağrısı close() yapabilirsiniz.

const { EventHubConsumerClient, earliestEventPosition } = require("@azure/event-hubs");

async function main() {
  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);
}

main();

Birden çok işlemde yük dengelemesi olan olayları kullanma

Azure Event Hubs saniyede milyonlarca olayla başa çıkabiliyor. İşleme uygulamanızı ölçeklendirmek için uygulamanızın birden çok örneğini çalıştırabilir ve yükü kendi aralarında dengelemesini sağlayabilirsiniz.

öğesini alan CheckpointStoreoluşturucu aşırı yüklemelerinden birini kullanarak öğesinin EventHubConsumerClient bir örneğini oluşturarak başlayın ve ardından olayları kullanmaya başlamak için yöntemini çağırınsubscribe(). Denetim noktası deposu, bir tüketici grubundaki abonelerin uygulamanızın birden çok örneği arasındaki işlemeyi koordine etmelerini sağlar.

Bu örnekte, Azure Blob Depolama kullanarak gerekli okuma/yazmaları dayanıklı bir depoya uygulayan paketinden @azure/eventhubs-checkpointstore-blob öğesini kullanacağızBlobCheckpointStore.

yöntemi, subscribe Azure Event Hubs alınan olayları işlemek için geri çağırmalar alır. Olayları almayı durdurmak için yöntemi tarafından subscribe() döndürülen nesnede çağrısı close() yapabilirsiniz.

const { EventHubConsumerClient } = require("@azure/event-hubs");
const { ContainerClient } = require("@azure/storage-blob");
const { BlobCheckpointStore } = require("@azure/eventhubs-checkpointstore-blob");

const storageAccountConnectionString = "storage-account-connection-string";
const containerName = "container-name";
const eventHubConnectionString = "eventhub-connection-string";
const consumerGroup = "my-consumer-group";
const eventHubName = "eventHubName";

async function main() {
  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`);
}

main();

Daha fazla bilgi edinmek için lütfen bkz. Uygulamanızın birden çok örneğinde bölüm yükünü dengeleme .

Tek bir bölümden olayları kullanma

öğesinin EventHubConsumerClientbir örneğini oluşturarak başlayın ve ardından olayları kullanmaya başlamak için yöntemini çağırın subscribe() . Hedeflemek istediğiniz bölümün kimliğini yalnızca bu bölümden subscribe() kullanılacak yönteme geçirin.

Aşağıdaki örnekte ilk bölümü kullanıyoruz.

yöntemi, subscribe Azure Event Hubs alınan olayları işlemek için geri çağırmalar alır. Olayları almayı durdurmak için yöntemi tarafından subscribe() döndürülen nesnede çağrısı close() yapabilirsiniz.

const { EventHubConsumerClient, earliestEventPosition } = require("@azure/event-hubs");

async function main() {
  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);
}

main();

IotHub ile çalışmak için EventHubConsumerClient kullanma

IotHub ile çalışmak için de kullanabilirsiniz EventHubConsumerClient . Bu, bağlı EventHub'dan IotHub telemetri verilerini almak için kullanışlıdır. İlişkili bağlantı dizesi gönderme talepleri olmaz, bu nedenle olay göndermek mümkün değildir.

  • bağlantı dizesi Event Hub uyumlu bir uç nokta için olması gerektiğini unutmayın (örneğin, "Endpoint=sb://my-iothub-namespace-[uid].servicebus.windows.net/; SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key; EntityPath=my-iot-hub-name")
const { EventHubConsumerClient } = require("@azure/event-hubs");

async function main() {
  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();
}

main();

Sorun giderme

AMQP Bağımlılıkları

Event Hubs kitaplığı bağlantıları yönetmek, AMQP protokolü üzerinden olay göndermek ve almak için rhea-promise kitaplığına bağlıdır.

Günlüğe Kaydetme

Günlüğe kaydetmeyi AZURE_LOG_LEVELstderretkinleştirmek için ortam değişkenini olarak ayarlayabilirsiniz:

export AZURE_LOG_LEVEL=verbose

Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için @azure/günlükçü paketi belgelerine bakabilirsiniz.

Alternatif olarak, bu kitaplığı kullanırken günlükleri almak için ortam değişkenini ayarlayabilirsiniz DEBUG . Ayrıca bağımlılıklardan rhea-promiserhea günlükleri de yaymak istiyorsanız bu yararlı olabilir.

Not: AZURE_LOG_LEVEL ayarlanırsa DEBUG'a göre önceliklidir. AZURE_LOG_LEVEL belirtirken veya setLogLevel'i çağırırken DEBUG aracılığıyla hiçbir azure kitaplık belirtmeyin.

  • Event Hubs SDK'sından yalnızca bilgi düzeyi hata ayıklama günlüklerini alma.
export DEBUG=azure:*:info
  • Event Hubs SDK'sından ve protokol düzeyi kitaplığından hata ayıklama günlüklerini alma.
export DEBUG=azure*,rhea*
  • Ham olay verilerini (çok fazla miktarda konsol/disk alanı tüketen) görüntülemek istemiyorsanız ortam değişkenini DEBUG aşağıdaki gibi ayarlayabilirsiniz:
export DEBUG=azure*,rhea*,-rhea:raw,-rhea:message
  • Yalnızca hatalarla ve SDK uyarılarıyla ilgileniyorsanız ortam değişkenini DEBUG aşağıdaki gibi ayarlayabilirsiniz:
export DEBUG=azure:*:(error|warning),rhea-promise:error,rhea:events,rhea:frames,rhea:io,rhea:flow

Sonraki adımlar

Daha fazla örnek kod

Event Hubs'a/Event Hubs'a olay gönderip almak için bu kitaplığın nasıl kullanılacağına ilişkin ayrıntılı örnekler için lütfen samples dizinine göz atın.

Katkıda bulunma

Bu kitaplığa katkıda bulunmak isterseniz, kodu derleme ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzunu okuyun.

İzlenimler