【问题标题】:Setting dataType JSON in aws-sdk for sqs在 aws-sdk 中为 sqs 设置 dataType JSON
【发布时间】:2021-06-03 06:50:17
【问题描述】:

我只是尝试使用 aws-sdk npm 包将 json 对象发送到 sqs 队列。

const sqsMessage = {
    MessageAttributes: {
        "data": {
            DataType: "String",
            StringValue: payload.data
        }

    },
    MessageBody: JSON.stringify(payload),
    QueueUrl: queueUrl

如果我在数据属性中传递 json 对象,它会告诉它预期的字符串,如果我添加 Json,那么它也会引发关于类型的错误,有人知道解决方法或使用什么来获取 json?

我发现了一些有用的链接,

1)https://blog.chrismitchellonline.com/posts/aws-sqs-message-with-attributes/

  1. https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-send-message.html

非常感谢有关此方面的一些指导

【问题讨论】:

    标签: javascript json aws-sdk


    【解决方案1】:

    您能否分享您收到的错误消息。你能给我们展示一个你正在构建的payload 的例子吗?基本上,dataType 的允许值可以在这里找到:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_MessageAttributeValue.html

    具体来说,这部分:“Amazon SQS 支持以下逻辑数据类型:String、Number 和 Binary。对于 Number 数据类型,您必须使用 StringValue。”

    因此,在为您的键 MessageBody 构造值时,您希望使用 JSON。所以类型必须是 string 和你的值,它必须是有效的 JSON,它实际上是一个字符串,并且内部引号被转义。例如,像这样的:

    "{\"foo\": \"bar\"}"
    

    我在goLang 中编写单元测试时遇到了同样的问题,它可以工作。我知道这是 11 个月后的事了,但希望这对您或将来的其他人有所帮助 :)

    【讨论】:

      猜你喜欢
      • 2017-01-09
      • 2021-03-31
      • 2013-01-15
      • 2018-03-16
      • 2016-09-03
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      相关资源
      最近更新 更多