구독에 대한 Amazon SNS 데드 레터 대기열 구성 - Amazon Simple Notification Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

구독에 대한 Amazon SNS 데드 레터 대기열 구성

데드 레터 대기열은 구독자에게 성공적으로 전달할 수 없는 메시지에 대해 Amazon SNS 구독이 대상으로 지정할 수 있는 Amazon SQS 대기열입니다. 클라이언트 오류 또는 서버 오류로 인해 배달할 수 없는 메시지는 추가 분석 또는 재처리를 위해 배달 못한 편지 대기열에 보관됩니다. 자세한 내용은 Amazon SNS 데드 레터 대기열Amazon SNS 메시지 전송 재시도 단원을 참조하세요.

이 페이지에서는 AWS Management Console, AWS SDK, AWS CLI및 를 사용하여 Amazon SNS 구독에 대한 데드 레터 대기열을 AWS CloudFormation 구성하는 방법을 보여줍니다.

참고

FIFO 주제 의 경우 Amazon SQS 대기열을 Amazon SNS 구독의 데드 레터 대기열로 사용할 수 있습니다. FIFO 주제 구독은 FIFO 대기열을 사용하고 표준 주제 구독은 표준 대기열을 사용합니다.

사전 조건

배달 못한 편지 대기열을 구성하려면 먼저 다음 사전 조건을 완료합니다.

  1. 라는 Amazon SNS 주제를 생성합니다MyTopic.

  2. Amazon SNS 구독의 엔드포인트로 MyEndpoint사용할 라는 Amazon SQS 대기열을 생성합니다.

  3. (에 대해 건너뛰기 AWS CloudFormation) 주제 에 대한 대기열을 구독합니다.

  4. Amazon SNS 구독의 데드 레터 SQS 대기열로 사용할 라는 다른 Amazon 대기열을 생성합니다. MyDeadLetterQueue

  5. Amazon SNS 보안 주체에게 Amazon SQS API 작업에 대한 액세스 권한을 부여하려면 에 대해 다음 대기열 정책을 설정합니다MyDeadLetterQueue.

    { "Statement": [{ "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-2:123456789012:MyTopic" } } }] }

를 사용하여 Amazon SNS 구독에 대한 데드 레터 대기열을 구성하려면 AWS Management Console

이 자습서를 시작하기 전에 사전 조건을 완료해야 합니다.

  1. Amazon SQS 콘솔 에 로그인합니다.

  2. Amazon SQS 대기열을 생성하거나 기존 대기열을 사용하고 대기열ARN의 세부 정보 탭에 대기열의 를 기록해 둡니다. 예:

    arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
  3. Amazon SNS 콘솔 에 로그인합니다.

  4. 탐색 창에서 구독을 선택합니다.

  5. [구독] 페이지에서 기존 구독을 선택한 다음 [편집]을 선택합니다.

  6. 편집 1234a567-bc89-012d-3e45-6fg7h890123i 페이지에서 Redrive 정책(dead-letter queue) 섹션을 확장한 다음 다음을 수행합니다.

    1. 활성을 선택합니다.

    2. Amazon SQS 대기열ARN의 를 지정합니다.

  7. Save changes(변경 사항 저장)를 선택합니다.

    구독이 배달 못한 편지 대기열을 사용하도록 구성됩니다.

를 사용하여 Amazon SNS 구독에 대한 데드 레터 대기열을 구성하려면 AWS SDK

이 예제를 실행하기 전에 사전 조건을 완료해야 합니다.

를 사용하려면 자격 증명으로 구성 AWS SDK해야 합니다. 자세한 내용은 및 AWS SDKs 도구 참조 가이드공유 구성 및 보안 인증 파일을 참조하세요.

다음 코드 예시에서는 SetSubscriptionAttributesRedrivePolicy을 사용하는 방법을 보여 줍니다.

Java
SDK Java 1.x용
참고

에 대한 자세한 내용은 를 참조하세요 GitHub. AWS 코드 예시 리포지토리에서 전체 예시를 찾고 설정 및 실행하는 방법을 배워보세요.

// Specify the ARN of the Amazon SNS subscription. String subscriptionArn = "arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i"; // Specify the ARN of the Amazon SQS queue to use as a dead-letter queue. String redrivePolicy = "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"; // Set the specified Amazon SQS queue as a dead-letter queue // of the specified Amazon SNS subscription by setting the RedrivePolicy attribute. SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest() .withSubscriptionArn(subscriptionArn) .withAttributeName("RedrivePolicy") .withAttributeValue(redrivePolicy); sns.setSubscriptionAttributes(request);

를 사용하여 Amazon SNS 구독에 대한 데드 레터 대기열을 구성하려면 AWS CLI

이 자습서를 시작하기 전에 사전 조건을 완료해야 합니다.

  1. AWS CLI를 설치하고 구성합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

  2. 다음 명령을 사용합니다.

    aws sns set-subscription-attributes \ --subscription-arn arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i --attribute-name RedrivePolicy --attribute-value "{\"deadLetterTargetArn\": \"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"

를 사용하여 Amazon SNS 구독에 대한 데드 레터 대기열을 구성하려면 AWS CloudFormation

이 자습서를 시작하기 전에 사전 조건을 완료해야 합니다.

  1. 다음 JSON 코드를 라는 파일에 복사합니다MyDeadLetterQueue.json.

    { "Resources": { "mySubscription": { "Type" : "AWS::SNS::Subscription", "Properties" : { "Protocol": "sqs", "Endpoint": "arn:aws:sqs:us-east-2:123456789012:MyEndpoint", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "RedrivePolicy": { "deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue" } } } } }
  2. AWS CloudFormation 콘솔에 로그인합니다.

  3. [Select Template] 페이지에서 [Upload a template to Amazon S3]를 선택하고, MyDeadLetterQueue.json 파일을 선택하고 나서 [Next]를 선택합니다.

  4. 세부 정보 지정 페이지에서 스택 이름MyDeadLetterQueue를 입력한 후 다음을 선택합니다.

  5. 옵션 페이지에서 다음을 선택합니다.

  6. 검토(Review) 페이지에서 생성(Create)을 선택합니다.

    AWS CloudFormation 가 MyDeadLetterQueue 스택 생성을 시작하고 CREATE_IN_PROGRESS 상태를 표시합니다. 프로세스가 완료되면 _ CREATECOMPLETE 상태가 AWS CloudFormation 표시됩니다.