Compartir a través de


PublishToAzureServiceBus@2 - Tarea Publicar en Azure Service Bus v2

Envía un mensaje a Azure Service Bus mediante una conexión de servicio (no se requiere ningún agente).

Esta versión de la tarea admite el identificador de Entra y la federación de identidades de carga de trabajo a través de su entrada de conexión de servicio de Azure Resource Manager (azureSubscription). Para obtener más información, consulte la siguiente sección Comentarios.

Sintaxis

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

Entradas

azureSubscription - Conexión de servicio de Azure Resource Manager
Alias de entrada: connectedServiceName. string. Obligatorio.

Especifica una conexión de servicio de Azure Resource Manager.


serviceBusQueueName - Nombre de la cola de Azure Service Bus
string. Obligatorio.

Especifique el nombre de la cola a la que está destinado el mensaje.


serviceBusNamespace - Espacio de nombres de Azure Service Bus
string. Obligatorio.

Especifique el espacio de nombres de Azure Service Bus.


cuerpo del mensaje de messageBody -
string.

Especifica el messageBodyJSON .


de identificador de sesión de sessionId -
string.

Especifica el identificador de sesión con el que se publica el mensaje. En el caso de las colas basadas en sesión, se produce un error en la publicación si no se especifica un valor. En el caso de las colas no basadas en sesiones, no es necesario especificar un valor.


signPayload - firmar el de mensajes
boolean. Valor predeterminado: false.

Si se establece en true, se agregará un certificado privado al mensaje.


certificateString - variable de certificado
string. Obligatorio cuando signPayload = true.

Especifica la variable secreta que contiene el contenido del certificado. También puede ser un certificado almacenado en un almacén de claves de Azure que esté vinculado a un grupo de variables usado por la canalización de versión.


de clave de propiedad de firma de signatureKey -
string. Opcional. Use cuando signPayload = true. Valor predeterminado: signature.

En Propiedades del mensaje, especifica la clave donde está la firma. Si se deja vacío, el valor predeterminado es signature.


waitForCompletion - esperar de finalización de tareas
boolean. Valor predeterminado: false.

Si se establece en true, esta tarea esperará al evento TaskCompleted para el tiempo de espera de tarea especificado.


useDataContractSerializer - Uso del serializador de contratos de datos de .NET
boolean. Valor predeterminado: true.

Establezca useDataContractSerializer en false si desea pasar el mensaje como una secuencia en lugar de un objeto .


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Use esta tarea en un trabajo sin agente de una canalización de versión para enviar un mensaje a Azure Service Bus mediante una conexión de servicio (sin usar un agente).

Nota:

Solo se puede usar en un trabajo sin agente de una canalización de versión.

Acceso a Azure Service Bus desde canalizaciones mediante la autenticación de identificador de Entra

Ahora puede usar la autenticación de identificador de Entra para acceder a Azure Service Bus desde Azure Pipelines. Esto le permite aprovechar la federación de identidades de carga de trabajo para quitar la administración de secretos y Azure RBAC para un control de acceso detallado.

A las identidades que accedan a Azure Service Bus se les deberá conceder uno de los roles integrados de Azure para Azure Service Bus en el Service Bus al que se accede.

La PublishToAzureServiceBus@2 tarea se puede configurar mediante una conexión de servicio de Azure Resource Manager. Cree una conexión de servicio de Azure Resource Manager y rellene las serviceBusQueueName propiedades y serviceBusNamespace de la tarea:

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

¿Dónde debe completarse una señal de tarea?

Para indicar la finalización, el servicio externo debe publicar los datos de finalización en el siguiente punto de conexión REST de canalizaciones.

{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 rellena automáticamente ServiceBusReceivedMessage.ApplicationProperties.

Consulte esta sencilla de aplicación cmdline para obtener información específica.

Además, hay disponible una biblioteca auxiliar de C# para habilitar el registro en directo y administrar el estado de la tarea para las tareas sin agente. Obtenga más información sobre tareas sin agente HTTP asincrónicas.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Servidor
demandas Ninguno
Capacidades Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquiera
variables settable Cualquiera
Versión del agente Todas las versiones de agente admitidas.
Categoría de tarea Utilidad