실패한 Amazon SNS 푸시 알림 전송 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 3월 19일

Amazon Simple Notification Service(Amazon SNS) 푸시 알림의 전송 상태는 어떻게 확인하며, 일부 알림에 실패하는 이유를 확인하려면 어떻게 해야 합니까?

간략한 설명

플랫폼 애플리케이션에 대한 Amazon SNS 전송 상태 로깅을 활성화하면 전송 성공 및 실패를 비롯하여 Amazon CloudWatch Logs에 푸시 트랜잭션을 로깅합니다.

해결 방법

전송 상태 로깅 켜기

  1. Amazon SNS 콘솔을 엽니다.
  2. 왼쪽 탐색 메뉴에서 [Mobile]을 확장하고 [Push notifications]를 선택합니다.
  3. [Platform applications]에서 전송 상태를 활성화하려는 플랫폼 애플리케이션을 선택하고 [Edit]를 선택합니다.
  4. [Delivery status logging – optional]을 확장하고 [Create new service role]을 선택합니다.
  5. [Create new roles]를 선택합니다. AWS Identity and Access Management(IAM) 콘솔은 새 탭이나 창에서 열립니다.
  6. IAM 콘솔 권한 요청 페이지에서 [Allow]를 선택합니다.
  7. [Save changes]를 선택합니다.

참고: 또한 AWS SDKAWS 명령줄 인터페이스(AWS CLI)를 사용하여 전송 상태를 활성화할 수도 있습니다.

전송 상태 로그 보기

  1. CloudWatch 콘솔을 엽니다.
  2. 왼쪽 탐색 창에서 [Logs]를 선택합니다.
  3. [Log Groups]에서 애플리케이션의 전송 상태 로그를 찾습니다.

메시지 전송 상태 로그는 엔드포인트에 메시지를 게시할 때까지 사용할 수 없습니다. 푸시 알림의 경우 Amazon SNS가 제공자에게 메시지를 전송한 경우 게시에 성공합니다. 그러나 이러한 전송은 디바이스로 알림을 전송한다고 보장하지는 않습니다.

애플리케이션 유형에 따라 두 개 로그 그룹(성공한 알림 및 실패한 알림에 대해 하나씩)을 볼 수 있습니다. FCM(Firebase Cloud Messaging) 및 APN(Apple Push Notification) 서비스에 대한 로그는 다음 예와 같은 이름의 로그 그룹에 있습니다.

sns/us-east-1/123456789012/app/platform_name/application_name/

전송에 실패한 경우 "Failure"가 로그 항목에 추가됩니다. 예:

sns/us-east-1/123456789012/app/platform_name/application_name/Failure

일부 로그 세부 정보에는 messageId, statusCode, 걸린 시간(dwellTimeMs), 대상 엔드포인트(destination) 및 providerResponse가 있습니다. 예를 들어, Amazon SNS 메시지 전송 상태 CloudWatch Log 예를 참조하십시오.

알림 실패 문제 해결

공급자 서비스(예: FCM 또는 APN)에 대한 statusCode를 찾습니다. 공급자의 정확한 응답 메시지는 providerResponse를 확인합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?