次の方法で共有


PublishToAzureServiceBus@2 - Azure Service Bus v2 タスクに発行する

サービス接続を使用して Azure Service Bus にメッセージを送信します (エージェントは必要ありません)。

このバージョンのタスクでは、 Azure Resource Manager サービス接続 入力 (azureSubscription) を通じて、Entra ID とワークロード ID のフェデレーションがサポートされています。 詳細については、次の 解説 セクションを参照してください。

構文

# Publish To Azure Service Bus v2
# Sends a message to Azure Service Bus using an Azure Resource Manager service connection (no agent is required).
- task: PublishToAzureServiceBus@2
  inputs:
    azureSubscription: # string. Alias: connectedServiceName. Required. Azure Resource Manager service connection. 
    serviceBusQueueName: # string. Required. Azure Service Bus Queue name. 
    serviceBusNamespace: # string. Required. Azure Service Bus Namespace. 
    #messageBody: # string. Message body. 
    #waitForCompletion: false # boolean. Wait for task completion. Default: false.
    #useDataContractSerializer: true # boolean. Use .NET data contract serializer. Default: true.
  # Advanced
    #sessionId: # string. Session Id. 
    #signPayload: false # boolean. Sign the Message. Default: false.
    #certificateString: # string. Required when signPayload = true. Certificate Variable. 
    #signatureKey: 'signature' # string. Optional. Use when signPayload = true. Signature Property Key. Default: signature.

入力

azureSubscription - Azure Resource Manager サービス接続
入力エイリアス: connectedServiceNamestring。 必須。

Azure Resource Manager サービス接続を指定します。


serviceBusQueueName - Azure Service Bus キュー名
string。 必須。

メッセージの対象となるキューの名前を指定します。


serviceBusNamespace - Azure Service Bus 名前空間
string。 必須。

Azure Service Bus の名前空間を指定します。


messageBody - メッセージ本文の
string

JSON messageBodyを指定します。


sessionId - セッション ID
string

メッセージのパブリッシュに使用するセッション ID を指定します。 セッション ベースのキューの場合、値が指定されていない場合、発行は失敗します。 非セッション ベースのキューの場合、値を指定する必要はありません。


メッセージに署名する signPayload -
boolean。 既定値: false

trueに設定すると、プライベート証明書がメッセージに追加されます。


証明書変数certificateString -
stringsignPayload = trueする場合に必要です。

証明書の内容を含むシークレット変数を指定します。 これは、リリース パイプラインで使用される変数グループにリンクされた 、Azure キー コンテナーに格納されている証明書にすることもできます。


signatureKey - Signature プロパティ キーの
string。 任意。 signPayload = trueするときに使用します。 既定値: signature

[メッセージのプロパティ] で、署名があるキーを指定します。 空のままにした場合、既定値は signatureです。


waitForCompletion - タスクの完了 を待つ
boolean。 既定値: false

trueに設定すると、このタスクは TaskCompleted イベントが指定されたタスク タイムアウトを待機します。


useDataContractSerializer - .NET データ コントラクト シリアライザーを使用する
boolean。 既定値: true

メッセージをオブジェクトではなくストリームとして渡す場合は、useDataContractSerializerfalse に設定します。


タスク コントロールのオプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。

出力変数

なし。

注釈

リリース パイプラインの エージェントレス ジョブ でこのタスクを使用して、(エージェントを使用せずに) サービス接続を使用して Azure Service Bus にメッセージを送信します。

リリース パイプラインの エージェントレス ジョブ でのみ使用できます。

Entra ID 認証を使用してパイプラインから Azure Service Bus にアクセスする

Entra ID 認証を使用して、Azure Pipelines から Azure Service Bus にアクセスできるようになりました。 これにより、ワークロード ID フェデレーションを利用してシークレット管理を削除し、Azure RBAC を使用してきめ細かなアクセス制御を行うことができます。

Azure Service Bus にアクセスする ID には、アクセスする Service Bus 上の Azure Service Bus の Azure 組み込みロール のいずれかを付与する必要があります。

PublishToAzureServiceBus@2 タスクは、Azure Resource Manager サービス接続を使用して構成できます。 Azure Resource Manager サービス接続を作成し、タスクの serviceBusQueueName プロパティと serviceBusNamespace プロパティを設定します。

- task: PublishToAzureServiceBus@2
  inputs:
    azureSubscription: my-azure-service-connection
    serviceBusQueueName: my-service-bus-queue
    serviceBusNamespace: my-service-bus-namespace
    useDataContractSerializer: false
    messageBody: |
      {
        "property": "value"
      }

タスクが完了を通知する必要がある場所

完了を通知するには、外部サービスが完了データを次のパイプライン REST エンドポイントに POST する必要があります。

{planUri}/{projectId}/_apis/distributedtask/hubs/{hubName}/plans/{planId}/events?api-version=2.0-preview.1

**Request Body**
 { "name": "TaskCompleted", "taskId": "taskInstanceId", "jobId": "jobId", "result": "succeeded" }

Azure DevOps は、 ServiceBusReceivedMessage.ApplicationProperties を自動的に設定します。

詳細については、この単純なコマンドライン アプリケーション を参照してください。

さらに、C# ヘルパー ライブラリを使用して、エージェントレス タスクのライブ ログ記録とタスクの状態の管理を有効にすることができます。 非同期 HTTP エージェントレス タスク の詳細について説明します。

要求事項

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 サーバー
の需要 無し
機能 このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 [任意]
設定可能な変数 [任意]
エージェントのバージョン サポートされているすべてのエージェント バージョン。
タスク カテゴリ 効用