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)並自己查找信息。 –