如何将模板添加到cloudformation中APIgateway的body映射模板(在integrationResponse中)

Ham*_*aee 2 amazon-web-services aws-cloudformation aws-api-gateway

我正在使用 api 网关,并且在我的集成响应的正文映射模板中,我有:

#set ($errorMessageObj = $util.parseJson($input.path('$.errorMessage')))
#set ($bodyObj = $util.parseJson($input.body))

 {
  "searchObjects":"$input.body",
  "statusCode":"$errorMessageObj.statusCode",
  "message":"$errorMessageObj.message"

 }
Run Code Online (Sandbox Code Playgroud)

现在,在我的代码的 api 网关部分中,我有:

GetMethod:
  Type: AWS::ApiGateway::Method
  DependsOn: APIGatewayToLambdaPermission
  Properties:
    AuthorizationType: NONE
    HttpMethod: GET
    Integration:
      Type: AWS
      IntegrationHttpMethod: POST
      Uri:
        Fn::Join:
        - ''
        - - 'arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/'
          - Fn::ImportValue: !Sub ${project}-${EnvironmentApp}-lambda-es-
            search
          - "/invocations"
      IntegrationResponses:
      - StatusCode: 200
        ResponseParameters:
          method.response.header.Access-Control-Allow-Origin: "'*'"
Run Code Online (Sandbox Code Playgroud)

我不知道如何将其添加到我的云结构中:

    #set ($errorMessageObj = $util.parseJson($input.path('$.errorMessage')))
#set ($bodyObj = $util.parseJson($input.body))

 {
  "searchObjects":"$input.body",
  "statusCode":"$errorMessageObj.statusCode",
  "message":"$errorMessageObj.message"

 }
Run Code Online (Sandbox Code Playgroud)

这是我的 api 网关设置:

在此输入图像描述

任何想法?

Dmi*_*nko 5

如果您使用 AWS 控制台,您可以访问

API Gateway > api > stage > 选项卡Export > 选择Export as Swagger + API Gateway Extensions > 单击YAML

比你能看到的

httpMethod: "POST"
        requestTemplates:
          application/json: "#set ($errorMessageObj = $util.parseJson($input.path('$.errorMessage')))\n\
            #set ($bodyObj = $util.parseJson($input.body))\n\n {\n  \"searchObjects\"\
            :\"$input.body\",\n  \"statusCode\":\"$errorMessageObj.statusCode\",\n\
            \  \"message\":\"$errorMessageObj.message\"\n }"
        contentHandling: "CONVERT_TO_TEXT"
        type: "aws"
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你