Php Amazon AWS SNS SMS的交付状态具有随机日志流
我正在使用Amazon的php sdk 我使用亚马逊SNS服务直接发送短信。当我从php应用程序发送短信时,它会给我一个消息ID 我必须跟踪每封邮件的传递状态。我已使用Php Amazon AWS SNS SMS的交付状态具有随机日志流,php,amazon-web-services,amazon-sns,Php,Amazon Web Services,Amazon Sns,我正在使用Amazon的php sdk 我使用亚马逊SNS服务直接发送短信。当我从php应用程序发送短信时,它会给我一个消息ID 我必须跟踪每封邮件的传递状态。我已使用管理文本消息首选项设置为文本消息启用了云监视日志。IAM角色已正确配置,日志在Cloudwatch中结束 现在我面临的问题是,系统为我发送的每条消息创建一个随机日志流 这是一个屏幕截图 我已经发送了六条消息,所有消息都成功了(我将它们发送给我自己)。对于每条消息,都存在一个日志流 API提供了一个函数,可以根据LogGroupN
管理文本消息首选项
设置为文本消息
启用了云监视日志。IAM角色已正确配置,日志在Cloudwatch中结束
现在我面临的问题是,系统为我发送的每条消息创建一个随机日志流
这是一个屏幕截图
我已经发送了六条消息,所有消息都成功了(我将它们发送给我自己)。对于每条消息,都存在一个日志流
API提供了一个函数,可以根据LogGroupName和LogGroupStream获取日志。LogGroupName保持不变,但每个消息的LogGroupStream都不同
这是sdk调用
$result = $client->getLogEvents([
'endTime' => <integer>,
'limit' => <integer>,
'logGroupName' => '<string>', // REQUIRED
'logStreamName' => '<string>', // REQUIRED
'nextToken' => '<string>',
'startFromHead' => true || false,
'startTime' => <integer>,
]);
$result=$client->getLogEvents([
'结束时间'=>,
“限制”=>,
'logGroupName'=>'',//必需
'logStreamName'=>'',//必需
“nextToken'=>”,
“startFromHead”=>真| |假,
“开始时间”=>,
]);
我该如何获取日志?有没有一种方法可以告诉amazon将所有短信发送记录到一个日志流中。因此我知道该流并可以查询日志。您可以使用CloudWatch LogsClient中的FilterLogEvents方法:
$result = $client->filterLogEvents(array(
'logGroupName' => 'string', //Required
'startTime' => integer,
'endTime' => integer,
'filterPattern' => 'string',
'nextToken' => 'string',
'limit' => integer,
'interleaved' => true || false));
参考:带查询:
$result = $CloudWatchclient->startQuery([
'endTime' => strtotime("+5 minutes", strtotime($creation_date)) * 1000,
'limit' => 1,
'logGroupName' => '.....DirectPublishToPhoneNumber',
'queryString' => 'field @message like /'.$awsmessageid.'/',
'startTime' => strtotime($creation_date)*1000,
]);
$queryid = $result->get('queryId');
sleep(2);
$result = $CloudWatchclient->getQueryResults([
'queryId' => $queryid, // REQUIRED
]);
$result = $result->get('results');
结果包含sms数据成功的事件日志您是说您不知道由于发送特定消息而创建的日志流名称吗?@MattS我想说没有办法知道日志流名称,因为日志流是随机创建的。至少我是这么想的。