왜 AWS Chatbot이 Amazon SNS의 메시지를 수신하지 않는 건가요?

6분 분량
0

AWS Chatbot이 Amazon Simple Notification Service(SNS) 주제를 구독하도록 했습니다. 하지만 Amazon SNS 주제 알림이 AWS Chatbot에 전달되지 않습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

Amazon SNS 주제 알림이 AWS Chatbot에 도달하지 않는 경우 다음 중 하나가 잘못 구성된 것입니다.

  • (Slack에만 해당) AWS Chatbot과 Slack 채널 간의 통신 채널입니다.
  • (Slack 및 Amazon Chime용) Amazon SNS 주제와 AWS Chatbot 간의 통신 채널입니다.

해결 방법

AWS Chatbot에 대해 CloudWatch Logs를 켭니다.

AWS Chatbot용 Amazon CloudWatch Logs 액세스하기 섹션의 지침을 따르십시오.

(Slack에만 해당) AWS Chatbot과 Slack 채널 간의 통신 채널이 올바르게 구성되었는지 확인합니다.

Slack 채널이 보관되거나 삭제되어서는 안됩니다.

보관되거나 삭제된 Slack 채널은 메시지를 수신할 수 없습니다. 보관되거나 삭제된 Slack 채널의 모든 앱은 비활성화됩니다.

채널 보관을 해제하려면 Slack 고객 센터에서 채널 보관 또는 삭제 단원을 참조하세요.

참고: Slack 채널은 삭제 취소할 수 없습니다. 구독한 Slack 채널이 삭제된 경우 새 Slack 채널을 만들고 주제의 알림을 수신하도록 새 채널을 구성해야 합니다.

AWS Chatbot 앱이 Slack 작업 영역에 설치되도록 합니다.

AWS Chatbot CloudWatch Logs에서 다음의 메시지가 표시되는지 확인하십시오. account_inactive account_inactive 오류 메시지가 표시되면 AWS Chatbot 앱이 Slack 작업 공간에 설치되지 않은 것입니다.

Slack 작업 공간에 AWS Chatbot 앱을 설치하려면 AWS Chatbot용 채팅 클라이언트 설정 섹션의 지침을 따르십시오.

(프라이빗 슬랙 채널에만 해당) AWS Chatbot 앱이 Slack 채널에 추가되도록 합니다.

AWS Chatbot CloudWatch Logs에서 다음 오류 메시지가 표시되는지 확인하십시오. channel_not_found. channel_not_found 오류 메시지가 표시되면 AWS Chatbot 앱이 프라이빗 채널에 추가되지 않은 것입니다.

프라이빗 Slack 채널에 AWS Chatbot을 추가하려면 프라이빗 채널에서 /invite @AWS 명령을 실행합니다.

(Slack 및 Amazon Chime의 경우) Amazon SNS 주제와 AWS Chatbot간의 통신 채널이 올바르게 구성되었는지 확인합니다.

AWS Chatbot이 Amazon SNS 주제를 구독해야 합니다.

1.    AWS Chatbot 콘솔을 엽니다.

2.    구성된 클라이언트에서 사용 사례에 따라 Slack 또는 Amazon Chime을 선택합니다.

3.    Slack 작업 공간 구성에서 Slack 채널을 선택하거나 Amazon Chime 웹후크 목록에서 웹후크를 선택합니다.

4.    **편집(Edit)**을 선택합니다.

5.    세부 정보(Details) 창의 주제(Topics) 아래에서 Amazon SNS 주제가 나열되어 있는지 확인합니다. 주제가 목록에 없는 경우 Amazon SNS 주제를 AWS Chatbot에 구독해야 합니다.

AWS Chatbot 엔드포인트가 Amazon SNS 주제에 대해 주제 구독 상태로 표시되는지 확인합니다.

1.    Amazon SNS 콘솔을 엽니다.

2.    왼쪽 탐색 창에서 주제를 선택합니다. 그런 다음 Amazon SNS 주제의 이름을 선택합니다.

3.    **주제 구독(Topic subscriptions)**에 다음의 AWS Chatbot 엔드포인트가 나열되어야 합니다. https://global.sns-api.chatbot.amazonaws.com. AWS Chatbot 엔드포인트가 주제 구독으로 나열되지 않은 경우 Amazon SNS 주제를 AWS Chatbot에 구독하도록 해야 합니다.

참고: 설정을 테스트하려면 AWS Chatbot 구성을 사용하여 테스트 알림을 전송합니다.

Amazon SNS 주제에 메시지를 수동으로 게시하지 않도록 합니다.

AWS Chatbot은 Amazon SNS 주제에 수동으로 게시되는 메시지를 지원하지 않습니다. AWS Chatbot에서 지원하는 서비스 중 하나만 사용해서 Amazon SNS 알림을 AWS Chatbot으로 전송해야 합니다.

Amazon SNS 주제에 메시지를 게시하는 AWS 서비스가 AWS Chatbot에서 지원되는지 확인합니다.

AWS Chatbot CloudWatch Logs에서 다음의 오류 메시지가 표시되는지 확인합니다. 수신된 이벤트가 지원되지 않음. 수신된 이벤트가 지원되지 않음 오류 메시지가 표시되면 AWS Chatbot에서 주제에 메시지를 게시하는 서비스를 지원하지 않는 것입니다.

AWS Chatbot에서 지원하는 전체 서비스 목록은 기타 AWS 서비스로 AWS Chatbot 사용 단원을 참조하세요.

다른 AWS 서비스가 주제에 메시지를 게시하려면 Amazon SNS 주제의 액세스 정책이 필요한 권한을 부여하도록 해야 합니다.

1.    Amazon SNS 콘솔을 엽니다.

2.    왼쪽 탐색 창에서 주제를 선택합니다.

3.    AWS Chatbot이 구독할 주제를 선택합니다. 그런 다음 **편집(Edit)**을 선택합니다.

4.    액세스 정책 탭을 선택합니다. 그런 다음 액세스 정책의 문(Staement) 섹션을 검토합니다. 정책을 통해 올바른 AWS 서비스가 SNS:Publish API 작업을 실행할 수 있도록 합니다.

5.    Amazon SNS 액세스 정책이 올바른 서비스가 주제에 이벤트를 게시하도록 허용하지 않는 경우 다음을 수행하여 정책을 업데이트합니다.
주제 페이지의 세부 정보 섹션에서 편집을 선택합니다.
액세스 정책(Access policy) 섹션을 확장한 다음 필요한 권한을 추가합니다.

참고: Amazon SNS 액세스 정책의 예시는 개발자 도구 콘솔 사용 설명서의 알림에 대한 Amazon SNS 주제 구성을 참조하세요. 또한 AWS 과금 정보 및 비용 관리 사용 설명서에서 예산 알림에 대한 Amazon SNS 주제 생성을 참조하세요.

Amazon SNS 주제에서 원시 메시지 전송이 활성화되지 않도록 확인

AWS Chatbot은 원시 메시지 전송을 허용하지 않습니다. Amazon SNS 주제에서 원시 메시지 전송이 활성화되었는지 확인하려면 다음을 수행합니다.

1.    Amazon SNS 콘솔을 엽니다.

2.    왼쪽 탐색 창에서 주제를 선택합니다. 그런 다음 Amazon SNS 주제의 이름을 선택합니다.

3.    세부 정보 창에서 원시 메시지 전송의 상태가 사용 또는 사용 안 함으로 표시되는지 확인합니다.

4.    상태가 사용으로 표시되는 경우, 다음을 수행하여 Amazon SNS 주제에 대한 원시 메시지 전송을 해제합니다.
**편집(Edit)**을 선택합니다.
원시 메시지 전송 사용을 선택하여 원시 메시지 전송 옵션을 선택 취소합니다.
**변경 사항 저장(Save changes)**을 선택합니다.

(서버 측 암호화가 활성화된 상태에서 Amazon SNS 주제를 사용하는 경우) 필요한 AWS Key Management Service(AWS KMS) 키 정책 권한을 포함해야 합니다.

AWS KMS 키 정책은 메시지를 전송하는 서비스가 암호화된 SNS 주제에 게시할 수 있도록 허용해야 합니다.

AWS KMS 키 정책에 다음 섹션이 포함되어 있는지 확인합니다.
중요: events.amazonaws.com을 암호화된 SNS 주제에 게시하는 서비스의 AWS 서비스 보안 주체로 교체하십시오.

{
  "Sid": "Allow CWE to use the key",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
    },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*"
}

참고: AWS 관리 콘솔을 사용하여 구성을 테스트하려면 AWS Identity and Access Management(IAM) 역할에 AWS KMS 키를 사용할 권한이 있어야 합니다.

초당 알림 10개를 초과하는 속도로 Amazon SNS 주제에 메시지를 게시하지 않도록 합니다.

AWS Chatbot은 초당 10개의 이벤트를 허용합니다. 초당 10개 이상의 이벤트를 수신하면 추가 메시지가 스로틀링됩니다.

이벤트가 스로틀링되는지 확인하려면 AWS Chatbot용 Amazon CloudWatch Logs에서 EventsThrottled 지표를 확인하십시오.

(Amazon 를 EventBridge사용하는 경우) EventBridge 이벤트에서 입력 트랜스포머를 사용해서는 안됩니다.

AWS Chatbot은 EventBridge 입력 트랜스포머를 인식하지 못합니다. Amazon EventBridge 이벤트가 입력 트랜스포머를 사용하지 않는지 확인하려면 다음을 수행하십시오.

1.    EventBridge 콘솔을 엽니다.

2.    왼쪽 탐색 창에서 규칙을 선택합니다. 그런 다음 구성된 이벤트 규칙의 이름을 선택합니다.

3.    규칙의 대상으로 구성한 Amazon SNS 주제 옆에 있는 확인란을 선택합니다. 그런 다음 **세부 정보 보기(View details)**를 선택합니다.

4.    세부 정보 페이지의 입력 섹션 아래에 입력 트랜스포머가 표시되어 있는지 확인합니다. 입력 트랜스포머가 표시되면 규칙에서 입력 트랜스포머를 제거합니다.

참고: 자세한 내용은 Amazon EventBridge 대상 입력 변환 단원을 참조하세요.

(EventBridge를 사용하는 경우) AWS Chatbot이 EventBridge를 통해 지원하지 않는 AWS 서비스에서 이벤트 알림을 전송하지 않도록 합니다.

AWS Chatbot은 다음 AWS 서비스에서는 Amazon EventBridge를 통해 전송되는 이벤트 알림을 지원하지 않습니다.

  • Amazon CloudWatch
  • AWS CodeBuild
  • AWS CodeCommit
  • AWS CodeDeploy
  • AWS CodePipeline

관련 정보

AWS Chatbot 문제 해결

웹후크를 사용하여 Amazon Chime, Slack 또는 Microsoft Teams에 Amazon SNS 메시지를 게시하려면 어떻게 해야 합니까?

CloudWatch를 사용하여 AWS 서비스에서 Amazon Chime 또는 Slack으로 보내는 알림을 테스트합니다.

AWS 공식
AWS 공식업데이트됨 2년 전