Конечная точка Amazon SNS отключается в php. Но когда я регистрирую ответ, я получаю статус конечной точки как включенный

Я сталкиваюсь с проблемой отключения конечной точки SNS, когда я звоню на сервер SNS. Для отладки я добавил логи. В логах он показывает true, а в Amazon SNS — false. Пожалуйста, помогите мне, как справиться с ситуациями

Ниже приведен код, который я пишу для установки атрибутов конечной точки.

$enable_end_point = $client->setEndpointAttributes(array(
'Endpoenter code hereintArn' => $pushlist[$i]['aws'],
'Attributes' => array(
'Enabled' => 'true'
)`enter code here`
));

Журнал ответа я получаю с сервера Amazon SNS

data: get paramsGuzzle\Service\Resource\Model Object(
[structure:protected] =>
[data:protected] => Array
(
[Attributes] => Array(
[Enabled] => true
[Token] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
)

[ResponseMetadata] => Array(
[RequestId] => 1ef66366-6dc3-549a-8d38-2d4a5axxxxx
)

)
)

Публикация уведомления

$result = $client->publish(array(
'TargetArn' => $pushlist[$i]['aws'],
'Message' => $msg_json,
'Subject' => 'New xxxxx',
'MessageStructure' => 'json',
));

Опубликовать журнал:

data: publish resultGuzzle\Service\Resource\Model Object
(
[structure:protected] =>
[data:protected] => Array
(
[MessageId] => 5bbeb85f-75e7-5967-a55a-f673424xxxxx
[ResponseMetadata] => Array
(
[RequestId] => 5c7f3df2-ff65-5bb5-a74a-73dec8cxxxxx
)

)
)

После публикации я проверяю состояние конечной точки через логи

data: get params after publishGuzzle\Service\Resource\Model Object
(
[structure:protected] =>
[data:protected] => Array
(
[Attributes] => Array
(
[Enabled] => true
[Token] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
)
[ResponseMetadata] => Array
(
[RequestId] => f3bdbb0d-9666-5b38-84a0-f521a1cxxxxx
)

)
)

В ответе выше я получаю статус конечной точки как истина. Но я не получаю никаких push-уведомлений, и на Amazon статус SNS отображается как false.

С Уважением,

Vamsi

3

Решение

Я думаю, что вы отправляли атрибуты с Enabled как true,

$enable_end_point = $client->setEndpointAttributes(array(
'Endpoenter code hereintArn' => $pushlist[$i]['aws'],
'Attributes' => array(
'Enabled' => 'true'
)
));

Это то, что вы получаете как истинное в журнале, а фактическое ложно в приложении AWS SNS.

Пожалуйста, попробуйте это, чтобы найти, что arn включен состояние false или true.

$endpointAtt = $sns->getEndpointAttributes($arn_arr);
Log::info($endpointAtt['Attributes']);
if($endpointAtt != 'failed' && $endpointAtt['Attributes']['Enabled'] != 'false') {
// Code here
}
1

Другие решения

Других решений пока нет …