AzureFunction@2 - Invoke Azure função tarefa v2

Use essa tarefa em um trabalho sem agente de um pipeline de liberação para invocar uma função disparada por HTTP em um aplicativo de funções e analisar a resposta. O aplicativo de funções deve ser criado e hospedado no Azure Functions.

Sintaxe

# Invoke Azure Function v2
# Invoke an Azure Function.
- task: AzureFunction@2
  inputs:
    #azureSubscription: # string. Alias: azureServiceConnection | connectedServiceARM. Azure Service Connection. 
    function: # string. Required. Azure function URL. 
    #key: # string. Function key. 
    method: 'POST' # 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'PATCH'. Required. Method. Default: POST.
    #headers: # string. Headers. 
    #queryParameters: # string. Query parameters. 
    #body: # string. Optional. Use when method != GET && method != HEAD. Body. 
  # Advanced
    waitForCompletion: 'false' # 'true' | 'false'. Required. Completion event. Default: false.
    #successCriteria: # string. Optional. Use when waitForCompletion = false. Success criteria.

Entradas

azureSubscription - Azure Conexão de Serviço
Alias de entrada: azureServiceConnection | connectedServiceARM. string.

Conexão de serviço usada para autenticar ao invocar a Função Azure. Fornece um Token de Acesso Entra para acesso a Principal de Serviço ou Identidade Gerenciada.


function - Azure URL da função
string. Required.

URL da função Azure que precisa ser invocada. Exemplo: https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.


key - Tecla de função
string.

A função ou a chave host usada para acessar e invocar a função. Para manter a chave segura, use uma variável secreta de pipeline para armazenar a chave de função. Exemplo: $(myFunctionKey). myFunctionKey é uma variável secreta em nível ambiente com um valor como chave secreta.


method - Método
string. Required. Valores permitidos: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Valor padrão: POST.

O método HTTP com o qual a função será invocada.


headers - Cabeçalhos
string. Valor padrão: {\n"Content-Type":"application/json", \n"PlanUrl": "$(system.CollectionUri)", \n"ProjectId": "$(system.TeamProjectId)", \n"HubName": "$(system.HostType)", \n"PlanId": "$(system.PlanId)", \n"JobId": "$(system.JobId)", \n"TimelineId": "$(system.TimelineId)", \n"TaskInstanceId": "$(system.TaskInstanceId)", \n"AuthToken": "$(system.AccessToken)"\n}.

O cabeçalho em formato JSON deve ser anexado à solicitação enviada para a função.


queryParameters - Parâmetros de consulta
string.

A consulta de string para anexar à URL da função. Não deve começar com ? ou &.


body - Carroceria
string. Optional. Use quando method != GET && method != HEAD.

Corpo da mensagem com formato JSON para o pedido.


waitForCompletion - Evento de conclusão
string. Required. Valores permitidos: true (Callback), false (ApiResponse). Valor padrão: false.

Como a tarefa relata a conclusão.

  • false - Resposta API - a função retorna sucesso e os critérios de sucesso são avaliados como verdadeiros.
  • true - Callback - a função faz um callback para atualizar o registro da linha do tempo.

successCriteria - Critérios de sucesso
string. Optional. Use quando waitForCompletion = false.

Os critérios para uma tarefa bem-sucedida. Por padrão, a tarefa retorna 200 OK status quando bem-sucedida. Se essa entrada não for especificada, o conteúdo da resposta não influencia o resultado.

Exemplo: Para resposta {"status" : "successful"}, a expressão pode ser eq(root['status'], 'successful'). Saiba mais sobre como especificar as condições.


Opções de controle de tarefa

Todas as tarefas têm opções de controle além das suas entradas de tarefas. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Observações

Use essa tarefa em um trabalho sem agentes de um pipeline de liberação para invocar uma função ativada por HTTP em um aplicativo de funções que seja criado e hospedado em Azure Functions e analisar a resposta.

Onde uma tarefa deve sinalizar a conclusão quando o Callback é escolhido como evento de conclusão?

Para sinalizar a conclusão, a função deve POST os dados de conclusão para o endpoint REST dos seguintes 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" }

Veja esta aplicação simples cmdline para detalhes específicos. Além disso, uma biblioteca auxiliar em C# está disponível para permitir o registro ao vivo e o gerenciamento do status das tarefas sem agente. Saiba mais

Por que a tarefa falha em 1 minuto quando o tempo é maior?

Se a função for executada por mais de 1 minuto, use o evento de conclusão de retorno de chamada . A opção de conclusão de API Response é suportada para requisições que são concluídas em até 60 segundos.

Exemplos

Os dois exemplos a seguir são funcionalmente equivalentes. O primeiro exemplo usa uma conexão de serviço do Azure Resource Manager para autenticação, enquanto o segundo exemplo usa diretamente uma chave de função para autenticação.

trigger: none
 
pool: server
 
steps:
- task: AzureFunction@2
  inputs:
    # Authenticate using Azure Resource Manager service connection
    authenticationType: 'azureServiceConnection'
    azureServiceConnection: 'working-app-registration'
    function: 'https://myfuction.azurewebsites.net/api/my-test-trigger-function'
    method: 'GET'
    waitForCompletion: 'false'
trigger: none
 
pool: server
 
steps:
- task: AzureFunction@2
  inputs:
    # Authenticate using function key
    authenticationType: 'functionKey'
    key: 'aaaaaaaa-0b0b-1c1c-2d2d-333333333333'
    function: 'https://myfuction.azurewebsites.net/api/my-test-trigger-function'
    method: 'GET'
    waitForCompletion: 'false'

Requirements

Requirement Descrição
Tipos de tubulação YAML, build clássico, versão clássica
Funciona em Servidor, ServerGate
Demands Nenhum
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente Todas as versões de agente com suporte.
Categoria de tarefa Utilitário