푸시 알림에 대한 Amazon Simple Notification Service(Amazon SNS) 주제 전송 로그에 액세스하고 싶습니다.
간략한 설명
다음 단계를 완료하기 전에 알림 메시지의 로그 전달 상태에 Amazon SNS가 지원하는 SNS 엔드포인트를 사용하고 있는지 확인합니다.
- HTTP 및 HTTPS
- Amazon Kinesis Data Firehose
- AWS Lambda
- 플랫폼 애플리케이션 엔드포인트
- Amazon Simple Queue Service(Amazon SQS)
- SMS
참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.
해결 방법
Amazon CloudWatch 로그에 대한 푸시 알림 전송 상태 속성 구성
참고: 다음 콘솔 단계 대신 AWS SDK 또는 AWS CLI를 사용하여 메시지 전송 상태를 구성할 수 있습니다.
1. Amazon SNS 콘솔을 엽니다.
2. 탐색 메뉴에서 [모바일(Mobile)]을 확장하고 [푸시 알림(Push notifications)]을 선택합니다.
3. [플랫폼 애플리케이션(Platform applications)] 섹션에서 전송 상태를 지정할 플랫폼 애플리케이션을 선택합니다.
4. **편집(Edit)**을 선택합니다.
5. [전송 상태 로깅 – 선택 사항(Delivery status logging – optional)]을 확장합니다.
6. [성공 샘플 비율(Success sample rate)]에서 [%] 텍스트 상자에 [100]을 입력합니다.
7. [IAM 역할(IAM roles)] 섹션에서 [서비스(Service)] 역할에 [새 서비스 역할 생성(Create new service role)]을 선택한 다음 [새 역할 생성(Create new roles)]을 선택합니다. AWS Identity and Access Management(IAM) 콘솔을 엽니다.
참고: 올바른 권한을 가진 IAM 역할이 이미 있는 경우 대신 [기존 서비스 역할 사용(Use existing service role)]을 선택하여 해당 서비스 역할을 사용할 수 있습니다.
8. IAM 콘솔 권한 요청 페이지에서 [허용(Allow)]을 선택합니다.
9. Amazon SNS 콘솔로 돌아간 후 [변경 사항 저장(Save changes)]을 선택합니다.
이제 Amazon SNS에 대한 다음 정책 및 신뢰 관계를 통해 성공적인 전송 및 실패를 위해 IAM 역할이 생성됩니다. 다음 예제를 참조하세요.
성공적인 전송에 대한 IAM 역할:
arn:aws:iam::1111111111:role/SNSSuccessFeedback
실패한 전송에 대한 IAM 역할:
arn:aws:iam::1111111111:role/SNSFailureFeedback
정책:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:PutMetricFilter",
"logs:PutRetentionPolicy"
],
"Resource": [
"*"
]
}
]
}
신뢰 관계:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
전송 상태 로그 보기
1. Amazon CloudWatch 콘솔을 엽니다.
2. 탐색 창에서 [로그(Logs)]를 확장하고 [로그 그룹(Log groups)]을 선택합니다.
3. [필터(Filter)] 검색 상자에 sns를 입력하여 Amazon SNS에 대한 로그 그룹만 검색합니다.
sns/your-AWS-region/your-account_ID/app/platform_name/application_name 로그 그룹에 성공적인 전송 로그가 포함되어 있습니다.
sns/us-east-1/1111111111/app/GCM/Test1
sns/us-east-1/1111111111/app/APNS_SANDBOX/Test2
sns/us-east-1/1111111111/app/APNS/Test3
sns/your-AWS-region/your-account_ID/app/platform_name/application_name**/Failure** 로그 그룹에 실패 전송 로그가 포함되어 있습니다.
sns/us-east-1/1111111111/app/GCM/Test1/Failure
sns/us-east-1/1111111111/app/APNS_SANDBOX/Test2/Failure
sns/us-east-1/1111111111/app/APNS/Test3/Failure
4. 보려는 Amazon SNS 로그 그룹을 선택합니다.
5. [로그 스트림(Log streams)] 탭에서 특정 로그 스트림을 선택하여 애플리케이션 엔드포인트 전송 로그를 봅니다.
다음을 고려합니다.
- CloudWatch Logs의 스트림에는 접두사를 추가할 수 없습니다.
- Amazon SNS의 기본 로그 그룹 이름은 직접 변경할 수 없습니다.
- 알림 콘텐츠는 CloudWatch Logs에 기록되지 않습니다. 즉, SNS 주제 전송 로그는 알림 콘텐츠를 CloudWatch에 기록하지 않고 CloudWatch에 메타데이터만 기록합니다.
- SMS 및 플랫폼 애플리케이션 엔드포인트가 있는 SNS 주제에 게시하는 경우 해당 로그 그룹의 이러한 엔드포인트에 대한 전송 상태 로그가 계속 채워집니다.
알림 실패 문제 해결
공급자 서비스(예: FCM 또는 APN)에 대한 statusCode를 찾습니다. 공급자의 정확한 응답 메시지는 providerResponse를 확인합니다.
푸시 알림 서비스 응답 코드 목록은 플랫폼 응답 코드를 참조하세요.
관련 정보
모바일 앱 속성