使用AWS::ApiGatewayV2::Integration覆盖HttpApi响应体报错求助
解决API Gateway集成覆盖响应体报错“Invalid Destination parameter”的问题
你的问题出在AWS_PROXY类型集成的响应参数配置格式错误,以及目标参数写法不符合该集成类型的要求,具体修正点和正确配置如下:
关键问题说明
- 你使用的是
AWS_PROXY+SQS-SendMessage的集成组合,这类集成的响应参数配置结构和普通HTTP集成不同,不能用数组形式定义参数映射 - 覆盖响应体的正确目标参数是
overwrite:body,而非你写的overwrite:$response.body
修正后的配置代码
APIVersionIntegration: Type: AWS::ApiGatewayV2::Integration Properties: ApiId: !Ref HttpApi ConnectionType: INTERNET CredentialsArn: !GetAtt MyHttpApiRole.Arn IntegrationType: AWS_PROXY RequestParameters: MessageBody: "$request.body" QueueUrl: !Ref DataPublisherSQS ResponseParameters: "200": overwrite:header.content-type: "application/json" overwrite:body: "" IntegrationSubtype: "SQS-SendMessage" PayloadFormatVersion: "1.0"
配置修改细节
- 把原嵌套的
ResponseParameters数组结构改成键值对形式,这是AWS_PROXY集成要求的参数映射格式 - 将响应体覆盖的目标参数改为
overwrite:body,对应空字符串的Source值即可返回空响应体 - Content-Type头的覆盖也调整为键值对形式,更符合该集成类型的配置规范
内容的提问来源于stack exchange,提问作者Subham
相关产品推荐
相关产品推荐

