x-amazon-apigateway-integration 객체 - Amazon API Gateway

x-amazon-apigateway-integration 객체

이 메서드에 사용된 백엔드 통합의 세부 정보를 지정합니다. 이 확장은 OpenAPI 작업 객체의 확장된 속성입니다. 결과는 API Gateway 통합 객체입니다.

속성 이름 유형 설명
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_matchnever입니다. 자세한 내용은 Integration.passthroughBehavior를 참조하세요.
payloadFormatVersion string 통합으로 전송되는 페이로드의 형식을 지정합니다. HTTP API에 필요합니다. HTTP API의 경우 Lambda 프록시 통합에 대해 지원되는 값은 1.02.0입니다. 다른 모든 통합의 경우 1.0은 유일하게 지원되는 값입니다. 자세한 내용은 API Gateway에서 HTTP API에 대한 AWS Lambda 프록시 통합 생성통합 하위 유형 참조 단원을 참조하세요.
requestParameters x-amazon-apigateway-integration.requestParameters 객체

REST API의 경우 메서드 요청 파라미터에서 통합 요청 파라미터로의 매핑을 지정합니다. 지원되는 요청 파라미터는 querystring, path, headerbody입니다.

HTTP API의 경우 요청 파라미터는 지정된 AWS_PROXY과의 integrationSubtype 통합에 전달되는 파라미터를 지정하는 키-값 맵입니다. 정적 값을 제공하거나 런타임 시 평가되는 요청 데이터, 스테이지 변수 또는 컨텍스트 변수를 매핑할 수 있습니다. 자세한 내용은 API Gateway에서 HTTP API에 대한 AWS 서비스 통합 생성 단원을 참조하세요.

requestTemplates x-amazon-apigateway-integration.requestTemplates 객체 지정된 MIME 유형의 요청 페이로드에 대한 매핑 템플릿입니다.
responses x-amazon-apigateway-integration.responses 객체 메서드의 응답을 정의하고 통합 응답에서 메서드 응답으로 원하는 파라미터 매핑 또는 페이로드 매핑을 지정합니다.
timeoutInMillis integer 50ms~29,000ms 사이의 통합 제한 시간.
type string

지정된 백엔드와의 통합 유형입니다. 유효한 값은 다음과 같습니다.

  • http 또는 http_proxy: HTTP 백엔드와 통합 시

  • aws_proxy: AWS Lambda 함수와 통합 시

  • aws: AWS Lambda 함수 또는 Amazon DynamoDB, Amazon Simple Notification Service나 Amazon Simple Queue Service 등의 기타 AWS 서비스와 통합 시

  • mock: 백엔드를 호출하지 않고 API Gateway와 통합 시

통합 유형에 대한 자세한 내용은 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 문자열의 큰따옴표 (")는 문자열 이스케이프 (\")여야 합니다.