Como faço para configurar o registro em log para mensagens de voz do Amazon Pinpoint para a API do Amazon Pinpoint SMS e Voice v2?

7 minuto de leitura
0

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

Resolução

Para fazer o log do status das mensagens de voz do Amazon Pinpoint, você deve configurar um conjunto de configurações e um destino de evento. Depois que o destino do evento for configurado, ele deverá ser mapeado para o seu conjunto de configurações. Isso permite que você receba as informações de resposta sobre as mensagens de voz enviadas pelo 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, use as APIs do Amazon Pinpoint SMS e mensagens de voz v2 ou um dos SDKs da AWS.

Observação: a resolução a seguir se aplica somente à API SMS and Voice v2 do Amazon Pinpoint. Para a API SMS and Voice v1 do Amazon Pinpoint, consulte Como faço para configurar o registro em log para mensagens de voz do Amazon Pinpoint para a API SMS and Voice v1 do Amazon Pinpoint?

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 (pinpoint-sms-voice v2) da CLI da AWS:

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

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

2.    Assine o endpoint para o qual você deseja receber registros de log de mensagens de voz em um tópico do Amazon SNS. O tópico do SNS pode ser um tópico novo ou existente. Para obter instruções, consulte Para inscrever um endpoint em um tópico 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.    Você deve ter a seguinte permissão em sua política de acesso ao tópico do SNS. Isso permite que o serviço de voz SMS do Amazon Pinpoint entregue registros:

Importante: substitua pela sua região da AWS. Substitua pelo ID da sua conta da AWS. Substitua pinpointsmsvoice pelo nome do seu tópico do SNS.

{
  "Sid": "pinpointsmsvoice",
  "Effect": "Allow",
  "Principal": {
    "Service": "sms-voice.amazonaws.com"
  },
  "Action": "SNS:Publish",
  "Resource": "arn:aws:<region>:<AccountID>:pinpointsmsvoice"
}

4.    Em um editor de texto, crie um arquivo de solicitação de entrada chamado matching.json para MatchingEventTypes. Especifique os eventos que você deseja receber, ou especifique “ALL” para receber todos os eventos, conforme mostrado abaixo.

[
"ALL"
]

5.    Mapeie o destino do evento para o configuration-set-name executando o seguinte comando create-event-destination:

Importante: substitua pela sua região da AWS. Substitua pelo ID da sua conta da AWS. Substitua pinpointsmsvoice pelo nome do seu tópico do Amazon SNS.

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:<region>:<AccountId>:pinpointsmsvoice

6.    Teste a configuração enviando uma mensagem de voz do Amazon Pinpoint usando a operação da API SendVoiceMessage v2. Após alguns minutos, o evento aparece no endpoint inscrito no tópico do SNS.

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 (pinpoint-sms-voice v2) da CLI da AWS:

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

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

2.    Crie um novo grupo de logs do CloudWatch para receber registros de mensagens de voz executando o seguinte 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 Grupo de logs, escolha o nome do seu grupo de logs.

No painel 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 o perfil 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 do perfil 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

pela sua região da AWS. Substitua pelo ID da sua conta da AWS. Substitua pelo nome do perfil do IAM.

{
  "IamRoleArn": "arn:aws:iam::<AccountID>:role/<IAM role name>",
  "LogGroupArn": "arn:aws:logs:<region>:<AccountID>:log-group:pinpointsmsvoice:"
}

7.    Em um editor de texto, crie um arquivo de solicitação de entrada chamado matching.json para MatchingEventTypes. Especifique os eventos que você deseja receber, ou especifique “ALL” para receber todos os eventos, conforme mostrado abaixo.

[
"ALL"
]

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

8.    Mapeie o destino do evento para o configuration-set-name executando o seguinte comando create-event-destination:

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.    Teste a configuração enviando uma mensagem de voz do Amazon Pinpoint usando a operação da API SendVoiceMessage v2. Depois de alguns minutos, o evento aparece no endpoint que está inscrito no tópico do Amazon SNS.

Configurar um stream 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 (pinpoint-sms-voice v2) da CLI da AWS:

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

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

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

Importante: aceite o perfil de serviço padrão do IAM. Em seguida, copie o nome do perfil 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 permissões do perfil do IAM 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 o perfil do IAM.

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

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos