Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento rychlý start obsahuje podrobné pokyny pro jednoduchý scénář odesílání zpráv do fronty služby Service Bus a jejich příjem. V tomto rychlém startu dokončíte následující úlohy:
Pomocí webu Azure Portal vytvoříme obor názvů služby Service Bus.
Pomocí webu Azure Portal vytvoříme frontu služby Service Bus.
Napište JavaScriptovou aplikaci pro použití balíčku @azure/service-bus k:
- Odešlete do fronty sadu zpráv.
- Tyto zprávy obdržíte z fronty.
Předem připravené ukázky JavaScriptu a TypeScriptu pro Azure Service Bus najdete v úložišti Azure SDK pro JavaScript na GitHubu.
Pokud s službou teprve začínáte, podívejte se na přehled služby Service Bus , než začnete.
Požadavky
Předplatné Azure. K dokončení tohoto rychlého startu potřebujete účet Azure. Můžete si aktivovat měsíční kredity Azure pro předplatitele sady Visual Studio nebo si zaregistrovat bezplatný účet.
Pokud chcete použít tento rychlý start s vlastním účtem Azure:
- Nainstalujte Azure CLI, které poskytuje ověřování bez hesla pro váš vývojářský počítač.
- Přihlaste se pomocí svého účtu Azure na příkazovém řádku pomocí
az login
příkazu . - Stejný účet použijte, když do prostředku přidáte příslušnou roli dat.
- Spusťte kód ve stejném okně příkazového řádku.
- Poznamenejte si název fronty pro obor názvů služby Service Bus. Potřebujete to v kódu.
Poznámka:
Tento kurz funguje s ukázkami, které můžete kopírovat a spouštět pomocí Nodejs. Pokyny k vytvoření Node.js aplikace najdete v tématu Vytvoření a nasazení Node.js aplikace na web Azure nebo Node.js cloudové služby pomocí Windows PowerShellu.
Vytvoření oboru názvů na webu Azure Portal
Pokud chcete začít používat entity zasílání zpráv Service Bus v Azure, vytvořte obor názvů s názvem, který je jedinečný v rámci Azure. Obor názvů poskytuje kontejner oborů pro prostředky služby Service Bus, jako jsou fronty a témata, ve vaší aplikaci.
Vytvoření oboru názvů:
Přihlaste se k portálu Azure.
V levém horním rohu vyberte kontextovou nabídku a přejděte na stránku Všechny služby.
Na levém navigačním panelu vyberte Integrace.
Posuňte se dolů ke službám zasílání zpráv>Service Bus a vyberte Vytvořit.
Na kartě Základy na stránce Vytvořit obor názvů postupujte podle těchto kroků:
V části Předplatné zvolte předplatné Azure, ve kterém chcete vytvořit obor názvů.
Pro skupinu prostředků zvolte existující skupinu prostředků nebo vytvořte novou.
Zadejte název oboru názvů, který splňuje následující konvence pojmenování.
- Název musí být jedinečný v rámci Azure. Systém okamžitě kontroluje, jestli je název dostupný.
- Délka názvu je nejméně 6 a maximálně 50 znaků.
- Název může obsahovat pouze písmena, číslice, pomlčky
-
. - Název musí začínat písmenem a končit písmenem nebo číslem.
- Název nekončí
-sb
nebo-mgmt
.
V části Umístění zvolte oblast pro hostování vašeho oboru názvů.
V části Cenová úroveň vyberte cenovou úroveň (Basic, Standard nebo Premium) pro obor názvů. Pro účely tohoto rychlého startu vyberte Standard.
Pokud vyberete úroveň Premium , můžete pro obor názvů povolit geografickou replikaci . Funkce geografické replikace zajišťuje, aby se metadata a data oboru názvů průběžně replikovaly z primární oblasti do jedné nebo více sekundárních oblastí.
Důležité
Pokud chcete použít témata a předplatná, zvolte Standard nebo Premium. Témata a předplatná se nepodporují v cenové úrovni Basic.
Pokud jste vybrali cenovou úroveň Premium , zadejte počet jednotek zasílání zpráv. Úroveň Premium poskytuje izolaci prostředků na úrovni procesoru a paměti, aby každá úloha běžela izolovaně. Kontejner prostředků se nazývá jednotka zasílání zpráv. Obor názvů premium má alespoň jednu jednotku zasílání zpráv. Pro každý obor názvů služby Service Bus Premium můžete vybrat 1, 2, 4, 8 nebo 16 jednotek zasílání zpráv. Další informace najdete v tématu Úroveň zasílání zpráv služby Service Bus úrovně Premium.
Vyberte Zkontrolovat a vytvořit v dolní části stránky.
Na stránce Zkontrolovat a vytvořit zkontrolujte nastavení a vyberte Vytvořit.
Po úspěšném nasazení prostředku vyberte na stránce nasazení Přejít k prostředku.
Zobrazí se domovská stránka vašeho oboru názvů služby Service Bus.
Vytvoření fronty na webu Azure Portal
Na stránce Obor názvů služby Service Bus rozbalte entity v navigační nabídce vlevo a vyberte Fronty.
Na stránce Fronty na panelu nástrojů vyberte + Fronta.
Zadejte název fronty. U ostatních hodnot ponechte výchozí hodnoty.
Vyberte Vytvořit.
Ověření aplikace v Azure
Tento článek ukazuje dva způsoby připojení ke službě Azure Service Bus: bez hesla a připojovací řetězec.
První možnost ukazuje, jak se pomocí objektu zabezpečení v Microsoft Entra ID a řízení přístupu na základě role (RBAC) připojit k oboru názvů služby Service Bus. Nemusíte si dělat starosti s pevně zakódovaným připojovacím řetězcem v kódu, v konfiguračním souboru nebo v zabezpečeném úložišti, jako je Azure Key Vault.
Druhá možnost ukazuje, jak se pomocí připojovací řetězec připojit k oboru názvů služby Service Bus. Pokud s Azure začínáte, možná zjistíte, že připojovací řetězec možnost je jednodušší postupovat. Doporučujeme používat možnost bez hesla v reálných aplikacích a produkčních prostředích. Další informace najdete v tématu Ověřování a autorizace služby Service Bus. Další informace o ověřování bez hesla najdete v tématu Ověřování aplikací .NET.
Přiřazení rolí uživateli Microsoft Entra
Při místním vývoji se ujistěte, že uživatelský účet, který se připojuje ke službě Azure Service Bus, má správná oprávnění. K odesílání a příjmu zpráv potřebujete roli Vlastník dat služby Azure Service Bus . K přiřazení této role potřebujete roli Správce uživatelských přístupů nebo jinou roli, která tuto Microsoft.Authorization/roleAssignments/write
akci zahrnuje.
Role Azure RBAC můžete uživateli přiřadit pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu. Další informace o dostupných oborech pro přiřazení rolí najdete v tématu Vysvětlení rozsahu pro Azure RBAC.
Následující příklad přiřadí roli k vašemu uživatelskému Azure Service Bus Data Owner
účtu, který poskytuje úplný přístup k prostředkům služby Azure Service Bus. V reálném scénáři postupujte podle principu nejnižšího oprávnění a udělte uživatelům pouze minimální oprávnění potřebná pro bezpečnější produkční prostředí.
Předdefinované role Azure pro Azure Service Bus
Pro Službu Azure Service Bus je správa oborů názvů a všech souvisejících prostředků prostřednictvím webu Azure Portal a rozhraní API pro správu prostředků Azure už chráněná pomocí modelu Azure RBAC. Azure poskytuje následující předdefinované role Azure pro autorizaci přístupu k oboru názvů služby Service Bus:
- Vlastník dat služby Azure Service Bus: Umožňuje přístup k datům k oboru názvů služby Service Bus a jeho entitám, včetně front, témat, odběrů a filtrů. Člen této role může odesílat a přijímat zprávy z front nebo témat nebo odběrů.
-
Odesílatel dat služby Azure Service Bus: Pomocí této role můžete udělit
send
přístup k oboru názvů služby Service Bus a jeho entitám. -
Příjemce dat služby Azure Service Bus: Pomocí této role můžete udělit
receive
přístup k oboru názvů služby Service Bus a jeho entitám.
Pokud chcete vytvořit vlastní roli, přečtěte si téma Práva potřebná pro operace služby Service Bus.
Přidání uživatele Microsoft Entra do role vlastníka služby Azure Service Bus
Přidejte své uživatelské jméno Microsoft Entra do role Vlastník dat služby Azure Service Bus na úrovni oboru názvů služby Service Bus. Tato konfigurace umožňuje aplikaci, která běží v kontextu uživatelského účtu, odesílat zprávy do fronty nebo tématu. Může přijímat zprávy z fronty nebo z předplatného tématu.
Důležité
Ve většině případů trvá přiřazení role v Azure minutu nebo dvě. Ve výjimečných případech může trvat až osm minut. Pokud při prvním spuštění kódu dojde k chybám ověřování, chvíli počkejte a zkuste to znovu.
Pokud nemáte na webu Azure Portal otevřenou stránku Obor názvů služby Service Bus, najděte obor názvů služby Service Bus pomocí hlavního vyhledávacího panelu nebo levé navigace.
Na stránce Přehled vyberte v nabídce vlevo řízení přístupu (IAM ).
Na stránce Řízení přístupu (IAM) vyberte kartu Přiřazení rolí.
V horní nabídce vyberte + Přidat a pak přidejte přiřazení role.
Pomocí vyhledávacího pole vyfiltrujte výsledky podle požadované role. V tomto příkladu vyhledejte
Azure Service Bus Data Owner
a vyberte odpovídající výsledek. Pak zvolte Další.V části Přiřadit přístup vyberte Uživatel, skupina nebo instanční objekt a pak zvolte + Vybrat členy.
V dialogovém okně vyhledejte své uživatelské jméno Microsoft Entra (obvykle vaše user@domain e-mailová adresa) a pak v dolní části dialogového okna zvolte Vybrat .
Vyberte Zkontrolovat a přiřadit přejděte na poslední stránku a pak proces dokončete opětovnou kontrolou a přiřazením .
Instalace balíčku pomocí Node Package Manageru (NPM)
Pokud chcete nainstalovat požadované balíčky npm pro Service Bus, otevřete okno příkazového řádku, které má
npm
v cestě, a změňte adresář na složku, do které chcete mít ukázky.Nainstalujte následující balíčky:
npm install @azure/service-bus @azure/identity
Zasílání zpráv do fronty
Následující ukázkový kód ukazuje, jak odeslat zprávu do fronty.
Přihlaste se pomocí příkazu Azure CLI az login
na vašem místním počítači, aby bylo v tomto kódu umožněno ověřování bez hesla.
Otevřete textový editor, například Visual Studio Code.
Vytvořte volaný
send.js
soubor a vložte do něj následující kód. Tento kód odešle jména vědců jako zprávy do vaší fronty.Důležité
Přihlašovací údaje bez hesla jsou poskytovány pomocí DefaultAzureCredential.
const { ServiceBusClient } = require("@azure/service-bus"); const { DefaultAzureCredential } = require("@azure/identity"); // Replace `<SERVICE-BUS-NAMESPACE>` with your namespace const fullyQualifiedNamespace = "<SERVICE-BUS-NAMESPACE>.servicebus.windows.net"; // Passwordless credential const credential = new DefaultAzureCredential(); // name of the queue const queueName = "<QUEUE NAME>" 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" } ]; async function main() { // create a Service Bus client using the passwordless authentication to the Service Bus namespace const sbClient = new ServiceBusClient(fullyQualifiedNamespace, credential); // createSender() can also be used to create a sender for a topic. const sender = sbClient.createSender(queueName); try { // Tries to send all messages in a single batch. // Will fail if the messages cannot fit in a batch. // await sender.sendMessages(messages); // create a batch object let batch = await sender.createMessageBatch(); for (let i = 0; i < messages.length; i++) { // for each message in the array // try to add the message to the batch if (!batch.tryAddMessage(messages[i])) { // if it fails to add the message to the current batch // send the current batch as it is full await sender.sendMessages(batch); // then, create a new batch batch = await sender.createMessageBatch(); // now, add the message failed to be added to the previous batch to this batch if (!batch.tryAddMessage(messages[i])) { // if it still can't be added to the batch, the message is probably too big to fit in a batch throw new Error("Message too big to fit in a batch"); } } } // Send the last created batch of messages to the queue await sender.sendMessages(batch); console.log(`Sent a batch of messages to the queue: ${queueName}`); // Close the sender await sender.close(); } finally { await sbClient.close(); } } // call the main function main().catch((err) => { console.log("Error occurred: ", err); process.exit(1); });
Nahraďte
<SERVICE-BUS-NAMESPACE>
oborem názvů služby Service Bus.Nahraďte
<QUEUE NAME>
názvem fronty.Ke spuštění kódu v tomto souboru použijte tento příkaz na příkazovém řádku:
node send.js
Měli byste vidět následující výstup.
Sent a batch of messages to the queue: myqueue
Příjem zpráv z fronty
Přihlaste se pomocí příkazu Azure CLI az login
na vašem místním počítači, aby bylo v tomto kódu umožněno ověřování bez hesla.
Otevřete textový editor, například Visual Studio Code.
Vytvořte volaný
receive.js
soubor a vložte do něj následující kód.const { delay, ServiceBusClient, ServiceBusMessage } = require("@azure/service-bus"); const { DefaultAzureCredential } = require("@azure/identity"); // Replace `<SERVICE-BUS-NAMESPACE>` with your namespace const fullyQualifiedNamespace = "<SERVICE-BUS-NAMESPACE>.servicebus.windows.net"; // Passwordless credential const credential = new DefaultAzureCredential(); // name of the queue const queueName = "<QUEUE NAME>" async function main() { // create a Service Bus client using the passwordless authentication to the Service Bus namespace const sbClient = new ServiceBusClient(fullyQualifiedNamespace, credential); // createReceiver() can also be used to create a receiver for a subscription. const receiver = sbClient.createReceiver(queueName); // function to handle messages const myMessageHandler = async (messageReceived) => { console.log(`Received message: ${messageReceived.body}`); }; // function to handle any errors const myErrorHandler = async (error) => { console.log(error); }; // subscribe and specify the message and error handlers receiver.subscribe({ processMessage: myMessageHandler, processError: myErrorHandler }); // Waiting long enough before closing the sender to send messages await delay(20000); await receiver.close(); await sbClient.close(); } // call the main function main().catch((err) => { console.log("Error occurred: ", err); process.exit(1); });
Nahraďte
<SERVICE-BUS-NAMESPACE>
oborem názvů služby Service Bus.Nahraďte
<QUEUE NAME>
názvem fronty.Ke spuštění kódu v tomto souboru použijte tento příkaz na příkazovém řádku:
node receive.js
Měli byste vidět následující výstup.
Received message: Albert Einstein
Received message: Werner Heisenberg
Received message: Marie Curie
Received message: Steven Hawking
Received message: Isaac Newton
Received message: Niels Bohr
Received message: Michael Faraday
Received message: Galileo Galilei
Received message: Johannes Kepler
Received message: Nikolaus Kopernikus
Na stránce Přehled oboru názvů služby Service Bus na webu Azure Portal můžete zobrazit počet příchozích a odchozích zpráv. Možná budete muset chvíli počkat a pak stránku aktualizovat, aby se zobrazily nejnovější hodnoty.
Výběrem fronty na této stránce Přehled přejděte na stránku Fronta služby Service Bus. Na této stránce se zobrazuje také počet příchozích a odchozích zpráv. Zobrazí se také další informace, jako je aktuální velikost fronty, maximální velikost, počet aktivních zpráv atd.
Řešení problému
Pokud se při spuštění verze javascriptového kódu bez hesla zobrazí jedna z následujících chyb, přihlaste se pomocí příkazu az login
Azure CLI. Na uživatelský účet Azure se použije příslušná role :
- K provedení této operace se vyžadují nároky 'Send'.
- K provedení této operace jsou vyžadovány nároky na příjem.
Vyčištění prostředků
Přejděte do oboru názvů služby Service Bus na webu Azure Portal a výběrem možnosti Odstranit na webu Azure Portal odstraňte obor názvů a frontu v něm.
Související obsah
Projděte si následující dokumentaci a ukázky: