Amazon Pinpoint SMS 및 Voice v1 API의 Amazon Pinpoint 음성 메시지에 대한 로깅을 설정하려면 어떻게 해야 합니까?

6분 분량
0

Amazon Pinpoint를 통해 전송하는 음성 메시지의 상태를 모니터링하고 싶습니다. 어떻게 설정해야 하나요?

간략한 설명

Amazon Pinpoint 음성 메시지의 상태를 로깅하려면 이벤트 대상을 구성해야 합니다. 이벤트 대상이 설정되면 Amazon Pinpoint를 통해 전송하는 음성 메시지에 대한 응답 정보를 수신합니다.

다음 AWS 리소스 중 하나를 Amazon Pinpoint 음성 이벤트 대상으로 구성할 수 있습니다.

이벤트 대상을 구성하려면 Amazon Pinpoint SMS 및 음성 메시징 API 또는 AWS SDK 중 하나를 사용할 수 있습니다.

참고: 다음 해결 방법은 Amazon Pinpoint SMS 및 Voice v1 API에만 적용됩니다. Amazon Pinpoint SMS 및 Voice v2 API의 경우 Amazon Pinpoint SMS 및 Voice v2 API의 Amazon Pinpoint 음성 메시지에 대한 로깅을 설정하려면 어떻게 해야 합니까?를 참조하세요.

해결 방법

다음 예제 절차에서는 Amazon Pinpoint SMS 및 음성 메시징 API를 사용하여 이벤트 대상을 생성하는 방법을 보여 줍니다. 각 예제 설정이 작동하려면 SendVoiceMessage API 작업을 사용하여 음성 메시지를 보내야 합니다. 또한 API 요청은 ConfigurationSetName 파라미터에서 구성 세트의 이름을 전달해야 합니다. 예시 코드는 Amazon Pinpoint 개발자 가이드의 음성 메시지 전송을 참조하세요.

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요. 이러한 절차를 완료한 후에도 음성 로그가 채워지지 않으면 Amazon Pinpoint 음성 메시지 로그가 채워지지 않는 이유는 무엇입니까? 문서를 참조하세요.

Amazon SNS 주제를 Amazon Pinpoint 음성 이벤트 대상으로 구성하려면 다음을 수행합니다.

1.    SNS 주제에 대한 액세스 정책에 다음 권한이 포함되어 있는지 확인합니다. 이를 통해 Amazon Pinpoint 서버는 다음과 같은 로그를 전송할 수 있습니다.

{
"Sid": "pinpointsmsvoice",
"Effect": "Allow",
"Principal": {
"Service": "sms-voice.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:us-west-2:XXXXXX:pinpointsmsvoice"
}

2.    다음 create-configuration-set AWS CLI 명령을 실행하여 구성 세트를 생성합니다.

참고: VoiceSNS를 구성 세트의 이름으로 바꿀 수 있습니다.

aws pinpoint-sms-voice create-configuration-set --configuration-set-name VoiceSNS

3.    음성 메시지 로그를 수신할 엔드포인트를 기존 Amazon SNS 주제 또는 새 주제로 구독합니다. 지침은 Amazon SNS 개발자 가이드에서 Amazon SNS 주제로 엔드포인트를 구독하려면 섹션을 참조하세요.

참고: AWS CLI를 사용하여 새 Amazon SNS 주제를 생성하려면 다음 create-topic 명령을 실행합니다.

aws sns create-topic --name pinpointsmsvoice

4.    텍스트 편집기에서 SNSDestination.json이라는 입력 요청 파일을 생성합니다. 그리고 다음 대상 파라미터를 복사하여 파일에 붙여 넣습니다.

중요: 을(를) AWS 리전으로 바꿉니다. 을(를) AWS 계정 ID로 바꿉니다. pinpointsmsvoice를 Amazon SNS 주제의 이름으로 바꿉니다. 로그할 이벤트 유형만 포함하도록 MatchingEventTypes 값을 편집할 수 있습니다.

{
    "Enabled": true,
    "MatchingEventTypes": ["INITIATED_CALL", "RINGING", "ANSWERED", "COMPLETED_CALL", "BUSY", "FAILED", "NO_ANSWER"],
    "SnsDestination": {
        "TopicArn": "arn:aws:sns:<region>:<AccountID>:pinpointsmsvoice"
    }
}

5.    다음 create-configuration-set-event-destination 명령을 실행하여 구성 세트를 대상 파라미터에 매핑합니다.

중요: VoiceSNS를 구성 세트의 이름으로 바꿔야 합니다.

aws pinpoint-sms-voice create-configuration-set-event-destination --configuration-set-name VoiceSNS --event-destination-name SNS_Destination --event-destination file://SNSDestination.json

6.    SendVoiceMessage API 작업을 사용하여 Amazon Pinpoint 음성 메시지를 전송하는 방법으로 설정을 테스트합니다. 몇 분 후 Amazon SNS 주제를 구독하는 엔드포인트에 이벤트가 표시됩니다.

중요: API 요청의 ConfigurationSetName 파라미터가 구성 세트의 이름과 일치하는지 확인하세요.

CloudWatch 로그를 Amazon Pinpoint 음성 이벤트 대상으로 구성하려면

1.    다음 create-configuration-set AWS CLI 명령을 실행하여 구성 세트 생성합니다.

참고: VoiceCW를 구성 세트의 이름으로 바꿀 수 있습니다.

aws pinpoint-sms-voice create-configuration-set --configuration-set-name VoiceCW

2.    다음 create-log-group 명령을 실행하여, 음성 메시지 로그를 수신할 새 CloudWatch 로그 그룹을 생성합니다.

aws logs create-log-group --log-group-name /aws/pinpoint/voice

또는

기존 CloudWatch 로그 그룹을 사용하여 다음 단계를 완료합니다.

3.    다음을 수행하여 CloudWatch 로그 그룹의 ARN을 가져옵니다.
CloudWatch 콘솔을 엽니다.
왼쪽 탐색 창에서 **Logs(로그)**를 선택합니다. 그런 다음 **Log groups(로그 그룹)**를 선택합니다.
Log group(로그 그룹) 열에서 로그 그룹의 이름을 선택합니다.
Log group details(로그 그룹 세부 정보) 창에서 ARN 값을 복사합니다. 이 값은 로그 그룹의 ARN입니다.

4.    Amazon Pinpoint 서비스가 수임할 새 AWS Identity and Access Management(IAM) 역할을 생성합니다. 지침은 AWS 서비스에 대한 역할 생성(콘솔) 또는 서비스에 대한 역할 생성(AWS CLI) 섹션을 참조하세요. 역할을 구성할 때 정책의 보안 주체 섹션에 다음 권한 문을 포함하도록 역할의 신뢰 정책을 수정합니다.

참고: 이 권한 문을 사용하면 sms-voice 서비스가 IAM 역할을 수임할 수 있습니다.

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Principal": {
            "Service": "sms-voice.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
    }]
}

5.    다음 권한 문을 포함하도록 IAM 역할의 권한 정책을 수정합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        }
    ]
}

참고: 이 권한 문은 특정 CloudWatch Logs API 작업을 호출할 수 있는 권한을 부여합니다. 자세한 내용은 CloudWatch Logs 권한 참조를 참조하세요.

6.    텍스트 편집기에서 CloudWatchDestination.json이라는 입력 요청 파일을 생성합니다. 그리고 다음 대상 파라미터를 복사하여 파일에 붙여 넣습니다.

중요: 을(를) AWS 리전으로 바꿉니다. 을(를) AWS 계정 ID로 바꿉니다. 을(를) IAM 역할의 이름으로 바꿉니다. 로그할 이벤트 유형만 포함하도록 MatchingEventTypes 값을 편집할 수 있습니다.

{
    "Enabled": true,
    "MatchingEventTypes": ["INITIATED_CALL", "RINGING", "ANSWERED", "COMPLETED_CALL", "BUSY", "FAILED", "NO_ANSWER"],
    "CloudWatchLogsDestination": {
        "LogGroupArn": "arn:aws:logs:<region>:<AccountID>:log-group/aws/pinpoint/voice:*",
        "IamRoleArn": "arn:aws:iam::<AccountID>:role/<IAM role name>"
    }
}

7.    다음 create-configuration-set-event-destination 명령을 실행하여 구성 세트를 대상 파라미터에 매핑합니다.

중요: VoiceCW를 구성 세트의 이름으로 바꿔야 합니다.

aws pinpoint-sms-voice create-configuration-set-event-destination --configuration-set-name VoiceCW --event-destination-name CloudWatch_Destination --event-destination file://CloudWatchDestination.json

8.    SendVoiceMessage API 작업을 사용하여 Amazon Pinpoint 음성 메시지를 전송하는 방법으로 설정을 테스트합니다. 몇 분 후에 이벤트가 CloudWatch 로그 그룹에 표시됩니다.

Kinesis Data Firehose 스트림을 Amazon Pinpoint 음성 이벤트 대상으로 구성하려면

1.    다음 create-configuration-set AWS CLI 명령을 실행하여 구성 세트 생성합니다.

참고: VoiceKinesis를 구성 세트의 이름으로 바꿀 수 있습니다.

aws pinpoint-sms-voice create-configuration-set --configuration-set-name VoiceKinesis

2.    Kinesis Data Firehose 전송 스트림을 생성합니다. Destination(대상) 설정에서 Amazon Simple Storage Service(Amazon S3)를 선택합니다.

중요: 기본 IAM 서비스 역할을 사용합니다. 그런 다음 IAM 서비스 역할의 이름을 클립보드에 복사합니다. 다음 단계를 수행하려면 역할 이름이 필요합니다.

3.    정책의 보안 주체 섹션에 다음 권한 문을 포함하도록 기본 IAM 서비스 역할의 신뢰 정책을 수정합니다.

참고: 이 권한 문을 사용하면 sms-voice 서비스가 IAM 역할을 수임할 수 있습니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "firehose.amazonaws.com",
          "sms-voice.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

4.    다음 권한 문을 포함하도록 IAM 서비스 역할의 권한 정책을 수정합니다.

중요: IAM 서비스 역할의 기본 권한 문을 제거하지 마세요.

{
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "firehose:*",
            "Resource": "*"
        },

5.    텍스트 편집기에서 KinesisFirehoseDestination.json이라는 입력 요청 파일을 생성합니다. 그리고 다음 대상 파라미터를 복사하여 파일에 붙여 넣습니다.

중요: 을(를) AWS 리전으로 바꿉니다. 을(를) AWS 계정 ID로 바꿉니다. Name_of_Kinesis_Firehose를 Amazon Kinesis Data Firehose 스트림의 이름으로 바꿉니다. 을(를) IAM 역할의 이름으로 바꿉니다. 로그할 이벤트 유형만 포함하도록 MatchingEventTypes 값을 편집할 수 있습니다.

{
    "Enabled": true,
    "MatchingEventTypes": ["INITIATED_CALL","RINGING","ANSWERED","COMPLETED_CALL","BUSY","FAILED","NO_ANSWER"],
    "KinesisFirehoseDestination": {
        "DeliveryStreamArn": "arn:aws:firehose:<region>:<AccountID>:deliverystream/<Name_of_Kinesis_Firehose>",
        "IamRoleArn": "arn:aws:iam::<AccountID>:role/service-role/<IAM role name>"
    }
}

6.    다음 create-configuration-set-event-destination 명령을 실행하여 구성 세트를 대상 파라미터에 매핑합니다.

중요: VoiceKinesis를 구성 세트의 이름으로 바꿔야 합니다.

aws pinpoint-sms-voice create-configuration-set-event-destination --configuration-set-name VoiceKinesis --event-destination-name KinesisFirehose_Destination --event-destination file://KinesisFirehoseDestination.json

7.    SendVoiceMessage API 작업을 사용하여 Amazon Pinpoint 음성 메시지를 전송하는 방법으로 설정을 테스트합니다. 몇 분 후 Kinesis Data Firehose 스트림을 생성할 때 구성한 Amazon S3 버킷에 이벤트가 표시됩니다.


AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음