Azure Functions Invoke 작업을 사용하면 워크플로우에서 직접 HTTP 트리거 Azure Function을 호출할 수 있습니다. 이 작업은 원시 HTTP 호출을 구성하는 대신 Azure Functions를 호출하기 위해 지원되고 검증된 인터페이스 ― 유형이 지정된 입력, URL 유효성 검사 및 시크릿 기반 인증 포함 ― 를 제공합니다.
Azure 함수를 호출하십시오.
이 작업은 Azure Function 엔드포인트로 HTTP 요청을 보내고 응답을 반환합니다. 인증은 Azure의 함수 키 메커니즘을 사용하며, 워크플로우는 이를 x-functions-key 헤더로 전달합니다.
다음 필드는 Azure Function 요청을 구성합니다.
입력 필드 | 선택성 | 유형 | 설명 |
|---|---|---|---|
| 필수의 | 문자열 | Azure Function HTTP 트리거 엔드포인트의 전체 HTTPS URL입니다. 예:
. |
| 선택 과목 | 문자열 | 인증을 위한 함수 수준 또는 호스트 수준 API 키입니다. 워크플로우는 이를
헤더로 전송합니다. 시크릿으로 전달하십시오. |
| 필수의 | 문자열 | 사용할 HTTP 메서드입니다.
,
,
,
,
중 하나입니다. 기본값은
입니다. |
| 선택 과목 | 문자열 | JSON 문자열 형식의 요청 본문입니다.
이(가)
또는
가 아닌 경우에만 적용됩니다. 시크릿 참조를 허용합니다. |
| 선택 과목 | 지도 | JSON 형식의 추가 HTTP 헤더입니다. (예:
) 시크릿 참조를 허용합니다. |
| 선택 과목 | 지도 | 함수 URL에 추가할 쿼리 파라미터입니다.
또는
(으)로 시작해서는 안 됩니다. 예를 들어,
입니다. |
작업은 다음 필드를 반환합니다.
출력 필드 | 유형 | 설명 |
|---|---|---|
| 정수 | Azure Function에서 반환한 HTTP 상태 코드입니다. 예:
,
또는
. |
| 문자열 | Azure Function의 응답 본문입니다. JSON, 일반 텍스트, HTML 또는 기타 형식이 될 수 있습니다. |
| 부울 | 함수 호출이 성공했는지 여부를 나타냅니다. 2xx 응답(200~299)의 경우
이며, 그렇지 않은 경우
입니다. |
예: 문제 해결 함수 트리거
name: azure-function-invoke-remediation
steps: - name: invokeRemediationFunction type: action action: azure.functions.invoke version: 1 inputs: function: "https://remediation.azurewebsites.net/api/fix-incident" key: ${{ :secrets:azure:functionKey }} method: "POST" body: '{"incidentId":"${{ .workflowInputs.incidentId }}"}'예: 쿼리 파라미터가 있는 GET 요청
name: azure-function-invoke-get
steps: - name: getFromFunction type: action action: azure.functions.invoke version: 1 inputs: function: "https://myapp.azurewebsites.net/api/GetStatus" key: ${{ :secrets:azure:functionKey }} method: "GET" queryParameters: "env=prod®ion=eastus"예: 함수를 호출하고 결과를 로그에 기록합니다.
name: azure-function-invoke-and-log
steps: - name: invokeFunction type: action action: azure.functions.invoke version: 1 inputs: function: "https://myapp.azurewebsites.net/api/RunCheck" key: ${{ :secrets:azure:functionKey }} method: "POST" body: '{"target":"${{ .workflowInputs.target }}"}' headers: Content-Type: "application/json"
- name: logFunctionResult type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: "Azure Function invocation complete" attributes: success: ${{ .steps.invokeFunction.outputs.success }} statusCode: ${{ .steps.invokeFunction.outputs.statusCode }} response: ${{ .steps.invokeFunction.outputs.response }}