x-amazon-apigateway-integration 객체
이 메서드에 사용된 백엔드 통합의 세부 정보를 지정합니다. 이 확장은 OpenAPI 작업
속성 이름 | 유형 | 설명 |
---|---|---|
cacheKeyParameters |
string 의 어레이 |
값을 캐시할 요청 파라미터의 목록입니다. |
cacheNamespace |
string |
캐시된 관련 파라미터의 API 관련 태그 그룹입니다. |
connectionId |
string |
프라이빗 통합을 위한 VpcLink의 ID. |
connectionType |
string |
통합 연결 유형. 유효 값은 프라이빗 통합의 경우, "VPC_LINK" 이고 그 밖의 경우에는 "INTERNET" 입니다. |
credentials |
string |
AWS IAM 역할 기반 자격 증명에 대해 해당하는 IAM 역할의 ARN을 지정하세요. 지정되어 있지 않으면 자격 증명이 기본적으로 리소스 기반 권한으로 설정되어 API가 리소스에 액세스할 수 있으려면 이 권한을 수동으로 추가해야 합니다. 자세한 내용은 리소스 정책을 사용하여 권한 부여 단원을 참조하세요. 참고: IAM 자격 증명을 사용할 때 최상의 성능을 위해 이 API가 배포된 리전에서 AWS STS 리전 엔드포인트가 활성화되어 있는지 확인하세요. |
contentHandling |
string |
요청 페이로드 인코딩 변환 유형입니다. 유효한 값은 1) 이진 페이로드를 Base64 인코딩 문자열로 변환하거나, 텍스트 페이로드를 utf-8 인코딩 문자열로 변환하거나, 기본적으로 수정 없이 텍스트 페이로드를 패스스루하는 경우에는 CONVERT_TO_TEXT 이고, 2) 텍스트 페이로드를 Base64 디코딩 BLOB로 변환하거나 기본적으로 수정 없이 이진 페이로드를 패스스루하는 경우에는 CONVERT_TO_BINARY 입니다. |
httpMethod |
string |
통합 요청에서 사용된 HTTP 메서드입니다. Lambda 함수 호출의 경우 값은 POST 여야 합니다. |
integrationSubtype |
string |
AWS 서비스 통합에 대한 통합 하위 유형을 지정합니다. HTTP API에서만 지원됩니다. 지원되는 통합 하위 유형은 통합 하위 유형 참조 단원을 참조하세요. |
passthroughBehavior |
string |
매핑되지 않은 콘텐츠 형식의 요청 페이로드를 수정 없이 통합 요청을 통해 전달하는 방식을 지정합니다. 지원되는 값은 when_no_templates , when_no_match 및 never 입니다. 자세한 내용은 Integration.passthroughBehavior를 참조하세요. |
payloadFormatVersion |
string |
통합으로 전송되는 페이로드의 형식을 지정합니다. HTTP API에 필요합니다. HTTP API의 경우 Lambda 프록시 통합에 대해 지원되는 값은 1.0 및 2.0 입니다. 다른 모든 통합의 경우 1.0 은 유일하게 지원되는 값입니다. 자세한 내용은 API Gateway에서 HTTP API에 대한 AWS Lambda 프록시 통합 생성 및 통합 하위 유형 참조 단원을 참조하세요. |
requestParameters |
x-amazon-apigateway-integration.requestParameters 객체 | REST API의 경우 메서드 요청 파라미터에서 통합 요청 파라미터로의 매핑을 지정합니다. 지원되는 요청 파라미터는 HTTP API의 경우 요청 파라미터는 지정된 |
requestTemplates |
x-amazon-apigateway-integration.requestTemplates 객체 | 지정된 MIME 유형의 요청 페이로드에 대한 매핑 템플릿입니다. |
responses |
x-amazon-apigateway-integration.responses 객체 | 메서드의 응답을 정의하고 통합 응답에서 메서드 응답으로 원하는 파라미터 매핑 또는 페이로드 매핑을 지정합니다. |
timeoutInMillis |
integer |
50ms~29,000ms 사이의 통합 제한 시간. |
type |
string |
지정된 백엔드와의 통합 유형입니다. 유효한 값은 다음과 같습니다.
통합 유형에 대한 자세한 내용은 integration:type을 참조하세요. |
tlsConfig |
x-amazon-apigateway-integration.tlsConfig 객체 | 통합을 위한 TLS 구성을 지정합니다. |
uri |
string |
백엔드의 엔드포인트 URI입니다. aws 유형 통합의 경우 이는 ARN 값입니다. HTTP 통합의 경우 이는 https 또는 http 스키마를 포함한 HTTP 엔드포인트의 URL입니다. |
x-amazon-apigateway-integration 예제
HTTP API의 경우, OpenAPI 정의의 구성 요소 섹션에서 통합을 정의할 수 있습니다. 자세한 내용은 x-amazon-apigateway-integrations 객체 단원을 참조하세요.
"x-amazon-apigateway-integration": { "$ref": "#/components/x-amazon-apigateway-integrations/
integration1
" }
다음 예제에서는 Lambda 함수와의 통합을 생성합니다. 데모를 위해 requestTemplates
에 표시된 샘플 매핑 템플릿과 아래 예의 responseTemplates
는 {
"name":"value_1", "key":"value_2", "redirect": {"url" :"..."} }
의 JSON 출력 또는 { "stage":"value_1", "user-id":"value_2" }
의 XML 출력을 생성하기 위해 다음 JSON 형식의 페이로드에 적용되는 것으로 가정됩니다. <stage>value_1</stage>
"x-amazon-apigateway-integration" : { "type" : "aws", "uri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:012345678901:function:HelloWorld/invocations", "httpMethod" : "POST", "credentials" : "arn:aws:iam::012345678901:role/apigateway-invoke-lambda-exec-role", "requestTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " }, "requestParameters" : { "integration.request.path.
stage
" : "method.request.querystring.version
", "integration.request.querystring.provider
" : "method.request.querystring.vendor
" }, "cacheNamespace" : "cache namespace", "cacheKeyParameters" : [], "responses" : { "2\\d{2}" : { "statusCode" : "200", "responseParameters" : { "method.response.header.requestId
" : "integration.response.header.cid
" }, "responseTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " } }, "302" : { "statusCode" : "302", "responseParameters" : { "method.response.header.Location" : "integration.response.body.redirect.url
" } }, "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header
" : "'static value'
" } } } }
매핑 템플릿에서 JSON 문자열의 큰따옴표 (")는 문자열 이스케이프 (\")여야 합니다.