Como configuro o registro em log para mensagens de voz do Amazon Pinpoint?

Atualização mais recente: 26/04/2022

Quero monitorar o status das mensagens de voz que envio por meio do Amazon Pinpoint. Como configuro isso?

Breve descrição

Para registrar o status das mensagens de voz do Amazon Pinpoint, você deve configurar um destino de evento. Depois que o destino de evento é configurado, ele recebe as informações de resposta sobre as mensagens de voz que você envia por meio do Amazon Pinpoint.

Você pode configurar qualquer um dos seguintes recursos da AWS como destinos de eventos de voz do Amazon Pinpoint:

Para configurar um destino de evento, você pode usar as APIs de mensagens de voz e SMS do Amazon Pinpoint ou um dos AWS SDKs.

Resolução

Os procedimentos de exemplo a seguir mostram como usar as APIs de mensagens de voz e SMS do Amazon Pinpoint para criar um destino de evento. Para que cada configuração de exemplo funcione, você deve usar a operação da API SendVoiceMessage para enviar mensagens de voz. A solicitação de API também deve passar o nome do conjunto de configurações no parâmetro ConfigurationSetName. Por exemplo, consulte Send voice messages (Enviar mensagens de voz) no Guia do desenvolvedor do Amazon Pinpoint.

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique e confirme se está usando a versão mais recente da AWS CLI. Se os logs de voz não estiverem sendo preenchidos depois que você concluir qualquer um desses procedimentos, consulte o seguinte artigo: Why are my Amazon Pinpoint voice message logs not populating? (Por que meus logs de mensagens de voz do Amazon Pinpoint não estão sendo preenchidos?)

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

1.    Crie um conjunto de configurações executando o seguinte comando create-configuration-set da AWS CLI:

Observação: você pode substituir VoiceSNS por qualquer nome para o seu conjunto de configurações.

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

2.    Inscreva o endpoint do qual você quer receber logs de mensagens de voz em um tópico existente do Amazon SNS ou em um novo tópico. Para obter instruções, consulte Como inscrever um endpoint em um tópico do Amazon SNS no Guia do desenvolvedor do Amazon SNS.

Observação: para criar um novo tópico do Amazon SNS usando a AWS CLI, execute o seguinte comando create-topic:

aws sns create-topic --name pinpointsmsvoice

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

Importante: substitua <region> por sua região da AWS. Substitua <AccountID> pelo ID de sua conta da AWS. Substitua pinpointsmsvoice pelo nome do seu tópico do Amazon SNS. Você pode editar os valores de MatchingEventTypes para incluir somente os tipos de evento que deseja registrar.

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

4.    Mapeie o conjunto de configurações para os parâmetros de destino executando o seguinte comando create-configuration-set-event-destination:

Importante: certifique-se de substituir VoiceSNS pelo nome do conjunto de configurações.

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

5.    Teste a configuração enviando uma mensagem de voz do Amazon Pinpoint usando a operação da API SendVoiceMessage. Depois de alguns minutos, o evento aparece no endpoint que está inscrito no tópico do Amazon SNS.

Importante: verifique se o parâmetro ConfigurationSetName da solicitação de API corresponde ao nome do seu conjunto de configurações.

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

1.    Crie um conjunto de configurações executando o seguinte comando create-configuration-set da AWS CLI:

Observação: você pode substituir VoiceCW por qualquer nome para o seu conjunto de configurações.

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

2.    Crie um novo grupo de logs do CloudWatch para receber logs de mensagens de voz executando o seguinte comando create-log-group:

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

-ou-

Use um grupo de logs do CloudWatch existente para concluir as etapas a seguir.

3.    Obtenha o ARN do seu grupo de logs do CloudWatch fazendo o seguinte:
Abra o console do CloudWatch.
No painel de navegação esquerdo, escolha Logs. Em seguida, escolha Log groups (Grupos de registros).
Na coluna Log group (Grupo de logs), escolha o nome do seu grupo de logs.
No painel Log group details (Detalhes do grupo de logs), copie o valor do ARN. Esse é o ARN do seu grupo de logs.

4.    Crie uma nova função do AWS Identity and Access Management (IAM) para o serviço Amazon Pinpoint assumir. Para obter instruções, consulte Criar uma função para um serviço da AWS (console) ou Criar uma função para um serviço (AWS CLI). Ao configurar a função, modifique a política de confiança da função para que ela inclua a seguinte declaração de permissões na seção principal da política:

Observação: essa declaração de permissões permite que o serviço sms-voice assuma a função do IAM.

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

5.    Modifique a política de permissões da função do IAM para que ela inclua a seguinte declaração de permissões:

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

Observação: essa declaração de permissões concede permissões para chamar operações específicas da API do CloudWatch Logs. Para obter mais informações, consulte a 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, copie e cole os seguintes parâmetros de destino no arquivo:

Importante: substitua <region> por sua região da AWS. Substitua <AccountID> pelo ID de sua conta da AWS. Substitua <IAM role name> pelo nome da função do IAM. Você pode editar os valores de MatchingEventTypes para incluir somente os tipos de evento que deseja registrar.

{
    "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.    Mapeie o conjunto de configurações para os parâmetros de destino executando o seguinte comando create-configuration-set-event-destination:

Importante: certifique-se de substituir VoiceCW pelo nome do conjunto de configurações.

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

8.    Teste a configuração enviando uma mensagem de voz do Amazon Pinpoint usando a operação da API SendVoiceMessage. Depois de alguns minutos, o evento aparece no grupo de logs do CloudWatch.

Para configurar uma transmissão do Kinesis Data Firehose como um destino de evento de voz do Amazon Pinpoint

1.    Crie um conjunto de configurações executando o seguinte comando create-configuration-set da AWS CLI:

Observação: você pode substituir VoiceKinesis por qualquer nome para o seu conjunto de configurações.

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

2.    Criar um fluxo de entrega do Kinesis Data Firehose. Para a configuração Destination (Destino), escolha Amazon Simple Storage Service (Amazon S3).

Importante: aceite a função de serviço padrão do IAM. Em seguida, copie o nome da função de serviço do IAM para a área de transferência. Você precisará do nome da função para as etapas a seguir.

3.    Modifique a política de confiança da função de serviço do IAM padrão para que ela inclua a seguinte declaração de permissões na seção principal da política:

Observação: essa declaração de permissões concede permissões ao serviço sms-voice para assumir a função do IAM.

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

4.    Modifique a política de permissões da função de serviço do IAM para que ela inclua a seguinte declaração de permissões:

Importante: não remova nenhuma das declarações de permissões padrão da função de serviço do IAM.

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

5.    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:

Importante: substitua <region> por sua região da AWS. Substitua <AccountID> pelo ID de sua conta da AWS. Substitua Name_of_Kinesis_Firehose pelo nome da sua transmissão do Amazon Kinesis Data Firehose. Substitua <IAM role name> pelo nome de sua função do IAM. Você pode editar os valores de MatchingEventTypes para incluir somente os tipos de evento que deseja registrar.

{
    "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.    Mapeie o conjunto de configurações para os parâmetros de destino executando o seguinte comando create-configuration-set-event-destination:

Importante: certifique-se de substituir VoiceKinesis pelo nome do conjunto de configurações.

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

7.    Teste a configuração enviando uma mensagem de voz do Amazon Pinpoint usando a operação da API SendVoiceMessage. Depois de alguns minutos, o evento aparece no bucket do Amazon S3 que você configurou ao criar a transmissão do Kinesis Data Firehose.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?