这是我的lambda函数。仅返回message-id和request-id。但是如何验证邮件是否传递?
const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: 'xxxx',
secretAccessKey: 'xxxx',
region: 'xxxx'
});
const mobile = 'xxxxxxx';
const sns = new AWS.SNS();
const confirmUpload = (callback) => {
sns.publish({
Message: 'Test From Admin side',
Subject: 'Admin',
MessageStructure: 'string',
PhoneNumber: mobile
}, (err, result) => {
if (err) callback(false, err);
else callback(true, result);
});
};
exports.handler = (event,context, callback) => {
confirmUpload((st, data) =>{
if(st){
let record = {
"data": JSON.stringify(data),
"event": event,
"context": context
};
callback(null, (record));
} else{
callback(data, "not send");
}
});
};
这是运行lambda函数时的响应
"{\"ResponseMetadata\":{\"RequestId\":\"e8a07b26-d793-58e1-a529-2d7ac17aca9x\"},\"MessageId\":\"b8ecbcac-9f83-5bca-a9eb-eaf0896a69b\"}",
答案 0 :(得分:4)
如果在主题上启用delivery status feature,则可以使用消息ID字段来跟踪已发布消息的传递状态。
配置邮件传递状态属性后,登录 条目将发送到CloudWatch Logs,以获取发送给主题的消息 订阅了Amazon SNS终端节点。记录邮件传递状态 有助于提供更好的运营洞察力,例如:
了解消息是否已传递到Amazon SNS终端节点。
标识从Amazon SNS终端节点发送到Amazon SNS的响应。
确定消息的停留时间(从发布时间戳记到移交给Amazon SNS端点之前的时间)。
Configuring Delivery Status Logging Using the AWS Management Console
您可以查看本文以使用消息ID查找发送状态
using-the-delivery-status-feature-of-amazon-sns
顺便说一句,我不建议签入同一lambda,而仅配置云监视日志和过滤器失败主题。这将是流
您可能还喜欢SLA来使用AWS的SNS。
答案 1 :(得分:0)