AzureFunction@2 - 기능 v2 작업 호출 Azure

이 작업을 릴리스 파이프라인의 에이전트리스 작업 에서 사용하여 함수 앱에서 HTTP 트리거 함수를 호출하고 응답을 파싱합니다. 함수 앱은 반드시 Azure Functions에서 생성 및 호스팅되어야 합니다.

Syntax

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

입력

azureSubscription - Azure 서비스 연결
입력 별칭: azureServiceConnection | connectedServiceARM. string;

Azure 함수를 호출할 때 인증에 사용되는 서비스 연결. 서비스 주체 또는 관리 신원 접근을 위한 엔트라 액세스 토큰을 제공합니다.


function - Azure 함수 URL
string; 필수 사항입니다.

호출해야 하는 Azure 함수의 URL. 예: https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.


key - 기능 키
string;

함수 또는 해당 기능에 접근하고 호출하는 데 사용되는 호스트 키입니다. 키를 안전하게 유지하려면 비밀 파이프라인 변수를 사용해 함수 키를 저장합니다. 예: $(myFunctionKey). myFunctionKey 는 비밀 키로 값이 있는 환경 수준의 비밀 변수입니다.


method - 방법
string; 필수 사항입니다. 허용되는 값: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. 기본값은 POST입니다.

함수가 호출될 HTTP 메서드입니다.


headers - 헤더
string; 기본값은 {\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}입니다.

JSON 형식의 헤더는 함수에 보내는 요청에 첨부되어야 합니다.


queryParameters - 쿼리 매개변수
string;

함수 URL에 추가하는 문자열 쿼리입니다. 또는 로 시작 ?&해서는 안 됩니다.


body - 본문
string; Optional. method != GET && method != HEAD때 사용합니다.

요청용 JSON 형식의 메시지 본문입니다.


waitForCompletion - 완성 행사
string; 필수 사항입니다. 허용된 값: true (콜백), false (ApiResponse). 기본값은 false입니다.

작업이 완료를 어떻게 보고하는지.

  • false - API 응답 - 함수가 성공을 반환하고 성공 기준이 참으로 평가됩니다.
  • true - 콜백 - 타임라인 레코드를 업데이트하기 위해 콜백을 하는 함수입니다.

successCriteria - 성공 기준
string; Optional. waitForCompletion = false때 사용합니다.

성공적인 과제의 기준입니다. 기본적으로 작업은 성공 시 상태를 반환합니다 200 OK . 이 입력이 명시되지 않으면 응답 내용이 결과에 영향을 미치지 않습니다.

예시: 응답 {"status" : "successful"}에 대해 표현식은 가 될 eq(root['status'], 'successful')수 있습니다. 조건 지정에 대해 더 알아보세요.


작업 제어 옵션

모든 작업에는 작업 입력 외에도 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성참조하세요.

출력 변수

없음.

비고

이 작업을 릴리스 파이프라인의 에이전트 없는 작업에서 사용하여 Azure Functions에서 생성되고 호스팅된 함수 앱에서 HTTP 트리거 함수를 호출하고 응답을 파싱합니다.

콜백이 완료 이벤트로 선택되었을 때 작업은 어디에 완료를 알리나요?

완료를 알리기 위해 함수는 완료 데이터를 다음 파이프라인 REST 엔드포인트로 POST해야 합니다.

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

구체적인 내용은 이 간단한 cmdline application을 참조하세요. 또한, 에이전트리스 작업의 실시간 로깅과 작업 상태 관리를 가능하게 하는 C# 헬퍼 라이브러리도 제공됩니다. 자세히 알아보기

타임아웃이 더 길어지는데 왜 1분 이내에 작업이 실패할까요?

함수가 1분 이상 실행되면 콜백 완료 이벤트를 사용하세요. API 응답 완료 옵션은 60초 이내에 완료되는 요청에 대해 지원합니다.

Examples

다음 두 예시는 기능적으로 동등하다. 첫 번째 예시는 인증을 위해 Azure Resource Manager 서비스 연결을 사용하고, 두 번째 예시는 직접 함수 키를 사용해 인증을 수행합니다.

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'

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 서버, 서버게이트
Demands None
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한사항 임의의
설정 가능한 변수 임의의
에이전트 버전 지원되는 모든 에이전트 버전입니다.
작업 범주 유틸리티