gpt4 book ai didi

amazon-web-services - AWS api网关与AWS SQS集成的消息属性具体格式是什么?

转载 作者:行者123 更新时间:2023-12-04 03:40:30 26 4
gpt4 key购买 nike

场景:

我想要一个将 HTTP POST 调用请求正文转发到 AWS SQS 服务的 AWS API 网关路由。我使用 API 网关的新 AWS 控制台界面和 Amazon Simple Queue Service 作为集成目标成功地做到了这一点。

现在,问题是我想将特定请求 header 值作为消息属性发送到 SQS,但控制台中可接受的格式非常模糊!

我尝试了我能找到的文档、主题和书籍中的任何内容,甚至尝试了其他服务值格式中的一些类似符号,但没有任何效果。

当我尝试像下面这样为 Message 属性设置不同的值时,它开始返回 400 错误状态代码以响应之前有效的 HTTP 请求。

我只想将请求 header 连同请求正文发送到 SQS,这样我就有了存储在请求 header 中的基本数据来处理消息。

尝试值:

 - $request.header.valueX
- {"somename":"$request.header.valueX"}
- {"Name":"somename","Value":{"DataType":"String","StringValue":"$request.header.valueX"}}

在 SQS 的 API 网关集成中消息属性(可选)高级设置的 AWS 控制台不接受上述格式。

我找不到任何适合消息属性的值格式。

非常感谢

AWS API Gateway console for SQS integration

更新:

我尝试了一个对我有用的解决方案:

因为我可以控制服务的客户端,所以我使用以下格式的值定义了一个新的自定义 header (sample1):

{"CUSTOM-ATTRIBUTE-NAME": {"DataType": "String", "StringValue": "CUSTOM-ATTRIBUTE-VALUE"}}

在 API Gateway 的 SQS 集成页面的消息属性 - 可选中,我将值设置为$request.header.sample1

custom-attribute-name 将是 SQS 消息属性名称,CUSTOM-ATTRIBUTE-VALUE 将是值。

现在,当我收到来自 SQS 的消息时,我在消息属性中同时拥有完整的请求消息正文和我的自定义 header 。

最佳答案

晚了一年......但我刚刚在消息属性字段中使用了这个语法:

{
"product":
{
"DataType":"String",
"StringValue":"${request.path.product}"
}
}

AWS Console

Resulting SQS message

关于amazon-web-services - AWS api网关与AWS SQS集成的消息属性具体格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66132915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com