Dela via


PublishToAzureServiceBus@2 – Publicera till Azure Service Bus v2-uppgift

Skickar ett meddelande till Azure Service Bus med hjälp av en tjänstanslutning (ingen agent krävs).

Den här versionen av uppgiften stöder Entra-ID och arbetsbelastningsidentitetsfederation via dess Azure Resource Manager-tjänstanslutningsindata (azureSubscription). Mer information finns i avsnittet Kommentarer .

Syntax

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

Ingångar

azureSubscription - Anslutning till Azure Resource Manager-tjänsten
Indataalias: connectedServiceName. string. Obligatoriskt.

Anger en Azure Resource Manager-tjänstanslutning.


serviceBusQueueName - Namn på Azure Service Bus-kö
string. Obligatoriskt.

Ange namnet på den kö som meddelandet är avsett för.


serviceBusNamespace - Azure Service Bus-namnområde
string. Obligatoriskt.

Ange namnområdet för din Azure Service Bus.


messageBody - Meddelandetext
string.

Anger JSON-messageBody.


sessionId - sessions-ID
string.

Anger sessions-ID som meddelandet publiceras med. För sessionsbaserade köer misslyckas publiceringen om ett värde inte har angetts. För icke-sessionsbaserade köer behöver inget värde anges.


signPayload - Signera meddelandet
boolean. Standardvärde: false.

Om värdet är inställt på trueläggs ett privat certifikat till i meddelandet.


certificateString - certifikatvariabel
string. Krävs när signPayload = true.

Anger den hemliga variabel som innehåller certifikatinnehållet. Detta kan också vara ett certifikat som lagras i ett Azure-nyckelvalv som är länkad till en variabelgrupp som används av versionspipelinen.


signatureKey - signaturegenskapsnyckel
string. Valfritt. Använd när signPayload = true. Standardvärde: signature.

I Meddelandeegenskaper anger du nyckeln där signaturen finns. Om det lämnas tomt är standardvärdet signature.


waitForCompletion - Vänta tills uppgiften har slutförts
boolean. Standardvärde: false.

Om den här aktiviteten är inställd på trueväntar den på händelsen TaskCompleted för den angivna tidsgränsen för aktiviteten.


useDataContractSerializer - Använda serialiserare för .
boolean. Standardvärde: true.

Ange useDataContractSerializer till false om du vill skicka meddelandet som en ström i stället för ett objekt.


Alternativ för uppgiftskontroll

Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Ingen.

Anmärkningar

Använd den här uppgiften i ett agentlöst jobb av en versionspipeline för att skicka ett meddelande till en Azure Service Bus med hjälp av en tjänstanslutning (utan att använda en agent).

Anmärkning

Kan endast användas i ett agentlöst jobb för en versionspipeline.

Få åtkomst till Azure Service Bus från pipelines med hjälp av Entra-ID-autentisering

Nu kan du använda Entra-ID-autentisering för att få åtkomst till Azure Service Bus från Azure Pipelines. På så sätt kan du dra nytta av arbetsbelastningsidentitetsfederation för att ta bort hemlighetshantering och Azure RBAC för detaljerad åtkomstkontroll.

Identiteter som har åtkomst till Azure Service Bus måste beviljas en av de inbyggda Azure-rollerna för Azure Service Bus på den Service Bus som används.

Uppgiften PublishToAzureServiceBus@2 kan konfigureras med hjälp av en Azure Resource Manager-tjänstanslutning. Skapa en Azure Resource Manager-tjänstanslutning och fyll i egenskaperna och serviceBusQueueNameserviceBusNamespace för uppgiften:

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

Var ska en uppgift signalera slutförande?

För att signalera slutförande bör den externa tjänsten POST-slutförandedata till följande REST-slutpunkt för pipelines.

{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 fyller automatiskt i ServiceBusReceivedMessage.ApplicationProperties.

Mer information finns i det här enkla cmdline-programmet.

Dessutom finns ett C#-hjälpbibliotek tillgängligt för att aktivera liveloggning och hantera uppgiftsstatus för agentlösa uppgifter. Läs mer om Async HTTP-agentlösa uppgifter.

Kravspecifikation

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Server
Krav Ingen
Kapaciteter Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Vilken som helst
variabler som kan Vilken som helst
Agentversion Alla agentversioner som stöds.
Aktivitetskategori Nyttighet