이 작업을 릴리스 파이프라인의 에이전트리스 작업 에서 사용하여 함수 앱에서 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'