Поделиться через


PublishToAzureServiceBus@2 — задача "Публикация в служебной шине Azure версии 2"

Отправляет сообщение в служебную шину Azure с помощью подключения к службе (агент не требуется).

Эта версия задачи поддерживает федерацию идентификаторов Entra и удостоверений рабочей нагрузки через входные данные подключения к службе Azure Resource Manager (azureSubscription). Дополнительные сведения см. в следующем разделе Примечания.

Синтаксис

# 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
Псевдоним ввода: connectedServiceName. string. Обязательное.

Указывает подключение к службе Azure Resource Manager.


serviceBusQueueName - Имя очереди служебной шины Azure
string. Обязательное.

Укажите имя очереди, для которой предназначено сообщение.


serviceBusNamespace - Пространство имен служебной шины Azure
string. Обязательное.

Укажите пространство имен служебной шины Azure.


текст сообщения messageBody -
string.

Указывает messageBodyJSON.


sessionId - идентификатор сеанса
string.

Указывает идентификатор сеанса, с которым публикуется сообщение. Для очередей на основе сеансов публикация завершается ошибкой, если значение не указано. Для очередей, не основанных на сеансах, не требуется указывать значение.


signPayload - подписать сообщение
boolean. Значение по умолчанию: false.

Если задано значение true, в сообщение будет добавлен закрытый сертификат.


Переменная сертификата certificateString -
string. Требуется, если signPayload = true.

Указывает секретную переменную, содержащую содержимое сертификата. Это также может быть сертификат, хранящийся в хранилище ключей Azure, который связан с группой переменных, используемой конвейером выпуска.


ключа свойства подписи signatureKey -
string. Необязательно. Используется при signPayload = true. Значение по умолчанию: signature.

В свойствах сообщения указывает ключ, в котором находится подпись. Если осталось пустым, значение по умолчанию signature.


waitForCompletion - ожидание завершения задачи
boolean. Значение по умолчанию: false.

Если задано значение true, эта задача ожидает события TaskCompleted для указанного времени ожидания задачи.


useDataContractSerializer - Использование сериализатора контрактов данных .NET
boolean. Значение по умолчанию: true.

Задайте для useDataContractSerializer значение false, если вы хотите передать сообщение в виде потока вместо объекта.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.

Выходные переменные

Нет.

Замечания

Используйте эту задачу в задании без агента конвейера выпуска для отправки сообщения в служебную шину Azure с помощью подключения службы (без использования агента).

Замечание

Можно использовать только в задании без агента конвейера выпуска.

Доступ к служебной шине Azure из конвейеров с помощью проверки подлинности Entra ID

Теперь вы можете использовать проверку подлинности Entra ID для доступа к служебной шине Azure из Azure Pipelines. Это позволяет использовать федерацию удостоверений рабочих нагрузок для удаления секретов, управление секретами и Azure RBAC для точного контроля доступа.

Удостоверениям, получающим доступ к служебной шине Azure, необходимо предоставить одну из встроенных ролей Azure для служебной шины Azure на служебной шине, к которой осуществляется доступ.

Задачу PublishToAzureServiceBus@2 можно настроить с помощью подключения к службе Azure Resource Manager. Создайте подключение к службе Azure Resource Manager и заполните serviceBusQueueNameserviceBusNamespace свойства и задачи:

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

Где должно быть завершение задачи?

Чтобы сигнализировать о завершении, внешняя служба должна отправлять данные о завершении POST в следующую конечную точку REST конвейеров.

{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.

Дополнительные сведения см. в этом простом приложения cmdline.

Кроме того, вспомогающая библиотека C# доступна для включения динамического ведения журнала и управления состоянием задачи без агента. Дополнительные сведения о задачах без агента Async HTTP.

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Сервер
Требования Отсутствует
Возможности Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любое
переменные settable Любое
Версия агента Все поддерживаемые версии агента.
Категория задач Полезность