Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何验证消息是否在AWS SNS中传递?_Node.js_Amazon Web Services_Aws Lambda - Fatal编程技术网

Node.js 如何验证消息是否在AWS SNS中传递?

Node.js 如何验证消息是否在AWS SNS中传递?,node.js,amazon-web-services,aws-lambda,Node.js,Amazon Web Services,Aws Lambda,这是我的lambda函数。仅返回消息id和请求id。但是如何验证消息是否已传递 const AWS = require('aws-sdk'); AWS.config.update({ accessKeyId: 'xxxx', secretAccessKey: 'xxxx', region: 'xxxx' }); c

这是我的lambda函数。仅返回消息id和请求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\"}",
如果在主题上启用,则可以使用邮件ID字段跟踪已发布邮件的传递状态

配置邮件传递状态属性后,记录 对于发送到主题的消息,条目将被发送到CloudWatch日志 订阅了Amazon SNS端点。记录邮件传递状态 有助于提供更好的操作洞察力,例如:

  • 了解消息是否已传递到Amazon SNS端点

  • 识别从Amazon SNS端点发送到Amazon SNS的响应

  • 确定消息驻留时间(发布时间戳与发送到Amazon SNS端点之前的时间)

您可以查看本文,使用消息ID查找传递状态

顺便说一句,我不建议签入相同的lambda,只建议配置云监视日志和过滤失败主题。这里将是流动

  • 启用主题的传递状态日志
  • 为失败主题在云监视上配置筛选器
  • 如果交付状态失败,则触发lambda
  • 在lambda中处理失败的SNS主题

  • 您也可能喜欢AWS提供的SNS。

    您可以启用SNS死信队列来捕获无法传递给订阅者的消息:


    请帮助我解决这个问题