View a markdown version of this page

Notify를 사용하여 메시지 전송 - AWS 최종 사용자 메시징 SMS

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

Notify를 사용하여 메시지 전송

Notify는 메시지 전송을 위한 두 가지 APIs 제공합니다.

  • SendNotifyTextMessage - 사전 승인된 템플릿을 사용하여 SMS 메시지를 보냅니다.

  • SendNotifyVoiceMessage - text-to-speech을 사용하여 템플릿 콘텐츠를 읽는 음성 통화를 보냅니다.

SMS 메시지 전송

Console
  1. https://console.aws.amazon.com/sms-voice/ AWS End User Messaging SMS 콘솔을 엽니다.

  2. 알림 구성으로 이동하여 테스트 탭을 선택합니다.

  3. 채널에서 텍스트를 선택합니다.

  4. 템플릿 테이블에서 템플릿을 선택합니다.

  5. 대상 전화번호를 E.164 형식으로 입력합니다.

  6. 템플릿 변수를 입력합니다.

  7. 전송를 선택합니다.

AWS CLI
aws pinpoint-sms-voice-v2 send-notify-text-message \ --notify-configuration-id nc-1234567890abcdef0 \ --destination-phone-number +12065550100 \ --template-id notify-code-verification-english-001 \ --template-variables '{"code":"123456"}'
Python (boto3)
import boto3 client = boto3.client('pinpoint-sms-voice-v2') response = client.send_notify_text_message( NotifyConfigurationId='nc-1234567890abcdef0', DestinationPhoneNumber='+12065550100', TemplateId='notify-code-verification-english-001', TemplateVariables={ 'code': '123456' } ) print(f"Message sent. MessageId: {response['MessageId']}") print(f"Resolved body: {response.get('ResolvedMessageBody')}")

음성 메시지 전송

음성 메시지를 사용하려면 알림 구성에서 VOICE 채널을 활성화해야 합니다.

작은 정보

음성 메시지의 경우 text-to-speech 엔진이 단일 숫자 대신 각 숫자를 개별적으로 읽도록 숫자와 마침표 또는 공백(예: "1. 2. 3. 4. 5. 6.")을 구분합니다.

Console
  1. https://console.aws.amazon.com/sms-voice/ AWS End User Messaging SMS 콘솔을 엽니다.

  2. 알림 구성으로 이동하여 테스트 탭을 선택합니다.

  3. 채널에서 음성을 선택합니다.

  4. 템플릿 테이블에서 음성 템플릿을 선택합니다.

  5. 대상 전화번호를 입력하고 템플릿 변수를 입력합니다.

  6. 전송를 선택합니다.

AWS CLI
aws pinpoint-sms-voice-v2 send-notify-voice-message \ --notify-configuration-id nc-1234567890abcdef0 \ --destination-phone-number +12065550100 \ --template-id notify-code-verification-english-001 \ --template-variables '{"code":"123456"}' \ --voice-id JOANNA

DryRun 모드 사용

메시지를 실제로 전달하지 않고 전송 요청을 검증true하려면 DryRun로 설정합니다. DryRun 모드는 템플릿 변수 검증, 국가 제한 및 지출 한도를 확인하지만 메시지를 보내거나 지출 한도에서 공제하지는 않습니다.

aws pinpoint-sms-voice-v2 send-notify-text-message \ --notify-configuration-id nc-1234567890abcdef0 \ --destination-phone-number +12065550100 \ --template-id notify-code-verification-english-001 \ --template-variables '{"code":"123456"}' \ --dry-run

요청 파라미터 전송

SendNotifyTextMessage 및 모두 다음 파라미터를 SendNotifyVoiceMessage 수락합니다.

NotifyConfigurationId(필수)

알림 구성의 ID 또는 ARN입니다.

DestinationPhoneNumber(필수)

E.164 형식의 수신자 전화번호입니다.

TemplateVariables(필수)

변수 이름을 값에 매핑합니다. 정수 또는 부울 변수의 경우에도 모든 값은 문자열입니다.

TemplateId

사용할 템플릿입니다. 생략하면 구성의 기본 템플릿이 사용됩니다.

ConfigurationSetName

이벤트 라우팅을 위한 구성 세트입니다.

컨텍스트

이벤트 레코드에 포함된 키-값 페어입니다.

DryRun

전송하지 않고 요청을 검증합니다.

TimeToLive

메시지가 유효한 기간, 초 단위. 기본값은 72시간입니다.

MessageFeedbackEnabled

PutMessageFeedback API를 통해 메시지 피드백 추적을 활성화합니다.

VoiceId(음성만 해당)

사용할 Amazon Polly 음성(예: , JOANNAMATTHEW).

메시지 라우팅 작동 방식

AWS 는 대상 국가에 따라 각 메시지에 가장 적합한 발신 자격 증명을 자동으로 선택합니다. 전화 풀을 알림 구성과 연결한 경우 풀의 고객 소유 자격 증명이 먼저 시도됩니다. 적합한 고객 소유 자격 증명을 사용할 수 없는 경우 AWS관리형 자격 증명이 대체로 사용됩니다.

메시지 피드백

메시지를 보낼 MessageFeedbackEnabled 때를 활성화하면 최종 사용자가 코드를 성공적으로 수신하고 사용했는지 여부를 보고할 수 있습니다.

client.put_message_feedback( MessageId='msg-1234567890abcdef', MessageFeedbackStatus='RECEIVED' # or 'FAILED' )

전송 이벤트

알림은 구성된 이벤트 대상(CloudWatch, Amazon Data Firehose 또는 Amazon SNS)으로 전송 이벤트를 내보냅니다. 이벤트 대상 설정에 대한 자세한 내용은 섹션을 참조하세요AWS End User Messaging SMS의 구성 세트.

전송 이벤트 유형
이벤트 설명
PENDING 메시지가 전송 대기 중입니다.
DELIVERED 메시지가 수신자의 디바이스로 전송되었습니다.
FAILED 메시지 전송에 실패했습니다. 자세한 내용은 실패 이유를 확인하세요.
BLOCKED Protect 구성 규칙에 의해 메시지가 차단되었습니다.

오류 처리

ValidationException

템플릿 변수가 누락되었거나 유효하지 않거나, 전화번호 형식이 잘못되었거나, 구성에서 대상 국가가 활성화되지 않았습니다.

ResourceNotFoundException

알림 구성 또는 템플릿을 찾을 수 없습니다.

ServiceQuotaExceededException

일일 메시지 한도(기본 티어) 또는 월별 지출 한도에 도달했습니다.

ConflictException

알림 구성이 ACTIVE 상태가 아닙니다.

중요 정보

  • 양방향 메시징 AWS- 관리형 발신 ID를 사용할 때는 양방향 메시징이 지원되지 않습니다. 양방향 메시징이 필요한 경우 자체 전화 풀을 연결합니다. Notify에서 전용 번호 사용을(를) 참조하세요.

  • 옵트아웃 동작 AWS- 관리형 자격 증명이 있는 OTP 사용 사례의 경우 STOP 키워드 응답은 정보 제공용일 뿐입니다. 각 OTP 요청은 암시적 옵트인이므로 영구 옵트아웃 목록은 유지되지 않습니다. 자체 전화 풀을 연결하면 풀의 옵트아웃 목록이 유지됩니다.

문제 해결

메시지가 전송되지 않음

메시지가 전송되지 않는 경우 다음을 확인합니다.

  1. 대상 전화번호가 E.164 형식인지 확인합니다( + 및 국가 코드로 시작).

  2. 대상 국가가 EnabledCountries 목록에 있는지 확인합니다.

  3. 구성 상태가 인지 확인합니다ACTIVE.

  4. 지출 한도가 초과되지 않았는지 확인합니다.

차단됨 상태

보호 구성에 의해 메시지가 차단되었습니다. 일반적인 이유로는 대상 국가가 활성화된 국가 목록에 없거나 메시지가 잠재적 AIT(인공적으로 부풀려진 트래픽)로 플래그 지정되는 경우가 있습니다.

유효성 검사 오류

필요한 모든 항목이 제공TemplateVariables되었는지 확인합니다. 변수 값이 선언된 유형과 일치하는지 확인합니다(예: 정수는 유효한 숫자임). 템플릿 ID가 존재하고 활성 상태인지 확인합니다.