AWS SNS - 我应该如何发送消息数据,MessageAttributes?
AWS SNS - how should I be sending message data, MessageAttributes?
我正在构建一个应用程序,使客户能够与服务提供商进行预约。我正在使用 SNS -> SQS -> Lambda 来处理预约时需要发送的各种电子邮件。 IE 我目前像这样发送 SNS 消息(在 node.js):
await sns.publish({
Message: 'booking-request',
TopicArn: process.env.AWS_BOOKING_REQUEST_TOPIC_ARN,
MessageAttributes: {
artistEmail: SNSMF.string(artist.email),
artistName: SNSMF.string(artist.name),
clientEmail: SNSMF.string(req.body.email),
clientName: SNSMF.string(`${req.body.firstName} ${req.body.lastName}`),
date: SNSMF.string(moment(req.body.date).tz(studio.timeZone).format())
}
}).promise();
一切正常,但我正在使用 MessageAttributes
传递相关的约会详细信息,以便我的通知层可以发送正确的电子邮件。
我的主要问题是,我是否以正确的方式使用 MessageAttributes,或者是否有更好的方式来传递所有这些数据?数据应该是消息本身吗?我问是因为我相信你只能有 10 个 MessageAttributes 并且我将 运行 限制为约会详细信息(目前收集关于约会的大约 10-12 个数据点,我想将其包含在电子邮件中).有任何想法吗?谢谢!
通常,您要传递的 'main' 信息会在消息的 Body
中。使用 JSON 来传递各种类型的信息是很常见的。
MessageAttributes
通常是 消息本身 而不是消息的 内容 ,例如时间戳、优先级和用户信息。
鉴于您的要求,我将您的数据放在 Body
中(例如 JSON 中)将避免达到限制并且也更具可扩展性。
我正在构建一个应用程序,使客户能够与服务提供商进行预约。我正在使用 SNS -> SQS -> Lambda 来处理预约时需要发送的各种电子邮件。 IE 我目前像这样发送 SNS 消息(在 node.js):
await sns.publish({
Message: 'booking-request',
TopicArn: process.env.AWS_BOOKING_REQUEST_TOPIC_ARN,
MessageAttributes: {
artistEmail: SNSMF.string(artist.email),
artistName: SNSMF.string(artist.name),
clientEmail: SNSMF.string(req.body.email),
clientName: SNSMF.string(`${req.body.firstName} ${req.body.lastName}`),
date: SNSMF.string(moment(req.body.date).tz(studio.timeZone).format())
}
}).promise();
一切正常,但我正在使用 MessageAttributes
传递相关的约会详细信息,以便我的通知层可以发送正确的电子邮件。
我的主要问题是,我是否以正确的方式使用 MessageAttributes,或者是否有更好的方式来传递所有这些数据?数据应该是消息本身吗?我问是因为我相信你只能有 10 个 MessageAttributes 并且我将 运行 限制为约会详细信息(目前收集关于约会的大约 10-12 个数据点,我想将其包含在电子邮件中).有任何想法吗?谢谢!
通常,您要传递的 'main' 信息会在消息的 Body
中。使用 JSON 来传递各种类型的信息是很常见的。
MessageAttributes
通常是 消息本身 而不是消息的 内容 ,例如时间戳、优先级和用户信息。
鉴于您的要求,我将您的数据放在 Body
中(例如 JSON 中)将避免达到限制并且也更具可扩展性。