트리거 출력 바인딩
적용 대상: 개발자 | 프리미엄
invoke-dapr-binding
정책은 API Management 게이트웨이에 아웃바운드 Dapr 바인딩을 트리거하도록 지시합니다. 정책에서는 템플릿 매개 변수를 바꾸는 http://localhost:3500/v1.0/bindings/{{bind-name}},
에 HTTP POST가 요청하게 하고 정책문에 지정된 콘텐츠를 추가함으로써 이 작업을 수행합니다.
이 정책에서는 Dapr 런타임이 게이트웨이와 동일한 pod의 사이드카 컨테이너에서 실행되고 있다고 가정합니다. Dapr 런타임에서는 바인딩으로 표시되는 외부 리소스를 호출합니다. API Management와 Dapr 통합에 대해 자세히 알아봅니다.
참고 항목
정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.
정책 문
<invoke-dapr-binding name="bind-name" operation="op-name" ignore-error="false | true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
<metadata>
<item key="item-name"><!-- item-value --></item>
</metadata>
<data>
<!-- message content -->
</data>
</invoke-dapr-binding>
특성
특성 | 설명 | 필수 항목 | 기본값 |
---|---|---|---|
name | 대상 바인딩 이름입니다. Dapr에서 정의된 바인딩의 이름과 일치해야 합니다. 정책 식이 허용됩니다. | 예 | 해당 없음 |
operation | 대상 작업 이름(바인딩별)입니다. Dapr의 작업 속성에 매핑됩니다. 정책 식은 허용되지 않습니다. | 아니요 | 없음 |
ignore-error | true 로 설정하는 경우에는 Dapr 런타임에서 오류를 수신하는 동안 "오류 발생" 섹션을 트리거하지 않도록 정책에 지시합니다. 정책 식은 허용되지 않습니다. |
아니요 | false |
response-variable-name | Dapr 런타임의 응답을 저장하는 데 사용할 변수 컬렉션 항목의 이름입니다. 정책 식은 허용되지 않습니다. | 아니요 | 없음 |
시간 제한 | Dapr 런타임이 응답할 때까지 대기하는 시간(초)입니다. 범위는 1 ~ 240초입니다. 정책 식이 허용됩니다. | 아니요 | 5 |
템플릿 | 메시지 콘텐츠를 변환하는 데 사용할 템플릿 엔진입니다. “액체”는 유일하게 지원되는 값입니다. | 아니요 | 없음 |
content-type | 메시지 콘텐츠의 유형입니다. “application/json”은 유일하게 지원되는 값입니다. | 아니요 | 없음 |
Elements
요소 | 설명 | 필수 |
---|---|---|
metadata | 특정 메타데이터를 키/값 쌍의 형식으로 바인딩합니다. Dapr의 메타데이터 속성에 매핑됩니다. | 아니요 |
데이터 | 메시지 내용입니다. Dapr의 데이터 속성에 매핑됩니다. 정책 식이 허용됩니다. | 아니요 |
사용
사용법 참고 사항
Dapr 지원은 자체 호스팅 게이트웨이에서 사용하도록 설정해야 합니다.
예시
다음 예제에서는 작업 이름이 "create"인 "external-systems"라는 아웃바운드 바인딩, "source" 및 "client-ip"라는 두 개의 키/값 항목으로 구성된 메타데이터 및 원래 요청에서 오는 본문의 트리거를 보여 줍니다. Dapr 런타임에서 받은 응답은 컨텍스트 개체의 변수 컬렉션의 “바인딩-응답” 항목에 캡처됩니다.
몇 가지 이유로 인해 Dapr 런타임이 실패하고 오류로 응답하는 경우에는 “오류 발생” 섹션이 트리거되고 Dapr 런타임에서 수신한 응답이 호출자 그대로 반환됩니다. 대상 토픽을 찾은 경우 기본 200 OK
응답이 반환됩니다.
“백 엔드” 섹션이 비어 있고 요청이 백 엔드로 전달되지 않습니다.
<policies>
<inbound>
<base />
<invoke-dapr-binding
name="external-system"
operation="create"
response-variable-name="bind-response">
<metadata>
<item key="source">api-management</item>
<item key="client-ip">@(context.Request.IpAddress )</item>
</metadata>
<data>
@(context.Request.Body.As<string>() )
</data>
</invoke-dapr-binding>
</inbound>
<backend>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
<return-response response-variable-name="bind-response" />
</on-error>
</policies>
관련 정책
관련 콘텐츠
정책 작업에 대한 자세한 내용은 다음을 참조하세요.
- 자습서: API 변환 및 보호
- 정책 문 및 해당 설정에 대한 전체 목록에 대한 정책 참조
- 정책 식
- 정책 설정 또는 편집
- 정책 구성 재사용
- 정책 코드 조각 리포지토리
- Azure API Management 정책 도구 키트
- Azure의 Microsoft Copilot을 사용하는 작성자 정책