Invocación de una tarea de función

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

Use esta tarea en un trabajo sin agente de una canalización de versión para invocar una función desencadenada por HTTP en una aplicación de función que se crea y hospeda en Azure Functions y analiza la respuesta.

Nota

En Microsoft Team Foundation Server (TFS) 2018 y versiones anteriores, las canalizaciones de compilación y versión se denominan definiciones, las ejecuciones se denominan compilaciones, las conexiones de servicio se denominan puntos de conexión de servicio, las fases se denominan entornos y los trabajos se denominan fases.

Peticiones

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

Fragmento de código YAML

# Invoke Azure Function
# Invoke an Azure Function
- task: AzureFunction@1
  inputs:
    function: 
    key: 
    #method: 'POST' # Options: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH
    #headers: '{Content-Type:application/json, PlanUrl: $(system.CollectionUri), ProjectId: $(system.TeamProjectId), HubName: $(system.HostType), PlanId: $(system.PlanId), JobId: $(system.JobId), TimelineId: $(system.TimelineId), TaskInstanceId: $(system.TaskInstanceId), AuthToken: $(system.AccessToken)}' 
    #queryParameters: # Optional
    #body: # Required when method != GET && Method != HEAD
    #waitForCompletion: 'false' # Options: true, false
    #successCriteria: # Optional

Argumentos

Parámetro Comentarios
Dirección URL de la función Obligatorio. Dirección URL de la función que se va a invocar.
Clave de función Obligatorio. Valor de la función disponible o la clave de host para la función que se va a invocar. Debe protegerse mediante una variable oculta.
Método Obligatorio. Método HTTP con el que se invocará la función.
Encabezados Opcional. Encabezado en formato JSON que se va a adjuntar a la solicitud enviada a la función.
Parámetros de consulta Opcional. Parámetros de consulta para anexar a la dirección URL de la función. No debe empezar por "?" o " " ".
Cuerpo Opcional. Cuerpo de la solicitud para la llamada de función en formato JSON.
Evento de finalización Obligatorio. Cómo notifica la tarea la finalización. Puede ser respuesta de API (valor predeterminado): la finalización es cuando la función devuelve un resultado correcto y los criterios de éxito se evalúan como true o Callback( La función realiza una devolución de llamada para actualizar el registro de escala de tiempo).
Criterios de éxito Opcional. Cómo analizar el cuerpo de la respuesta en busca de éxito.
Opciones de control Consulte Opciones de control.

Se realiza correctamente si la función devuelve un resultado correcto y el análisis del cuerpo de la respuesta es correcto, o cuando la función actualiza el registro de escala de tiempo con éxito.

Para obtener más información sobre el uso de esta tarea, vea Información general sobre aprobaciones y puertas.

Código Abierto

Esta tarea es de código abierto en GitHub. Los comentarios y las contribuciones son bienvenidos.

Preguntas más frecuentes

¿Dónde debe una tarea indicar la finalización cuando se elige la devolución de llamada como evento de finalización?

Para indicar la finalización, la función debe enviar los datos de finalización POST al punto de conexión REST de canalizaciones siguiente.

{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" }

Consulte esta sencilla 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 las tareas sin agente. Más información

¿Por qué la tarea no se pudo ejecutar en un minuto cuando el tiempo de espera es mayor?

Si la función se ejecuta durante más de 1 minuto, use el evento de finalización de devolución de llamada. La opción finalización de respuesta de API es compatible con las solicitudes que se completan en un plazo de 60 segundos.