如何解决AWS::ApiGatewayV2::Integration 如何在 CloudFormation 中使用 MessageAttributes
我已经尝试了在 CloudFormation 文档中使用 MessageAttributes 的几种变体,但我无法让它工作。这就是我所拥有的:
HttpApiSqsIntegration:
Type: AWS::ApiGatewayV2::Integration
Properties:
ApiId: !Ref HttpApiRef
CredentialsArn: !GetAtt MyHttpApiRole.Arn
IntegrationType: AWS_PROXY
IntegrationSubtype: SQS-SendMessage
RequestParameters:
QueueUrl: !Ref InputMessageSqs
MessageBody: $request.body
MessageAttributes.entry.1.Name: foo
MessageAttributes.entry.1.Value.StringValue: bar
MessageAttributes.entry.1.Value.DataType: String
PayloadFormatVersion: "1.0"
我遵循指定的 here、here 和 here 格式,但出现以下错误消息:
Parameter: MessageAttributes.entry.1.Name does not fit schema for Operation:
SQS-SendMessage. (Service: AmazonApiGatewayV2; Status Code: 400;
Error Code: BadRequestException; Request ID: ...; Proxy: null)
感谢任何帮助。谢谢。
解决方法
您遵循了错误的规范。 Here 是正确的。
RequestParameters 对于 WebSocket API,一个键值映射指定 从方法请求传递给方法的请求参数 后端。关键是集成请求参数名称和 关联值是方法请求参数值或静态值 必须用单引号括起来并根据需要进行预编码 通过后端。方法请求参数值必须匹配 method.request.{location}.{name} 的模式,其中 {location} 是 查询字符串、路径或标题;并且 {name} 必须是有效且唯一的 方法请求参数名。
对于具有指定 integrationSubtype 的 HTTP API 集成,请求 参数是一个键值映射,指定传递的参数 到 AWS_PROXY 集成。您可以提供静态值或映射 请求被评估的数据、阶段变量或上下文变量 在运行时。要了解更多信息,请参阅使用 AWS 服务集成 用于 HTTP API。
对于没有指定 integrationSubtype 的 HTTP API 集成
请求参数是一个键值映射,指定如何转换
在将 HTTP 请求发送到后端之前。关键应该
遵循模式:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。