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
- Node.jsLTS sürümleri
- Safari, Chrome, Edge ve Firefox'un en son sürümleri.
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.esModuleInterop
varsayı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-name
olacaktı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 EventHubConsumerClient
yeniden 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 retryDelayInMs
değ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 processClose
sonra, 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
- Olayları Olay Hub'ına yayımlama
- Olay Hub'ından olayları kullanma
- IotHub ile çalışmak için EventHubConsumerClient kullanma
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 EventHubProducerClient
kullanı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 EventHubProducerClient
oluş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ürdeEventHubClientOptions
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ürCreateBatchOptions
parametresi alır. - yöntemi,
sendBatch
geçerli işlemi iptal etmek için belirtmekabortSignal
için kullanabileceğiniz isteğe bağlı türdeSendBatchOptions
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:
- Olayları tek bir işlemde kullanma
- Birden çok işlemde yük dengelemesi olan olayları kullanma
- Tek bir bölümden olayları kullanma
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 EventHubConsumerClient
bir ö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 CheckpointStore
oluş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 EventHubConsumerClient
bir ö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_LEVEL
stderr
etkinleş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-promise
rhea
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.
Azure SDK for JavaScript
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin