1

我是Aws新手,我使用Aws SNS发送通知,我将通知发送给不同的主题而不是终端。这是完美的。AWS SNS交付状态

当我publish通知,我得到了阵列状

object(Aws\Result)#84 (1) { 
    ["data":"Aws\Result":private]=> 
     array(2) { 
     ["MessageId"]=> 
     string(36) "************-7a29-591f-8765-************" 
     ["@metadata"]=> 
     array(4) { 
     ["statusCode"]=> 
     int(200) 
     ["effectiveUri"]=> 
     string(40) "https://sns.ap-southeast-1.amazonaws.com" 
     ["headers"]=> 
     array(4) { 
      ["x-amzn-requestid"]=> 
      string(36) "************-b737-5831-abf4-************" 
      ["content-type"]=> 
      string(8) "text/xml" 
      ["content-length"]=> 
      string(3) "294" 
      ["date"]=> 
      string(29) "Fri, 28 Oct 2016 08:59:05 GMT" 
     } 
     ["transferStats"]=> 
      array(1) { 
       ["http"]=> 
       array(1) { 
       [0]=> 
       array(0) {} 
      } 
     } 
    } 
} 

我使用PHP在服务器端, 我怎样才能通过这个message id所有受助的通知传送状态?

感谢Anticipants。

回答

1

您在询问如何获取通知发送状态通过Amazon SNS发送的消息。

Using Amazon SNS Topic Attributes for Message Delivery Status文件说:

亚马逊SNS提供日志发送到主题有以下亚马逊SNS端点通知消息的交货状态支持:

  • 应用
  • HTTP
  • Lambda
  • SQS

在配置的消息送达状态属性,日志条目将被发送到CloudWatch的日志发送到订阅亚马逊SNS端点的主题的消息。

我找不到请求状态的特定API调用message_id。相反,它似乎将日志记录信息发送到CloudWatch Logs。您需要解析日志以发现状态。

+0

我的终端是'应用程序',我提到日志正在生成,但是如何获取通过'message_id'发送给主题的通知消息的传递状态?有没有其他方法可以找出答案? –

+0

也可以告诉我,CloudWatch中是否有任何过期/日志的有效期?或者它永远可用? –

+0

CloudWatch日志保留至明确删除。没有方法通过'message_id'获取日志 - 您需要通过[getLogEvents()]以编程方式解析日志(http://docs.aws.amazon.com/aws-sdk-php/v3/api/ api-logs-2014-03-28.html#getlogevents)并自己查找信息。 –