Amazon Pinpoint를 사용하여 AWS End User Messaging 음성 메시지에 대한 로깅을 설정하려면 어떻게 해야 합니까?

6분 분량
0

Amazon Pinpoint를 통해 보내는 음성 메시지의 상태를 모니터링하려고 합니다.

Amazon Pinpoint를 통해 보내는 음성 메시지의 상태를 모니터링하려고 합니다.

해결 방법

Amazon Pinpoint 음성 메시지의 상태를 로깅하려면 구성 세트이벤트 대상을 구성합니다. 그런 다음, 이벤트 대상을 구성 세트에 매핑합니다. 이 구성을 사용하면 Amazon Pinpoint를 통해 보내는 음성 메시지에 대한 응답 정보를 받을 수 있습니다.

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

이벤트 대상을 구성하려면 AWS End User Messaging API 또는 AWS SDK 중 하나를 사용하십시오.

참고: 다음 음성 메시지 로깅 구성은 AWS End User Messaging에만 적용됩니다. SMS 및 Voice v1에 대해서는 Amazon Pinpoint SMS 및 Voice v1 API용 Amazon Pinpoint 음성 메시지에 대해 로깅을 설정하려면 어떻게 하나요?를 참조하십시오.

Amazon SNS 주제를 Amazon Pinpoint 음성 이벤트 대상으로 구성

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

Amazon SNS 주제를 Amazon Pinpoint 음성 이벤트 대상으로 구성하려면 다음 단계를 완료하십시오.

  1. 구성 세트를 생성하려면 create-configuration-set 명령을 실행합니다.

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

    참고: VoiceSNS를 원하는 구성 세트의 이름으로 바꾸십시오.

  2. Amazon SNS 주제에 음성 메시지를 로깅하려는 엔드포인트를 구독합니다. SNS 주제는 새로운 주제이거나 기존 주제일 수 있습니다. AWS CLI를 사용하여 새 Amazon SNS 주제를 생성하려면 create-topic 명령을 실행하십시오.

    aws sns create-topic --name pinpointsmsvoice
  3. SNS 주제 액세스 정책에 다음 권한을 추가합니다. 이 정책을 사용하면 AWS End User Messaging 음성 서비스가 로그를 전송할 수 있습니다.

    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sms-voice.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:us-east-1:ACCOUNT_ID:pinpointsmsvoice",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "ACCOUNT_ID"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceSNS"
        }
      }
    }

    참고: us-east-1을 원하는 AWS 리전으로, pinpointsmsvoice를 SNS 주제 이름으로, ACCOUNT_ID를 원하는 AWS 계정 ID로 바꾸십시오.

  4. 텍스트 편집기에서 matching.json이라는 입력 요청 파일을 MatchingEventTypes에 대해 생성합니다. 수신하려는 이벤트를 지정하거나, 모든 이벤트를 수신하려면 **"ALL"**을 지정하십시오.

    [
    "ALL"
    ]
  5. 이벤트 대상을 configuration-set-name으로 매핑하려면 create-event-destination 명령을 실행합니다.

    aws pinpoint-sms-voice-v2 create-event-destination --configuration-set-name VoiceSNS --event-destination-name VoiceSNS --matching-event-types file://matching.json --sns-destination TopicArn=arn:aws:sns:us-east-1:ACCOUNT_ID:pinpointsmsvoice

    참고: us-east-1을 원하는 리전으로, ACCOUNT_ID를 원하는 계정 ID로, pinpointsmsvoice를 원하는 SNS 주제 이름으로 바꾸십시오.

  6. 설정을 테스트하려면 SendVoiceMessage V2 API 작업을 사용하여 Amazon Pinpoint 음성 메시지를 전송합니다. 몇 분 후 SNS 주제를 구독한 엔드포인트에 이벤트가 나타납니다.

CloudWatch Logs를 Amazon Pinpoint 음성 이벤트 대상으로 구성

CloudWatch Logs를 Amazon Pinpoint 음성 이벤트 대상으로 구성하려면 다음 단계를 완료하십시오.

  1. 구성 세트를 생성하려면 create-configuration-set 명령을 실행합니다.

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

    참고: VoiceCW를 원하는 구성 세트의 이름으로 바꾸십시오.

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

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

    -또는-

    기존 CloudWatch 로그 그룹을 사용하고 다음 단계에 따라 ARN을 가져오십시오.
    CloudWatch 콘솔을 엽니다.
    탐색 창에서 로그를 선택합니다. 그런 다음, 로그 그룹을 선택합니다.
    로그 그룹 열에서 로그 그룹 이름을 선택합니다.
    로그 그룹 세부 정보 창에서 ARN 값을 복사합니다. 이 값은 로그 그룹의 ARN입니다.

  3. Amazon Pinpoint 서비스가 맡을 새 IAM 역할을 생성합니다.

  4. 다음 권한 문을 사용하여 IAM 역할 신뢰 정책을 업데이트합니다.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "sms-voice.amazonaws.com"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "aws:SourceAccount": "ACCOUNT_ID"
            },
            "ArnLike": {
              "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceKinesis"
            }
          }
        }
      ]
    }

    참고: 이 정책은 SMS 음성 서비스가 IAM 역할을 맡을 수 있도록 허용합니다.

  5. 다음 명령문을 사용하여 IAM 역할 권한 정책을 업데이트합니다.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "logs:CreateLogStream",
                    "logs:DescribeLogStreams",
                    "logs:PutLogEvents"
                ],
                "Resource": [
                    "arn:aws:logs:us-east-1:ACCOUNT_ID:log-group:/aws/pinpoint/voice:*"
                ]
            }
        ]
    }

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

  6. 텍스트 편집기에서 CloudWatchDestination.json이라는 입력 요청 파일을 생성합니다. 그런 다음, 파일에 다음 대상 파라미터를 입력합니다.

    `{   "IamRoleArn": "arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE",   "LogGroupArn": "arn:aws:logs:us-east-1:ACCOUNT_ID:log-group:/aws/pinpoint/voice" }`

    참고: IamRoleArn의 값을 IAM 역할 ARN으로 바꾸십시오. LogGroupArn의 값은 이벤트를 전송하려는 CloudWatch 로그 그룹의 ARN으로 바꾸십시오.

  7. 텍스트 편집기에서 MatchingEventTypes에 대해 matching.json이라는 입력 요청 파일을 생성합니다. 수신하려는 이벤트를 지정하거나, 모든 이벤트를 수신하려면 **"ALL"**을 지정하십시오.

    [
    "ALL"
    ]

    참고: VoiceCW를 원하는 구성 세트의 이름으로 바꾸십시오.

  8. create-event-destination 명령을 실행하여 이벤트 대상을 configuration-set-name에 매핑합니다.

    aws pinpoint-sms-voice-v2 create-event-destination --configuration-set-name VoiceCW --event-destination-name CloudWatch_Destination --matching-event-types file://matching.json --cloud-watch-logs-destination file://CloudWatchDestination.json
  9. 설정을 테스트하려면 SendVoiceMessage V2 API 작업을 사용하여 Amazon Pinpoint 음성 메시지를 전송합니다. 해당 이벤트는 몇 분 후에 CloudWatch 로그 그룹에 표시됩니다.

Firehose 전송 스트림을 Amazon Pinpoint 음성 이벤트 대상으로 구성

Firehose 전송 스트림을 Amazon Pinpoint 음성 이벤트 대상으로 구성하려면 다음 단계를 완료하십시오.

  1. 구성 세트를 생성하려면 create-configuration-set 명령을 실행합니다.

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

    참고: VoiceKinesis를 원하는 구성 세트의 이름으로 바꾸십시오.

  2. Firehose 전송 스트림을 생성합니다. 대상 설정에서 **Amazon Simple Storage Service(Amazon S3)**를 선택하십시오.

  3. Amazon Pinpoint 서비스가 맡을 새 IAM 역할을 생성합니다.

  4. 정책의 Principal 섹션에서 다음 권한 문을 사용하여 IAM 역할 신뢰 정책을 업데이트합니다.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "sms-voice.amazonaws.com"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "aws:SourceAccount": "ACCOUNT_ID"
            },
            "ArnLike": {
              "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceKinesis"
            }
          }
        }
      ]
    }

    참고: 이 정책은 SMS 음성 서비스가 IAM 역할을 맡을 수 있도록 허용합니다.

  5. Firehose 전송 스트림 ARN을 포함하도록 IAM 역할 권한 정책을 업데이트합니다.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "firehose:PutRecord",
                "Resource": "arn:aws:firehose:us-east-1:ACCOUNT_ID:deliverystream/KINESIS_FIREHOSE_NAME"
            }
        ]
    }

    참고: ACCOUNT_ID를 사용자의 계정 ID로 바꾸고 KINESIS_FIREHOSE_NAME을 Firehose 전송 스트림 ARN의 이름으로 바꾸십시오.

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

    {
        "IamRoleArn": "arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE",
        "DeliveryStreamArn": "arn:aws:firehose:us-east-1:ACCOUNT_ID:deliverystream/KINESIS_FIREHOSE_NAME"
    }

    참고: us-east-1을 AWS 리전으로, ACCOUNT_ID를 계정 ID로, KINESIS_FIREHOSE_NAME을 Firehose 전송 스트림 이름으로, IAM_ROLE을 IAM 역할 이름으로 바꾸십시오.

  7. 이벤트 대상을 configuration-set-name으로 매핑하려면 입력 요청 파일을 사용하여 create-event-destination 명령을 실행합니다.

  8. 텍스트 편집기에서 MatchingEventTypes에 대해 matching.json이라는 입력 요청 파일을 생성합니다. 수신하려는 이벤트를 지정하거나, 모든 이벤트를 수신하려면 **"ALL"**을 지정하십시오.

    [
    "ALL"
    ]
  9. create-event-destination 명령을 실행합니다.

    aws pinpoint-sms-voice-v2 create-event-destination --configuration-set-name VoiceKinesis --event-destination-name KinesisFirehose_Destination --matching-event-types file://matching.json --kinesis-firehose-destination file://KinesisFirehoseDestination.json

    참고: VoiceKinesis를 원하는 구성 세트 이름으로 바꾸십시오.

  10. 설정을 테스트하려면 SendVoiceMessage V2 API 작업을 사용하여 Amazon Pinpoint 음성 메시지를 전송합니다. 몇 분 후 Firehose 전송 스트림을 생성할 때 구성한 Amazon S3 버킷에 이벤트가 나타납니다.