フッターコンテンツにスキップ
.NETヘルプ

Azure.Messaging.ServiceBus Example C#(開発者向けの仕組み)

今日の相互接続されたデジタル環境では、効率的なコミュニケーションがビジネスの成功の礎となっています。 アプリケーション間での重要なデータの送信や、分散システム全体のリアルタイム更新を保証するにしても、信頼性のあるメッセージングインフラストラクチャは欠かせません。

Azure Service Busは、クラウドベースのメッセージングサービスで、開発者がスケーラブルで分離された、レジリエントなアプリケーションを構築するための強力なソリューションとして登場します。 Azure Service Bus の領域を深く掘り下げて、その重要性を理解し、その無数の機能を探求していきましょう。 この記事の後半では、PDF ドキュメントの管理、生成、読み取りを行うためにIronPDFにも触れます。

Azure Service Busの理解

Azure Service Bus は、クラウド、オンプレミス、またはハイブリッド環境において、アプリケーションやサービス間の信頼性のあるコミュニケーションを促進する、完全に管理されたエンタープライズ統合メッセージブローカーです。

キューイングや発行/購読機能など、システム内の異なるコンポーネント間でのスムーズなコミュニケーションを可能にする柔軟なメッセージング機能を提供します。 また、バッチメッセージを許可しており、合計サイズ制約を超えない限り、複数のメッセージを送信することができます。

Azure Service Busは次の利点を提供します:

1.アプリケーションの分離: Service Bus を使用すると、アプリケーションとサービスを相互に分離できます。 この分離により、信頼性とスケーラビリティが向上します。 2.負荷分散:競合するワーカー間で作業を分散し、効率的なリソース利用を実現します。 3.メッセージ転送:データはメッセージを使用してアプリケーションとサービス間で転送されます。 これらのメッセージの本文には、JSON、XML、プレーンテキストなどさまざまな種類のデータを含めることができます。 4.メッセージング シナリオ:一般的なシナリオには、ビジネス データ (販売注文など) の転送、負荷分散、トピックとサブスクリプションを使用したパブリッシャーとサブスクライバー間の関係の有効化などがあります。 5.トランザクション: Service Bus はアトミック トランザクションをサポートし、単一のトランザクション スコープ内で複数の操作を可能にします。 トランザクションには複数の同時呼び出しが含まれますが、メッセージバッチには単一の呼び出しがあります。 6.メッセージ セッション:ワークフローの大規模な調整と順序付けられたメッセージ転送を容易にします。

主要な機能と能力

  1. キューとトピック: Azure Service Busは通信チャンネルとしてキューとトピックの両方を提供します。 キューはポイントツーポイント通信を可能にし、各メッセージが1つの受信者によってのみ処理されることを保証し、ワークロードの分配や負荷レベリングシナリオに理想的です。 一方、トピックは発行/購読メッセージングパターンをサポートし、複数の購読者が関連するメッセージを独立して受信できることを可能にし、スケーラブルなイベント駆動型アーキテクチャを促進します。

  2. 信頼性のあるメッセージ配信: Azure Service Busを使用すると、メッセージ配信は本質的に信頼性があります。 メッセージの永続性を保証し、メッセージとエラーハンドラー、フォールトトレランス、少なくとも1回の配信セマンティクスを構成でき、データの損失や重複のリスクを最小限に抑えます。 さらに、トランザクションをサポートし、複数のメッセージにわたるアトミック操作を可能にし、データの整合性を保証します。

  3. デッドレタリングとリトライポリシー: 問題のあるメッセージの効果的な処理に向けて、Azure Service Busはデッドレタリング機能を提供し、問題のあるメッセージを解析およびトラブルシューティングのために自動的に別のキューに移動させます。 さらに、柔軟なリトライポリシーを提供しており、開発者が指数バックオフ戦略を使用した自動リトライを構成できるため、一時的な障害に対するアプリケーションの回復性を向上させます。

  4. パーティショニングとスケーリング: Azure Service Busはメッセージエンティティのパーティショニングをサポートしており、複数のノードにワークロードを分散し、水平スケーラビリティと高スループットを保証します。 この機能は、大量のメッセージを処理し、パフォーマンスや信頼性を損なうことなく変動するワークロードに対応するために非常に重要です。

  5. Azureエコシステムとの統合: Azure Service BusはAzure Functions, Logic Apps, Event Grid, Azure Kubernetes Service (AKS)など他のAzureサービスとシームレスに統合されており、エンドツーエンドのソリューションを容易に構築できるようにします。 受信メッセージに応じてサーバーレス関数をトリガーすることから、Logic Appsを使用した複雑なワークフローのオーケストレーションに至るまで、Azure Service Busは堅牢なイベント駆動型アーキテクチャを構築するための要となります。

IronPDFの紹介

Azure.Messaging.ServiceBusの例 C#(仕組み): 図1

IronPDFは、.NETプロジェクト内でPDFドキュメントを生成、編集、抽出するための強力なC#ライブラリです。 ここにいくつかの重要な特徴を示します:

  1. HTMLからPDFへの変換:

    • HTML、CSS、およびJavaScriptコンテンツをPDF形式に変換します。

    • Chrome Rendering Engineを使用してピクセルパーフェクトなPDFを作成します。

    • URL、HTMLファイル、またはHTML文字列からPDFを生成します。

2.画像とコンテンツの変換:

* 画像をPDFに、またはPDFから画像に変換します。

* 既存のPDFからテキストや画像を抽出します。

* さまざまな画像形式をサポートします。

3.編集と操作:

* PDFのプロパティ、セキュリティ、権限を設定します。

* デジタル署名を追加します。

* メタデータとリビジョン履歴を編集します。

4.クロスプラットフォームサポート:

* .NET Core (8, 7, 6, 5, 3.1+)、.NET Standard (2.0+) および .NET Framework (4.6.2+)と互換性があります。

* Windows、Linux、およびmacOSに対応しています。

* 簡単にインストールできるNuGetで利用可能です。

IronPDFとAzure.Messaging.ServiceBusを使用したPDFドキュメントの生成

まず、以下のようにVisual Studioを使用してコンソールアプリケーションを作成します。

Azure.Messaging.ServiceBusの例 C#(仕組み): 図2

プロジェクト名を提供する

Azure.Messaging.ServiceBusの例 C#(仕組み): 図3

.NETバージョンを指定する

Azure.Messaging.ServiceBusの例 C#(仕組み): 図4

IronPDFパッケージをインストールします。

Azure.Messaging.ServiceBusの例 C# (仕組み): 図5

Azure Service Busの作成

Azure全体で一意の名前を持つ名前空間を作成します。 名前空間は、アプリケーション内のキューやトピックなどのService Busリソースのコンテナです。

名前空間の作成方法は次のとおりです:

  1. Azureポータルにログインします。
  2. "すべてのサービス"ページに移動します。
  3. 左側のナビゲーションペインで、カテゴリリストから"統合"を選択します。
  4. "Service Bus"にカーソルを合わせ、Service Busタイルの"+"ボタンをクリックします。

Azure.Messaging.ServiceBusの例 C#(仕組み): 図6

名前空間作成ページの基本タブを構成するには、次の手順に従います:

1.サブスクリプション:名前空間を作成する Azure サブスクリプションを選択します。 2.リソース グループ:名前空間を配置する既存のリソース グループを選択するか、新しいリソース グループを作成します。

3.名前空間名:名前空間の名前を入力します。 名前が次の基準を満たしていることを確認してください:

* Azure全体で一意である必要があります。

* 長さは6〜50文字である必要があります。

* 英字、数字、およびハイフン"-"のみ含むことができます。

* 文字で始まり、文字または数字で終わる必要があります。

* "-sb"または"-mgmt"で終わることはできません。

4.場所:名前空間をホストするリージョンを選択します。 5.価格レベル:名前空間の価格レベル (Basic、Standard、または Premium) を選択します。 この例では、標準を選択してください。

  1. ページの下部でレビューと作成を選択します。

Azure.Messaging.ServiceBusの例 C#(仕組み): 図7

  1. レビューと作成ページで作成を選択します。

  2. リソースのデプロイが成功したら、リソースに移動します。

Service Bus名前空間のホームページが表示されます。

AzureポータルでのService Busキューの作成

Service Bus名前空間にキューを設定するには、次の手順に従います: 1.キューに移動します。Azureポータルの Service Bus 名前空間ページに移動します。 左側のナビゲーションメニューから"キュー"を選択します。 2.新しいキューを作成する: "キュー"ページで、ツールバーの"+ キュー"ボタンをクリックします。 3.キューの設定:指定されたフィールドにキューの名前を入力します。 他の設定はデフォルト値のままにしておきます。 Azure Service Busキューを作成する際に構成する必要があるオプション:

1.名前:これはキューの一意の識別子です。 説明的で覚えやすい名前を選択してください。

2.最大キュー サイズ:キューの最大ストレージ容量を定義します。 1 GB、2 GB、5 GB、10 GB、20 GB、40 GB、80 GB、または100 GBに設定することができます。 今回は1 GBに設定します。

3.最大配信回数:メッセージが配信不能キューに送信されるか破棄されるまでに配信できる最大回数を指定します。 これはメッセージ処理の失敗を処理するのに役立ちます。

4.メッセージの有効期間 (TTL):メッセージが期限切れになるまでキュー内に留まる時間を決定します。 日、時間、分、秒で設定できます。 TTLが到達すると、デッドレターメッセージは破棄されるか、デッドレタリングが有効になっている場合はデッドレターキューに移動されます。

5.ロック期間:受信者による処理のためにメッセージがロックされる時間です。 この期間中、他の受信者は同じメッセージを処理できません。 この期間を日、時間、分、秒で設��します。

6.メッセージの有効期限が切れたときにデッドレターを有効にする:有効にすると、期限が切れた (つまり、TTL を超えた) メッセージは破棄されるのではなく、デッドレター キューに移動されます。 これにより、期限切れのメッセージのさらなる検査と処理が可能になります。

7.パーティショニングを有効にする:このオプションを選択すると、複数のメッセージ ブローカー間でキューのパーティショニングが有効になり、スケーラビリティとスループットが向上します。 大容量のメッセージを処理するためにパーティショニングが役立ちます。

これらの設定は、お使いのAzure Service Busキューの動作とパフォーマンスを制御し、アプリケーションの要件を満たすことを保証します。

Azure.Messaging.ServiceBusの例 C#(仕組み): 図8

4.作成の完了: "作成"ボタンをクリックして、キューの作成を完了します。 これらのステップを実施することで、Azureポータルを使用してService Bus名前空間内にキューを正常に作成できます。

Azure.Messaging.ServiceBus、Service Busクライアントライブラリをインストールし、接続文字列を使用してAzureキューに接続します。

Azure.Messaging.ServiceBusの例 C#(仕組み): 図9

以下のコードを追加してAzure.Messaging.ServiceBusを使用してメッセージを送信および受信します。

using Azure.Messaging.ServiceBus;
namespace CodeSample
{
    public static class AzureServiceBusDemo
    {
        public static async Task Execute()
        {
            string connectionString = "Endpoint=sb://iron-articles.servicebus.windows.net/;SharedAccessKeyName=all;SharedAccessKey=uqQIzpuc2HxbnAb9keqTINvzfTcFbkkU0+ASbJZ/tow=;EntityPath=ironpdf";
            string queName = "ironpdf";
            Console.WriteLine("Demo IronPDF with Azure.Messaging.ServiceBus");
            Installation.EnableWebSecurity = true;

            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo IronPDF with Azure.Messaging.ServiceBus</h1>";
            content += "<h2>Send Message to Azure.Messaging.ServiceBus Queue: ironpdf</h2>";

            await using var client = new ServiceBusClient(connectionString);
            var msgText = "IronPDF is Awesome Package";
            content += $"<p>Message: {msgText}</p>";

            var tx = client.CreateSender(queName);
            await tx.SendMessageAsync(new ServiceBusMessage(msgText)); // Send message to the queue
            Console.WriteLine($"Sent Below message at: {DateTime.Now}");
            content += $"<p>Sent Below message at: {DateTime.Now}</p>";

            Console.ReadLine(); // wait for user input to read the message;

            var rx = client.CreateReceiver(queName);
            var msg = await rx.ReceiveMessageAsync(); // receive messages
            content += "<h2>Receive Message from Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
            content += $"<p>Recieved Below message at: {DateTime.Now}</p>";
            Console.WriteLine($"Recieved Below message at: {DateTime.Now}");

            content += $"<p>MessageID={msg.MessageId}</p>";
            Console.WriteLine($"MessageID={msg.MessageId}");

            content += $"<p>Message Received: {msg.Body}</p>";
            Console.WriteLine($"Message Received: {msg.Body}");

            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("AwesomeAzureServiceBusQueueAndIronPdf.pdf");
        }
    }
}
using Azure.Messaging.ServiceBus;
namespace CodeSample
{
    public static class AzureServiceBusDemo
    {
        public static async Task Execute()
        {
            string connectionString = "Endpoint=sb://iron-articles.servicebus.windows.net/;SharedAccessKeyName=all;SharedAccessKey=uqQIzpuc2HxbnAb9keqTINvzfTcFbkkU0+ASbJZ/tow=;EntityPath=ironpdf";
            string queName = "ironpdf";
            Console.WriteLine("Demo IronPDF with Azure.Messaging.ServiceBus");
            Installation.EnableWebSecurity = true;

            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo IronPDF with Azure.Messaging.ServiceBus</h1>";
            content += "<h2>Send Message to Azure.Messaging.ServiceBus Queue: ironpdf</h2>";

            await using var client = new ServiceBusClient(connectionString);
            var msgText = "IronPDF is Awesome Package";
            content += $"<p>Message: {msgText}</p>";

            var tx = client.CreateSender(queName);
            await tx.SendMessageAsync(new ServiceBusMessage(msgText)); // Send message to the queue
            Console.WriteLine($"Sent Below message at: {DateTime.Now}");
            content += $"<p>Sent Below message at: {DateTime.Now}</p>";

            Console.ReadLine(); // wait for user input to read the message;

            var rx = client.CreateReceiver(queName);
            var msg = await rx.ReceiveMessageAsync(); // receive messages
            content += "<h2>Receive Message from Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
            content += $"<p>Recieved Below message at: {DateTime.Now}</p>";
            Console.WriteLine($"Recieved Below message at: {DateTime.Now}");

            content += $"<p>MessageID={msg.MessageId}</p>";
            Console.WriteLine($"MessageID={msg.MessageId}");

            content += $"<p>Message Received: {msg.Body}</p>";
            Console.WriteLine($"Message Received: {msg.Body}");

            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("AwesomeAzureServiceBusQueueAndIronPdf.pdf");
        }
    }
}
$vbLabelText   $csharpLabel

コードの説明

1.接続文字列とキュー名:

* `connectionString`変数には、Azure Service Bus名前空間の接続の詳細が含まれています。 エンドポイント、共有アクセスキー、エンティティパス(キュー名)を指定します。

* `queName`変数は、操作したいService Busキューの名前を保持します。

2.デモのセットアップ:

* コードはメッセージ"Azure.Messaging.ServiceBusを使用してIronPDFをデモしています"を出力することから始まります。

* `Installation.EnableWebSecurity = true;`を使用してWebセキュリティを有効にします。

3.サービスバスクライアントの作成:

* 提供された接続文字列を使用して`ServiceBusClient`を作成します。

* このクライアントを使用して、Service Busエンティティ(キュー、トピックなど)とのやりとりを行います。

4.メッセージの送信:

* 指定されたキューに"IronPDFは素晴らしいパッケージです"という内容のメッセージを`CreateSender`メソッドを使用して送信します。

* メッセージは`new ServiceBusMessage(msgText)`を使用して作成されます。

* 送信されたメッセージのタイムスタンプがコンソールに出力されます。

5.メッセージの受信:

* `CreateReceiver`を使用して同じキューの受信者を作成します。

* コードはユーザー入力 (`Console.ReadLine()`を使ったメッセージ処理のシミュレーション)まで待機します。

* メッセージが受信されると、そのIDと本文がコンソールに表示されます。
  1. PDFの生成:

    • レンダラーはHTMLコンテンツ(送信および受信したメッセージを含む)からPDFを作成します。

    • 作成されたPDFは"AwesomeAzureServiceBusQueueAndIronPdf.pdf"として保存されます。

出力

Azure.Messaging.ServiceBusの例 C#(仕組み): 図10

PDF

Azure.Messaging.ServiceBusの例 C#(仕組み): 図11

IronPDFのライセンス

IronPDFパッケージは、PDFの実行および生成にライセンスが必要です。 パッケージにアクセスする前に、アプリケーションの開始時に以下のコードを追加してください。

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
$vbLabelText   $csharpLabel

IronPDFトライアルライセンスページでトライアルライセンスが利用可能です。

結論

デジタルトランスフォーメーションと急速な技術進歩を特徴とする時代において、Azure Service Busは世界中の企業のモダナイゼーションの旅において重要なコンポーネントとして登場します。 信頼性があり、スケーラブルで柔軟なメッセージング機能を提供することで、開発者が進化するビジネス要件に合わせてレジリエントでアジャイルなソリューションを設計するのを可能にします。

シームレスな統合を促進し、イベント駆動型アーキテクチャを可能にし、非同期通信を保証するにしても、Azure Service Busは革新を推進し、業界全体のデジタルイニシアティブを加速する上で変革的な役割を果たします。

組織がクラウドネイティブなパラダイムや分散型アーキテクチャを引き続き取り入れていく中で、Azure Service Busは、クラウドへの旅において開発者と企業を支援するマイクロソフトのコミットメントの証となっています。 IronPDFは.NETアプリケーション内でのPDF生成をシンプルにし、コードから直接プロフェッショナルグレードのドキュメントを作成するための柔軟性と機能性を提供します。

よくある質問

C# で HTML を PDF に変換するにはどうすればいいですか?

IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。さらに、RenderHtmlFileAsPdf メソッドを使用して HTML ファイルを PDF に変換することもできます。

Azure Service Bus とは何ですか、そしてそれはどのように通信を強化しますか?

Azure Service Bus は、クラウドベースかオンプレミスか、ハイブリッド環境であれアプリケーションおよびサービス間の信頼性のあるメッセージ転送を可能にすることで通信を強化する、完全管理されたエンタープライズ統合メッセージブローカーです。

記事で使用されている PDF ライブラリの主な機能は何ですか?

IronPDF ライブラリは、HTML から PDF の変換、PDF の編集と操作、画像変換、およびさまざまな .NET フレームワークおよびオペレーティングシステムとのクロスプラットフォーム互換性などの機能を提供します。

C# で Azure.Messaging.ServiceBus を使用してメッセージを送信するにはどうすればよいですか?

Azure.Messaging.ServiceBus を使用してメッセージを送信するには、ServiceBusSender を作成し、SendMessageAsync メソッドを使用してキューにメッセージを送信します。

Azure Service Bus におけるデッドレターリングの仕組みはどうなっていますか?

Azure Service Bus におけるデッドレタリングは、処理できないメッセージを自動的に別のデッドレターキューに移動し、開発者がこれらの問題メッセージを効果的に分析およびトラブルシューティングできるようにします。

Azure Service Bus はイベント駆動型アーキテクチャをサポートしていますか?

はい、Azure Service Bus は Azure Functions や Logic Apps などの他の Azure サービスとシームレスに統合されており、イベント駆動型アーキテクチャをサポートし、スケーラブルで柔軟なメッセージングソリューションを提供します。

Azure.Messaging.ServiceBus を使用してメッセージを受信するプロセスは何ですか?

Azure.Messaging.ServiceBus を使用してメッセージを受信するには、ServiceBusReceiver を作成し、ReceiveMessageAsync メソッドを使用してキューからの受信メッセージを処理します。

記事に記載されている PDF ライブラリの使用にはライセンスが必要ですか?

はい、IronPDF で PDF を生成するにはライセンスが必要です。アプリケーションの使用にライセンスキーを取得するか、IronPDF Trial License Page から利用できる試用ライセンスを使用することができます。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。