Ir para o conteúdo

Como faço para configurar o log de mensagens de voz do AWS End User Messaging com o Amazon Pinpoint?

7 minuto de leitura
0

Quero registrar o status das mensagens de voz que envio pelo Amazon Pinpoint.

Resolução

Para registrar o status das mensagens de voz do Amazon Pinpoint, crie um conjunto de configurações e o destino do evento. Em seguida, mapeie o destino do evento no conjunto de configurações. Use a configuração para receber informações de resposta para as mensagens de voz enviadas pelo Amazon Pinpoint.

É possível configurar os seguintes recursos da AWS como destinos de eventos de voz do Amazon Pinpoint:

Para configurar um destino de evento, use as APIs AWS End User Messaging ou um dos SDKs da AWS.

Observação: a seguinte configuração de log de mensagens de voz se aplica somente ao AWS End User Messaging. Para SMS e Voice v1, consulte Como configuro o log de mensagens de voz do Amazon Pinpoint para a API Amazon Pinpoint SMS e Voice v1?

Configurar um tópico do Amazon SNS como destino de um evento de voz do Amazon Pinpoint

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Conclua as etapas a seguir:

  1. Para criar um conjunto de configurações, execute o comando create-configuration-set:

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

    Observação: substitua o VoiceSNS pelo nome do conjunto de configurações.

  2. Inscreva o endpoint no qual você deseja registrar as mensagens de voz em log em um tópico do Amazon SNS. O tópico do SNS pode ser novo ou um tópico já criado.

  3. Adicione as seguintes permissões à sua política de acesso a tópicos do SNS para permitir que o serviço de voz do AWS End User Messaging entregue logs:

    {
      "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"
        }
      }
    }

    Observação: substitua us-east-1 pela sua região da AWS, pinpointsmsvoice pelo nome do seu tópico do SNS e ACCOUNT_ID pelo ID da sua conta da AWS.

  4. Em um editor de texto, crie um arquivo de solicitação de entrada chamado matching.json para MatchingEventTypes. Especifique os eventos que deseja receber ou especifique "TODOS" para receber todos os eventos:

    [
    "ALL"
    ]
  5. Para mapear o destino do evento em configuration-set-name, execute o comando 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

    Observação: substitua us-east-1 pela sua região, ACCOUNT_ID pelo ID da conta e pinpointsmsvoice pelo nome do tópico do SNS.

  6. Para testar a configuração, use a operação da API V2 SendVoiceMessage para enviar uma mensagem de voz do Amazon Pinpoint. O evento aparece no endpoint que está inscrito no tópico do SNS após alguns minutos.

Configurar o CloudWatch Logs como um destino de evento de voz do Amazon Pinpoint

Conclua as etapas a seguir:

  1. Para criar um conjunto de configurações, execute o comando create-configuration-set:

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

    Observação: substitua VoiceCW pelo nome do seu conjunto de configurações.

  2. Para criar um grupo de logs, execute o comando create-log-group:

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

    Observação: substitua log-group-name pelo nome do seu grupo de logs. Na saída do comando, anote o nome de recurso da Amazon (ARN) do grupo de logs a ser usado em uma etapa posterior. Se você estiver usando um grupo de logs existente, chame a operação da API LogGroup para obter o ARN.

  3. Crie um novo perfil do AWS Identity and Access Management (AWS IAM) para o serviço Amazon Pinpoint assumir.

  4. Atualize a política de confiança do perfil do IAM com a declaração a seguir para permitir que o serviço de voz SMS assuma o perfil do 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/VoiceCW"
            }
          }
        }
      ]
    }

    Observação: substitua us-east-1 pela sua região, ACCOUNT_ID pelo ID da sua conta e VoiceCW pelo seu conjunto de configurações.

  5. Atualize a política de permissões do perfil do IAM com a seguinte declaração:

    {    "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:*"
                ]
            }
        ]
    }

    Observação: substitua us-east-1 pela sua região e ACCOUNT_ID pelo ID da sua conta. Essa política concede permissões para chamar operações específicas da API do CloudWatch Logs. Para obter mais informações, consulte Referência de permissões do CloudWatch Logs.

  6. Em um editor de texto, crie um arquivo de solicitação de entrada chamado CloudWatchDestination.json. Em seguida, insira os seguintes parâmetros de destino no arquivo:

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

    Observação: substitua o valor de IamRoleArn pelo ARN do seu perfil do IAM. Substitua o valor de LogGroupArn pelo ARN do grupo de logs do CloudWatch para o qual você deseja enviar eventos.

  7. Em um editor de texto, crie um arquivo de solicitação de entrada chamado matching.json para MatchingEventTypes. Especifique os eventos que deseja receber ou especifique "TODOS" para receber todos os eventos:

    [
    "ALL"
    ]
  8. Execute o comando create-event-destination para mapear o destino do evento em 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

    Observação: substitua VoiceCW pelo nome do seu conjunto de configurações.

  9. Para testar a configuração, use a operação da API V2 SendVoiceMessage para enviar uma mensagem de voz do Amazon Pinpoint. O evento aparece no grupo de logs do CloudWatch após alguns minutos.

Configurar um stream de entrega do Firehose como destino de evento de voz do Amazon Pinpoint

Conclua as etapas a seguir:

  1. Para criar um conjunto de configurações, execute o comando create-configuration-set:

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

    Observação: substitua VoiceKinesis pelo nome do seu conjunto de configurações.

  2. Crie um stream de entrega do Firehose e anote o ARN do stream de entrega. Na Configuração de destino, escolha Amazon Simple Storage Service (Amazon S3).

  3. Crie um novo perfil do IAM para o serviço Amazon Pinpoint assumir.

  4. Atualize a política de confiança do perfil do IAM com a seguinte declaração na seção da entidade principal da política:

    {
      "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"
            }
          }
        }
      ]
    }

    Observação: substitua us-east-1 pela sua região e ACCOUNT_ID pelo ID da sua conta. Essa política permite que o serviço de voz SMS assuma o perfil do IAM.

  5. Atualize a política de permissões do perfil do IAM para incluir o ARN do stream de entrega do Firehose:

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

    Observação: substitua ACCOUNT_ID pelo ID da conta e KINESIS_FIREHOSE_NAME pelo nome do ARN do seu stream de entrega do Firehose.

  6. Em um editor de texto, crie um arquivo de solicitação de entrada chamado KinesisFirehoseDestination.json. Em seguida, copie e cole os seguintes parâmetros de destino no arquivo:

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

    Observação: substitua us-east-1 pela sua região AWS, ACCOUNT_ID pelo ID da sua conta, KINESIS_FIREHOSE_NAME pelo nome do seu stream de entrega do Firehose e IAM_ROLE pelo nome do seu perfil do IAM.

  7. Em um editor de texto, crie um arquivo de solicitação de entrada chamado matching.json para MatchingEventTypes. Especifique os eventos que deseja receber ou especifique "TODOS" para receber todos os eventos:

    [
    "ALL"
    ]
  8. Para mapear o destino do evento em configuration-set-name, execute o comando create-event-destination com um arquivo de solicitação de entrada:

    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

    Observação: substitua VoiceKinesis pelo nome do seu conjunto de configurações.

  9. Para testar a configuração, use a operação da API V2 SendVoiceMessage para enviar uma mensagem de voz do Amazon Pinpoint. Depois de alguns minutos, o evento aparece no bucket do Amazon S3 que você configurou ao criar o stream de entrega do Firehose.

AWS OFICIALAtualizada há 6 meses