В нашем приложении мы ДОЛЖНЫ использовать прямую отправку сообщений на устройства. Чтобы иметь возможность отслеживать неудачную доставку сообщения, мы прикрепляем пользовательский идентификатор трассировки журнала к запросу publi sh и передаем его в AWS SNS. Также в «Платформенном приложении» мы настроили «Событие DeliveryFailure», которое указывает на SNS topi c, и этот SNS topi c имеет одну подписку HTTP на нашу веб-службу.
Когда наша веб-служба получает событие «DeliveryFailure», существуют только свойства «MessageId» и «TopicArn», но настраиваемые атрибуты, переданные с запросом publi sh, не существуют. Таким образом, восстановить ссылку между нашим идентификатором трассировки журнала и полученным «событием DeliveryFailure» невозможно. Мы не можем сохранить «MessageId» сразу после отправки сообщения в SNS по причинам производительности.
AWS в документации рекомендуется использовать «очередь недоставленных сообщений», но это тоже не для нас, потому что мы ДОЛЖНЫ использовать «прямую отправку сообщений», а «очередь недоставленных сообщений» работает только с «Topi c» и подписка ». Отслеживание журнала Cloud Watch по коду тоже плохо нам по производительности. Может быть, существует способ передавать и получать настраиваемую информацию для каждого опубликованного сообщения или даже лучший способ отслеживать сбои доставки сообщений?