amazon-web-services - AWS EventBridge putEvents 不接受详细 JSON 数组
问题描述
我正在使用 AWS 开发工具包v2.796.0
根据 putEvents 的文档,Detail 值需要是有效的 JSON 字符串。 https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEventsRequestEntry.html
但是,它不接受 JSON 数组作为字符串。
const eventBridge = new AWS.EventBridge();
const entries = {
Entries: [
{
EventBusName: "busName",
Source: "api.user",
DetailType: "detailType",
Detail: JSON.stringify({ test: { test: ["test", "test2"] } }),
},
],
};
const rs = await eventBridge.putEvents(entries).promise();
console.log(rs);
// this passes
// {
// FailedEntryCount: 0,
// Entries: [ { EventId: 'a6176012-7310-2b84-a9b5-819956e2e3f9' } ]
// }
const entries2 = {
Entries: [
{
EventBusName: "busName",
Source: "api.user",
DetailType: "detailType",
Detail: JSON.stringify([{ test: "test" }]),
},
],
};
const rs2 = await eventBridge.putEvents(entries2).promise();
console.log(rs2);
// this fails
// {
// FailedEntryCount: 1,
// Entries: [
// {
// ErrorCode: 'MalformedDetail',
// ErrorMessage: 'Detail is malformed.'
// }
// ]
// }
这是预期的吗?有没有办法详细使用数组?
解决方案
发生这种情况是因为您在您的列表中使用entries2
:
Detail: JSON.stringify([{ test: "test" }]),
如果您只使用对象,它将起作用:
Detail: JSON.stringify({ test: "test" }),
推荐阅读
- spring - Mongo DB连接没有关闭,同时使用反应弹簧启动无限流
- spring-boot - 弹簧靴。如何保护某些页面而不是所有页面
- python - Word count sorting in MapReduce Python using yarn comparator
- javascript - Greensock - DrawSVG
- c# - 将 Json 反序列化为数组类型属性
- javascript - TypeError: Cannot read property 'minify' of undefined in Nuxt.js
- android - OSM 的边界框像素坐标
- python - 尝试多进程时如何修复“TypeError:无法序列化'_io.BufferedReader'对象”错误
- javascript - 在 Azure Functions 中共享 SFTP 连接
- svn - Tortoise SVN 无法连接