Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Service Bus , Microsoft'un sunduğu son derece güvenilir bir bulut mesajlaşma hizmetidir.
Uygulamanızdaki istemci kitaplığını @azure/service-bus kullanarak,
- Azure Service Bus Kuyruğuna veya Konuya ileti gönderme
- Azure Service Bus Kuyruğundan veya Aboneliğinden ileti alma
- Azure Service Bus ad alanında Kuyrukları/Konuları/Abonelikleri/Kuralları Oluşturun/Alın/Silin/Güncelleştirin/Listeleyin.
Sürüm 7 için @azure/service-bus kaynaklar:
Anahtar bağlantılar:
NOT: 1.1.10 veya daha düşük bir sürüm kullanıyorsanız ve bu paketin en son sürümüne geçiş yapmak istiyorsanız, Service Bus V1'den Service Bus V7'ye geçmek için lütfen geçiş kılavuzumuza bakın
Başlarken
Paketi yükle
npm kullanarak Azure Service Bus istemci kitaplığı için en son sürümü yükleyin.
npm install @azure/service-bus
Şu anda desteklenen ortamlar
Prerequisites
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.jsoncompilerOptions.allowSyntheticDefaultImports etkinleştirmeniz gerekir.
compilerOptions.esModuleInteropetkinleştirdiyseniz allowSyntheticDefaultImports varsayılan 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
Burada açıklananlara ek olarak, bu kitaplık, tarayıcılarda düzgün çalışabilmesi için aşağıdaki NodeJS çekirdek yerleşik modülleri için ek çoklu dolgulara da ihtiyaç duyar:
bufferospathprocess
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 ekleyin
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"),
+ },
},
Rollup ile Paketleme
Rollup paketleyici 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 ekleyin
+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"],
+ }),
]
};
Çoklu dolguları kullanma hakkında daha fazla bilgi için lütfen favori paketleyicinizin 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 desteklemez, bu nedenle onlar için çoklu dolgular sağlamanız gerekir. Daha fazla ayrıntı için lütfen Expo ile Messaging React Native örneğine bakın.
İstemcinin kimliğini doğrulama
Service Bus ile etkileşim, ServiceBusClient sınıfının bir örneğiyle başlar. Bir bağlantı dizesi veya Azure Active Directory kimlik bilgisi kullanarak Service Bus'ta kimlik doğrulaması yapabilirsiniz.
Bağlantı dizesi kullanma
Bu yöntem, bağlantı dizesini Service Bus örneğinize alır. Bağlantı dizesini Azure portalından alabilirsiniz.
import { ServiceBusClient } from "@azure/service-bus";
const serviceBusClient = new ServiceBusClient("<connectionString>");
Bu oluşturucu hakkında daha fazla bilgi API belgelerinde mevcuttur.
Azure Active Directory Kimlik Bilgilerini Kullanma
Azure Active Directory ile kimlik doğrulaması, Azure Kimlik kitaplığını kullanır.
Aşağıdaki örnekte, kitaplıktaki birçok kullanılabilir kimlik bilgisi sağlayıcısından biri olan @azure/identity kullanılır.
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
NOT: AAD'ye
TokenCredentialkarşı kendi arabirim uygulamanızı kullanıyorsanız, uygun belirteci almak için service-bus için "kapsamları" aşağıdaki gibi ayarlayın:
["https://servicebus.azure.net//user_impersonation"];
Bu oluşturucu hakkında daha fazla bilgi API belgelerinde mevcuttur
Kilit kavramlar
Bir ServiceBusClient'yi başlattıktan sonra, bir Service Bus Ad Alanı içinde bu kaynaklarla etkileşim kurabilirsiniz:
- Kuyruklar: Mesaj göndermeye ve almaya izin verir. Genellikle noktadan noktaya iletişim için kullanılır.
- Konular: Kuyrukların aksine, Konular yayımlama/abone olma senaryoları için daha uygundur. Bir konuya gönderilebilir, ancak kullanmak için paralel olarak birden çok olabilen bir abonelik gerektirir.
- Abonelikler: Bir konudan kullanma mekanizması. Her abonelik bağımsızdır ve konuya gönderilen her iletinin bir kopyasını alır. Kurallar ve Filtreler, belirli bir abonelik tarafından hangi iletilerin alınacağını uyarlamak için kullanılabilir.
Bu kaynaklar hakkında daha fazla bilgi için bkz: Azure Service Bus nedir?
Bu kaynaklarla etkileşim kurmak için aşağıdaki SDK kavramlarına aşina olmanız gerekir:
- Kullanılarak oluşturulan
ServiceBusSenderbirServiceBusClient.createSender()kuyruğa veya konuya ileti gönderin. - kullanılarak oluşturulan
ServiceBusReceiverbirServiceBusClient.createReceiver()kuyruktan veya abonelikten iletiler alın. - Oturumun etkinleştirildiği kuyruklardan veya aboneliklerden, veya
ServiceBusSessionReceiverkullanılarakServiceBusClient.acceptSession()oluşturulan iletileriServiceBusClient.acceptNextSession()alın.
Kuyruklar, Konular ve Aboneliklerin bu kitaplığı kullanmadan önce oluşturulması gerektiğini lütfen unutmayın.
Examples
Aşağıdaki bölümlerde, Azure Service Bus kullanan bazı yaygın görevleri kapsayan kod parçacıkları sağlanır
- İleti gönderme
- İleti alma
- Bir iletiyi karara bağlamak
- Teslim edilemeyen mektup kuyrukları
- Oturumlar'ı kullanarak ileti gönderme
- Oturumlardan ileti alma
- Mesaj oturumlarını listele
- Service Bus ad alanının kaynaklarını yönetme
- Ek örnekler
İleti gönderme
Bir ServiceBusClient sınıfın bir örneğini oluşturduktan sonra, mesaj ServiceBusSender için kullanabileceğiniz createSender yöntemini kullanarak bir tane alabilirsiniz.
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
const sender = serviceBusClient.createSender("my-queue");
const messages = [
{ body: "Albert Einstein" },
{ body: "Werner Heisenberg" },
{ body: "Marie Curie" },
{ body: "Steven Hawking" },
{ body: "Isaac Newton" },
{ body: "Niels Bohr" },
{ body: "Michael Faraday" },
{ body: "Galileo Galilei" },
{ body: "Johannes Kepler" },
{ body: "Nikolaus Kopernikus" },
];
// sending a single message
await sender.sendMessages(messages[0]);
// sending multiple messages in a single call
// this will fail if the messages cannot fit in a batch
await sender.sendMessages(messages);
// Sends multiple messages using one or more ServiceBusMessageBatch objects as required
let batch = await sender.createMessageBatch();
for (let i = 0; i < messages.length; i++) {
const message = messages[i];
if (!batch.tryAddMessage(message)) {
// Send the current batch as it is full and create a new one
await sender.sendMessages(batch);
batch = await sender.createMessageBatch();
if (!batch.tryAddMessage(messages[i])) {
throw new Error("Message too big to fit in a batch");
}
}
}
// Send the batch
await sender.sendMessages(batch);
Mesajlar al
Bir ServiceBusClient sınıfın örneğini oluşturduktan sonra, ServiceBusReceiver yöntemini kullanarak bir örnek alabilirsiniz.
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
const receiver = serviceBusClient.createReceiver("my-queue");
İki receiveModeadet mevcuttur.
- "peekLock" - peekLock modunda, alıcının kuyrukta belirtilen süre boyunca iletiyi kilitlemesi olur.
- "receiveAndDelete" - receiveAndDelete modunda, iletiler alındıkları anda Service Bus'tan silinir.
Seçeneklerde receiveMode sağlanmamışsa, varsayılan olarak "peekLock" moduna geçer. Ayrıca "peekLock" modunda alınan mesajları da kapatabilirsiniz .
Bu alıcıyı, mesaj almanın 3 yolundan biriyle kullanabilirsiniz:
Bir dizi ileti alma
Bir ileti dizisine çözümlenen bir söz döndüren receiveMessages işlevini kullanın.
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
const receiver = serviceBusClient.createReceiver("my-queue");
const myMessages = await receiver.receiveMessages(10);
Bir ileti işleyicisi kullanarak abone olun
İleti işleyicilerini ayarlamak ve ihtiyacınız olduğu sürece çalışmasını sağlamak için abone ol yöntemini kullanın.
İşiniz bittiğinde, daha fazla mesaj almayı durdurmak için arayın receiver.close() .
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
const receiver = serviceBusClient.createReceiver("my-queue");
const myMessageHandler = async (message) => {
// your code here
console.log(`message.body: ${message.body}`);
};
const myErrorHandler = async (args) => {
console.log(
`Error occurred with ${args.entityPath} within ${args.fullyQualifiedNamespace}: `,
args.error,
);
};
receiver.subscribe({
processMessage: myMessageHandler,
processError: myErrorHandler,
});
Zaman uyumsuz yineleyici kullanma
İletiler üzerinde zaman uyumsuz yineleyici almak için getMessageIterator'ı kullanın
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
const receiver = serviceBusClient.createReceiver("my-queue");
for await (const message of receiver.getMessageIterator()) {
// your code here
}
Bir iletiyi karara bağlamak
Bir mesaj aldığınızda, mesajı nasıl kapatmak istediğinize bağlı olarak , completeMessage()veya abandonMessage()deferMessage() alıcıyı arayabilirsinizdeadLetterMessage().
Daha fazla bilgi edinmek için lütfen Alınan Mesajların Yerleşimini okuyun
Teslim edilemeyen ileti kuyrukları
Teslim edilemeyen iletiler sırası bir alt kuyruktur. Her kuyruğun veya aboneliğin kendi teslim edilemeyen ileti kuyruğu vardır. Teslim edilemeyen iletiler kuyrukları, açıkça teslim edilemeyen iletiler ( aracılığıyla receiver.deadLetterMessage()) veya en fazla teslim sayısını aşan iletileri depolar.
Teslim edilemeyen iletiler alt kuyruğu için bir alıcı oluşturmak, bir abonelik veya kuyruk için bir alıcı oluşturmaya benzer:
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
// To receive from a queue's dead letter sub-queue
const deadLetterReceiverForQueue = serviceBusClient.createReceiver("queue", {
subQueueType: "deadLetter",
});
// To receive from a subscription's dead letter sub-queue
const deadLetterReceiverForSubscription = serviceBusClient.createReceiver("topic", "subscription", {
subQueueType: "deadLetter",
});
// Dead letter receivers work like any other receiver connected to a queue
// ex:
const messages = await deadLetterReceiverForQueue.receiveMessages(5);
for (const message of messages) {
console.log(`Dead lettered message: ${message.body}`);
}
Teslim edilemeyen mektup kuyruklarını daha ayrıntılı olarak gösteren tam örnekler:
- İletileri açıkça ölü harf alt kuyruğuna göndermek için receiver.deadLetterMessage() kullanma
- Teslim edilemeyen iletiler alt kuyruğundan ileti alma
Oturumlar'ı kullanarak ileti gönderme
Oturumları kullanmak için oturum özellikli bir Kuyruk veya Abonelik oluşturmanız gerekir. Portalda bu özelliğin nasıl yapılandırılacağı hakkında daha fazla bilgiyi burada bulabilirsiniz.
Bir oturuma ileti göndermek için, ServiceBusClient kullanarak bir gönderen oluşturmak için kullanın.
İletiyi gönderirken, iletinizin doğru oturuma ulaştığından sessionId emin olmak için iletideki özelliği ayarlayın.
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
const sender = serviceBusClient.createSender("my-session-queue");
await sender.sendMessages({
body: "my-message-body",
sessionId: "my-session",
});
Oturumların nasıl çalıştığı hakkında daha fazla bilgiye buradan ulaşabilirsiniz.
Oturumlardan ileti alma
Oturumları kullanmak için oturum özellikli bir Kuyruk veya Abonelik oluşturmanız gerekir. Portalda bu özelliğin nasıl yapılandırılacağı hakkında daha fazla bilgiyi burada bulabilirsiniz.
Oturum etkin olmayan Kuyruklar veya Aboneliklerden farklı olarak, herhangi bir zamanda yalnızca tek bir alıcı bir oturumdan okuyabilir. Bu, Service Bus tarafından işlenen bir oturumu kilitleyerek zorlanır. Kavramsal olarak, bu, modu kullanırken peekLock mesaj kilitlemenin nasıl çalıştığına benzer - bir mesaj (veya oturum) kilitlendiğinde, alıcınızın ona özel erişimi vardır.
Bir oturumu açmak ve kilitlemek için, bir ServiceBusClient oluşturmak üzere bir örnek kullanın.
Hangi oturumun açılacağını seçmenin iki yolu vardır:
Adlandırılmış bir oturumu kilitleyen bir
sessionIdöğesini belirtin.const receiver = await serviceBusClient.acceptSession("my-session-queue", "my-session");Oturum kimliği belirtmeyin. Bu durumda, Service Bus henüz kilitli olmayan bir sonraki kullanılabilir oturumu bulur.
const receiver = await serviceBusClient.acceptNextSession("my-session-queue");Oturumun adını adresindeki
sessionIdözellik aracılığıylaSessionReceiverbulabilirsiniz. Seçeneklerde receiveMode sağlanmamışsa, varsayılan olarak "peekLock" moduna geçer. Ayrıca "peekLock" modunda alınan mesajları da kapatabilirsiniz .
Alıcı oluşturulduktan sonra, mesajları almanın 3 yolu arasından seçim yapabilirsiniz:
Oturumların nasıl çalıştığı hakkında daha fazla bilgiye buradan ulaşabilirsiniz.
Mesaj oturumlarını listele
Kuyrukta veya abonelikte aktif mesaj veya oturum durumu olan oturumları bulmak için şunları kullanın listMessageSessions():
import { DefaultAzureCredential } from "@azure/identity";
import { ServiceBusClient } from "@azure/service-bus";
const fullyQualifiedNamespace = "<name-of-service-bus-namespace>.servicebus.windows.net";
const credential = new DefaultAzureCredential();
const serviceBusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
// List all sessions with active messages or session state in a queue
for await (const sessionId of serviceBusClient.listMessageSessions("my-session-queue")) {
console.log("Session ID:", sessionId);
}
// List sessions in a subscription
for await (const sessionId of serviceBusClient.listMessageSessions("my-topic", "my-subscription")) {
console.log("Session ID:", sessionId);
}
// List only sessions whose stored session state was set or updated in the last seven days
const sessionStateUpdatedAfter = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
for await (const sessionId of serviceBusClient.listMessageSessions("my-session-queue", {
sessionStateUpdatedAfter,
})) {
console.log("Recently updated session ID:", sessionId);
}
Service Bus ad alanının kaynaklarını yönetme
ServiceBusAdministrationClient varlıklar (kuyruklar, konular ve abonelikler) ve bir aboneliğin kuralları üzerinde CRUD işlemleriyle bir ad alanını yönetmenize olanak tanır.
- Bir hizmet veri yolu bağlantı dizesiyle ve aşağıdakine benzer
@azure/identityAAD kimlik bilgileriyleServiceBusClientkimlik doğrulamasını destekler.
Not: Service Bus henüz ad alanları için CORS kurallarının ayarlanmasını desteklememektedir, bu nedenle ServiceBusAdministrationClient web güvenliği devre dışı bırakılmadan tarayıcıda çalışmaz. Daha fazla bilgi için buraya bakın.
import { ServiceBusAdministrationClient } from "@azure/service-bus";
const queueName = "my-session-queue";
// Get the connection string from the portal
// OR
// use the token credential overload, provide the host name of your Service Bus instance and the AAD credentials from the @azure/identity library
const serviceBusAdministrationClient = new ServiceBusAdministrationClient("<connectionString>");
// Similarly, you can create topics and subscriptions as well.
const createQueueResponse = await serviceBusAdministrationClient.createQueue(queueName);
console.log("Created queue with name - ", createQueueResponse.name);
const queueRuntimeProperties =
await serviceBusAdministrationClient.getQueueRuntimeProperties(queueName);
console.log(`Number of messages in the queue = ${queueRuntimeProperties.totalMessageCount}`);
// Topic runtime properties additionally report the total number of SQL and correlation filters
// across all of the topic's subscriptions. These counts are served by the 2024-05 service API
// version and later; on an older version they are `undefined`.
const topicName = "my-topic";
const subscriptionName = "my-subscription";
await serviceBusAdministrationClient.createTopic(topicName);
// A new subscription carries a default rule with a SQL TrueFilter. Adding a correlation rule
// gives the topic one of each, so the counts below aggregate across the subscription's rules.
await serviceBusAdministrationClient.createSubscription(topicName, subscriptionName);
await serviceBusAdministrationClient.createRule(
topicName,
subscriptionName,
"my-correlation-rule",
{ correlationId: "my-correlation-id" },
);
const topicRuntimeProperties =
await serviceBusAdministrationClient.getTopicRuntimeProperties(topicName);
console.log(`SQL filter count = ${topicRuntimeProperties.sqlFilterCount}`);
console.log(`Correlation filter count = ${topicRuntimeProperties.correlationFilterCount}`);
await serviceBusAdministrationClient.deleteTopic(topicName);
await serviceBusAdministrationClient.deleteQueue(queueName);
- Referans için örnek - administrationClient.ts
Troubleshooting
İşte sorunları tanılamaya başlamak için bazı ilk adımlar. Daha fazla bilgi için lütfen Service Bus Sorun Giderme Kılavuzu'na bakın.
AMQP Bağımlılıkları
Service Bus kitaplığı, bağlantıları yönetmek, AMQP protokolü üzerinden ileti göndermek ve almak için rhea-promise kitaplığına bağlıdır.
Logging
Bu kitaplığı kullanırken hata ayıklama günlüklerini almak için aşağıdaki ortam değişkenini ayarlayabilirsiniz.
- Service Bus SDK'sından hata ayıklama günlüklerini alma
export DEBUG=azure*
- Service Bus SDK'sından ve protokol düzeyi kitaplığından hata ayıklama günlüklerini alma.
export DEBUG=azure*,rhea*
-
İleti dönüşümünü (çok fazla konsol/disk alanı tüketen) görüntülemekle ilgilenmiyorsanız, ortam değişkenini
DEBUGaşağıdaki gibi ayarlayabilirsiniz:
export DEBUG=azure*,rhea*,-rhea:raw,-rhea:message,-azure:core-amqp:datatransformer
- Yalnızca hatalarla ilgileniyorsanız, ortam değişkenini
DEBUGaşağıdaki gibi ayarlayabilirsiniz:
export DEBUG=azure:service-bus:error,azure:core-amqp:error,rhea-promise:error,rhea:events,rhea:frames,rhea:io,rhea:flow
Dosyaya kaydetme
- Ortam değişkenini
DEBUGyukarıda gösterildiği gibi ayarlayın - Test komut dosyanızı aşağıdaki gibi çalıştırın:
- Test betiğinizdeki günlük deyimleri
out.logve sdk'dan günlük deyimleridebug.loggidin.node your-test-script.js > out.log 2>debug.log - Test betiğinizden ve sdk'dan alınan günlük deyimleri, stderr'ı stdout'a (&1) yeniden yönlendirerek
out.logaynı dosyaya gider ve ardından stdout dosyasını bir dosyaya yönlendirir:node your-test-script.js >out.log 2>&1 - Test betiğinizden ve sdk'dan günlük deyimleri
out.logaynı dosyaya gider.node your-test-script.js &> out.log
Sonraki Adımlar
Service Bus Kuyruklarına, Konulara ve Aboneliklere ileti göndermek ve almak için bu kitaplığın nasıl kullanılacağına ilişkin ayrıntılı örnekler için lütfen örnekler dizinine göz atın.
Contributing
Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.
Azure SDK for JavaScript