적용 대상: Azure Logic Apps (소비 + 표준)
워크플로 트리거 또는 작업이 실행되기 전에 이벤트 또는 데이터가 대상 서비스 엔드포인트에 도착할 때까지 기다리려면 일정에 따라 엔드포인트를 사전에 확인하는 대신 HTTP 웹후크 트리거 또는 작업을 사용합니다. HTTP 웹후크 트리거 또는 작업은 서비스 엔드포인트를 구독하고 실행하기 전에 새 이벤트 또는 데이터를 기다립니다. 장기 실행 작업 및 비동기 처리에 웹후크 패턴을 사용할 수 있습니다.
다음 목록에서는 웹후크 기반 워크플로 예제를 설명합니다.
- HTTP 웹후크 트리거는 워크플로를 실행하기 전에 이벤트가 Azure Event Hubs 도착할 때까지 기다립니다.
- HTTP 웹후크 작업은 워크플로에서 다음 작업을 계속하기 전에 Office 365 Outlook 승인을 기다립니다.
이 가이드에서는 워크플로가 서비스 엔드포인트에서 새 이벤트 또는 데이터를 수신하고 응답할 수 있도록 HTTP 웹후크 트리거 및 HTTP 웹후크 작업을 설정하는 방법을 보여 줍니다.
웹후크는 어떻게 작동하나요?
웹후크 트리거 또는 작업은 대상 서비스 엔드포인트에서 새 이벤트 또는 데이터를 폴링 하거나 사전에 확인하지 않습니다. 대신 트리거 또는 작업은 새 이벤트 또는 데이터가 실행되기 전에 서비스 엔드포인트에 도착할 때까지 기다립니다. 워크플로에 웹후크 트리거 또는 작업을 추가한 다음 워크플로를 저장하거나 비활성화된 논리 앱 리소스를 다시 활성화한 후 웹후크 트리거 또는 작업은 엔드포인트에 콜백 URL을 생성하고 등록하여 서비스 엔드포인트를 구독합니다. 그런 다음 트리거 또는 작업은 서비스 엔드포인트가 트리거 또는 작업을 실행하는 URL을 호출할 때까지 기다립니다. 요청 트리거와 마찬가지로 HTTP 웹후크 트리거가 즉시 실행됩니다.
예를 들어 Office 365 Outlook 커넥터 작업인 승인 이메일 보내기는 웹후크 패턴을 따르지만 Office 365 Outlook 작동합니다. 원하는 서비스 엔드포인트에서 HTTP 웹후크 트리거 또는 작업을 사용하여 웹후크 패턴을 모든 서비스로 확장할 수 있습니다.
웹후크 트리거는 다음 작업 중 하나를 수동으로 수행할 때까지 서비스 엔드포인트를 구독 상태로 유지합니다.
- 트리거의 매개 변수 값을 변경합니다.
- 트리거를 삭제한 다음 워크플로를 저장합니다.
- 논리 앱 리소스를 사용하지 않도록 설정합니다.
다음 조건 중 하나가 발생하지 않는 한 웹후크 작업은 서비스 엔드포인트를 구독 상태로 유지합니다.
- 웹후크 작업이 성공적으로 완료되었습니다.
- 응답을 기다리는 동안 워크플로 실행을 취소합니다.
- 워크플로 시간이 초과되었습니다.
- 웹후크 트리거가 입력으로 사용하는 모든 웹후크 작업 매개 변수 값을 변경합니다.
자세한 내용은 다음을 참조하십시오.
필수 구성 요소
Azure 계정 및 구독입니다. 무료 Azure 계정을 만듭니다.
배포된 서비스 엔드포인트 또는 API의 URL입니다.
이 항목은 워크플로의 웹후크 트리거와 워크플로의 웹후크 작업에 대한 "구독 및 구독 취소" 패턴을 지원해야 합니다.
표준 또는 소비 논리 앱 워크플로에서 HTTP 웹후크 트리거 또는 작업을 사용하려는 경우입니다.
- HTTP 웹후크 트리거를 사용하려면 빈 워크플로를 사용하여 논리 앱 리소스를 만듭니다.
- HTTP 웹후크 작업을 사용하려면 시나리오에 가장 적합한 트리거를 사용하여 워크플로를 시작합니다. 이 예제에서는 HTTP 웹후크 트리거를 사용합니다.
Http Webhook 트리거 추가
이 기본 제공 트리거는 대상 서비스의 구독 엔드포인트를 호출하고 대상 서비스로 콜백 URL을 등록합니다. 그런 다음 워크플로는 대상 서비스가 콜백 URL에 HTTP POST 요청을 보낼 때까지 기다립니다. 이 이벤트가 발생하면 트리거가 발생하고 해당 요청의 모든 데이터를 워크플로로 전달합니다.
Azure 포털 논리 앱 리소스를 엽니다. 디자이너에서 빈 워크플로를 엽니다.
일반적인 단계에 따라 HTTP 웹후크라는 트리거를 워크플로에 추가합니다.
이 예제에서는 트리거
Run HTTP Webhook trigger이름을 보다 설명적인 이름으로 바꿉니다. 또한 이 예제에서는 나중에 HTTP 웹후크 작업을 추가합니다. 두 이름은 모두 고유해야 합니다.HTTP 웹후크 트리거 매개 변수의 경우 구독 및 구독 취소 호출에 대한 값을 제공합니다.
매개 변수 필수 설명 Subscribe 메서드 예 대상 엔드포인트를 구독하는 데 사용할 메서드입니다. 구독 URI 예 대상 엔드포인트를 구독하는 데 사용할 URL입니다. 구독 본문 아니요 구독 요청에 포함할 메시지 본문입니다. 이 예제에는 listCallbackUrl()표현식 함수를 사용하여 트리거의 콜백 URL을 검색함으로써, 구독자(즉, 워크플로우)를 고유하게 식별하는 콜백 URL이 포함됩니다.구독 취소 메시지 본문 아니요 구독 취소 요청에 포함할 모든 메시지 본문입니다. 식 함수를 listCallbackUrl()사용하여 작업의 콜백 URL을 검색할 수 있습니다. 그러나 트리거는x-ms-client-tracking-id헤더와x-ms-workflow-operation-name을 자동으로 포함하여 전송하며, 이 헤더들은 대상 서비스가 구독자를 고유하게 식별하는 데 사용할 수 있습니다.다른 트리거 매개 변수를 추가하려면 고급 매개 변수 목록을 엽니다.
예를 들어 구독 취소 메서드 및 구독 취소 URI 매개 변수를 사용하려면 고급 매개 변수 목록에서 추가합니다.
다음 예제에서는 구독 및 구독 취소 메서드에 사용할 메서드, URI 및 메시지 본문을 포함하는 트리거를 보여 줍니다.
인증을 사용해야 하는 경우 고급 매개 변수 목록에서 구독 인증 및 구독 취소 인증 매개 변수를 추가합니다.
HTTP 웹후크에 사용할 수 있는 인증 유형에 대한 자세한 내용은 아웃바운드 호출에 인증 추가를 참조하세요.
시나리오에 필요한 다른 작업을 추가합니다.
완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.
워크플로를 저장하면 대상 서비스의 구독 엔드포인트가 호출되고 콜백 URL이 등록됩니다. 워크플로는 대상 서비스가 콜백 URL에 HTTP POST 요청을 보낼 때까지 기다립니다. 이 이벤트가 발생하면 트리거가 실행되고 요청의 모든 데이터를 워크플로에 전달합니다. 이 작업이 성공적으로 완료되면 트리거는 엔드포인트에서 구독을 취소하고 워크플로는 다음 작업을 계속합니다.
Http Webhook 작업 추가
이 기본 제공 작업은 대상 서비스의 구독 엔드포인트를 호출하고 대상 서비스로 콜백 URL을 등록합니다. 그런 다음 워크플로가 일시 중지되고 대상 서비스가 콜백 URL에 HTTP POST 요청을 보낼 때까지 기다립니다. 이 이벤트가 발생하면 작업은 요청의 모든 데이터를 워크플로에 전달합니다. 작업이 성공적으로 완료되면 작업은 엔드포인트에서 구독을 취소하고 워크플로는 다음 작업으로 계속 진행됩니다.
Azure 포털 논리 앱 리소스를 엽니다. 디자이너에서 워크플로를 엽니다.
일반적인 단계에 따라 HTTP 웹후크라는 작업을 워크플로에 추가합니다.
이 예제에서는 작업의
Run HTTP Webhook action이름을 보다 설명적인 이름으로 바꿉니다. 워크플로에서 HTTP 웹후크 트리거도 사용하는 경우 두 이름은 모두 고유해야 합니다.HTTP 웹후크 작업 매개 변수의 경우 구독 및 구독 취소 호출에 사용할 값을 제공합니다.
매개 변수 필수 설명 Subscribe 메서드 예 대상 엔드포인트를 구독하는 데 사용할 메서드입니다. 구독 URI 예 대상 엔드포인트를 구독하는 데 사용할 URL입니다. 구독 본문 아니요 구독 요청에 포함할 메시지 본문입니다. 이 예제는 콜백 URL이 포함되고 이는 워크플로인 구독자를 고유하게 식별하며 listCallbackUrl()식 함수 를 사용하여 작업의 콜백 URL을 검색합니다.구독 취소 메시지 본문 아니요 구독 취소 요청에 포함할 모든 메시지 본문입니다. 식 함수를 listCallbackUrl()사용하여 작업의 콜백 URL을 검색할 수 있습니다. 그러나 이 작업은 헤더x-ms-client-tracking-id및x-ms-workflow-operation-name를 자동으로 포함하고 전송하며, 이는 대상 서비스가 구독자를 고유하게 식별하는 데 사용할 수 있습니다.다른 작업 매개 변수를 추가하려면 고급 매개 변수 목록을 엽니다.
예를 들어 구독 취소 메서드 및 구독 취소 URI 매개 변수를 사용하려면 고급 매개 변수 목록에서 추가합니다.
다음 예제에서는 구독 및 구독 취소 메서드에 사용할 메서드, URI 및 메시지 본문을 포함하는 작업을 보여 줍니다.
인증을 사용해야 하는 경우 고급 매개 변수 목록에서 구독 인증 및 구독 취소 인증 매개 변수를 추가합니다.
HTTP 웹후크에 사용할 수 있는 인증 유형에 대한 자세한 내용은 아웃바운드 호출에 인증 추가를 참조하세요.
시나리오에 필요한 다른 작업을 추가합니다.
완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.
이 작업이 실행되면 워크플로는 대상 서비스의 구독 엔드포인트를 호출하고 콜백 URL을 등록합니다. 워크플로가 일시 중지되고 대상 서비스가 콜백 URL에 HTTP POST 요청을 보낼 때까지 기다립니다. 이 이벤트가 발생하면 작업은 요청의 모든 데이터를 워크플로에 전달합니다. 작업이 성공적으로 완료되면 작업은 엔드포인트에서 구독을 취소하고 워크플로는 다음 작업으로 계속 진행됩니다.
커넥터 기술 참조
HTTP 웹후크 트리거 및 작업 매개 변수에 대한 자세한 내용은 HTTP 웹후크 매개 변수를 참조하세요. 트리거 및 작업에는 동일한 매개 변수가 있습니다.
SAS(공유 액세스 서명) 토큰 만료
HTTP 웹후크 트리거 또는 작업에 대한 콜백 URL은 목록 콜백 URL - REST API 메서드에 의해 자동으로 생성됩니다. 기본적으로 콜백 URL의 SAS 토큰에는 시간 기반 만료가 없습니다. 콜백 URL은 워크플로 실행 기간 동안 유효합니다.
타임아웃 한도
다음 표에서는 논리 앱 호스팅 옵션에 따라 HTTP 웹후크 작업에 대한 시간 제한에 대해 설명합니다.
| 호스팅 옵션 | 워크플로 유형 | 지속 시간 |
|---|---|---|
| 소비 | Stateful | 최대 90일. |
| 표준 | Stateful | 최대 30일. |
| 표준 | 상태 비저장 | 5분 (고정 제한) |
다음 이벤트가 발생하면 HTTP 웹후크 작업의 콜백 URL이 유효하지 않습니다.
- 워크플로를 취소합니다.
- 워크플로 또는 논리 앱 리소스를 삭제하거나 사용하지 않도록 설정합니다.
- 워크플로의 액세스 키를 회전합니다.
- 워크플로 시간이 초과되었습니다.
다른 HTTP 제한에 대해서는 Azure Logic Apps의 HTTP 제한을 참조하세요.
시간 제한 설정 변경
Azure 포털을 사용하여 상태 저장 워크플로에서 HTTP 웹후크 작업에 대한 이 제한을 변경하려면 아웃바운드 HTTP 요청에 대한 Timeout 기간 테이블을 참조하세요. 또는 작업의 JSON 정의에서 개체를 limit.timeout 추가하고 값을 원하는 기간으로 설정합니다. 예를 들면 다음과 같습니다.
{
"actions": {
"Run_HTTP_Webhook_action": {
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "POST",
"uri": "https://<external-service>.com/subscribe",
"body": {
"callbackUrl": "@{listCallBackUrl()}"
}
},
"unsubscribe": {}
},
"limit": {
"timeout": "PT1H"
}
}
}
}
트리거 및 작업 출력
다음 표에서는 HTTP 웹후크 트리거 또는 작업에서 반환되는 출력에 대한 자세한 정보를 제공합니다.
| JSON 이름 | Type | 설명 |
|---|---|---|
headers |
JSON 개체 | 요청의 헤더입니다. |
body |
JSON 개체 | 요청의 본문 내용이 포함된 개체입니다. |
status code |
정수 (int) | 요청의 상태 코드입니다. |
| 상태 코드 | 설명 |
|---|---|
| 200 | 그래 |
| 202 | 수락됨 |
| 400 | 잘못된 요청 |
| 401 | 권한 없음 |
| 403 | 사용할 수 없음 |
| 404 | 찾을 수 없음 |
| 500 | 내부 서버 오류. 알 수 없는 오류 발생. |
보조 액세스 키를 사용하여 콜백 URL 생성
논리 앱 워크플로에는 기본 키와 보조 키의 두 가지 액세스 키가 있습니다. 기본적으로 Azure Logic Apps 기본 키를 사용하여 HTTP 웹후크 트리거에 대한 콜백 URL을 생성합니다.
대신 콜백 URL 생성에 보조 키를 사용하려면 다음 단계를 수행합니다.
워크플로 디자이너에 있는 경우 코드 보기로 전환합니다.
트리거 정의에서
HttpWebhook매개 변수를 찾습니다accessKeyType.단어를
Secondary매개 변수 값으로 입력합니다.변경 내용을 저장합니다.
다음 예제는 accessKeyType 매개 변수가 Secondary로 설정된 웹후크 트리거 정의를 보여줍니다.
{
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "POST",
"uri": "<subscription-URL>",
"body": "@listCallbackUrl()"
},
"accessKeyType": "Secondary"
},
"runAfter": {}
}