IRONSOFTWAREHOME
開発者向けアップデート

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

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月21日

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

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

コードの説明

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

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

  • queName変数は、作業したいService Busキューの名前を保持しています。

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

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

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

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

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

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

4.メッセージの送信:

  • "IronPDF is Awesome Package"の内容を持つメッセージが、指定されたキューに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トライアルライセンスページでトライアルライセンスが利用可能です。

結論

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

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

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

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

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から