¿Cómo se configura el registro de los mensajes de voz de Amazon Pinpoint para la primera versión de la API de mensajería de voz y SMS de Amazon Pinpoint?

9 minutos de lectura
0

Quiero supervisar el estado de los mensajes de voz que envío a través de Amazon Pinpoint. ¿Cómo se configura?

Descripción corta

Para registrar el estado de los mensajes de voz de Amazon Pinpoint, debe configurar un destino de evento. Una vez configurado el destino del evento, este recibirá la información de respuesta sobre los mensajes de voz que envía a través de Amazon Pinpoint.

Puede configurar cualquiera de los siguientes recursos de AWS como destinos de eventos de voz de Amazon Pinpoint:

Para configurar un destino de evento, puede utilizar las API de mensajería de voz y SMS de Amazon Pinpoint o uno de los SDK de AWS.

Nota: La siguiente resolución solo se aplica a la primera versión de la API de mensajería de voz y SMS de Amazon Pinpoint. Para obtener información sobre la segunda versión de la API de mensajería de voz y SMS de Amazon Pinpoint, consulte ¿Cómo se configura el registro de los mensajes de voz de Amazon Pinpoint para la segunda versión de la API de mensajería de voz y SMS de Amazon Pinpoint?

Resolución

Los siguientes procedimientos de ejemplo muestran cómo utilizar las API de mensajería de voz y SMS de Amazon Pinpoint para crear un destino de evento. Para que cada configuración de ejemplo funcione, debe usar la operación de API SendVoiceMessage para enviar mensajes de voz. La solicitud de API también debe transferir el nombre del conjunto de configuración en el parámetro ConfigurationSetName. Para ver un código de ejemplo, consulte Enviar mensajes de voz en la Guía para desarrolladores de Amazon Pinpoint.

Nota: Si recibe errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de que utiliza la versión más reciente de AWS CLI. Si los registros de voz no se completan después de realizar alguno de estos procedimientos, consulte el siguiente artículo: ¿Por qué no se completan los registros de mensajes de voz de Amazon Pinpoint?

Configurar un tema de Amazon SNS como destino de eventos de voz de Amazon Pinpoint

1.    Asegúrese de que la política de acceso de su tema de SNS incluya los siguientes permisos. Esto permite que el servidor de Amazon Pinpoint entregue registros:

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

2.    Cree un conjunto de configuración mediante la ejecución del siguiente comando create-configuration-set en AWS CLI:

Nota: Puede reemplazar VoiceSNS por cualquier nombre para el conjunto de configuraciones.

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

3.    Suscriba el punto de conexión que desea que reciba registros de mensajes de voz a un tema de Amazon SNS existente o a un tema nuevo. Para obtener instrucciones, consulte el Para suscribir un punto de conexión a un tema de Amazon SNS en la Guía para desarrolladores de Amazon SNS.

Nota: Para crear un nuevo tema de Amazon SNS con AWS CLI, ejecute el comando create-topic:

aws sns create-topic --name pinpointsmsvoice

4.    En un editor de texto, cree un archivo de solicitud de entrada denominado SNSDestination.json. A continuación, copie y pegue los siguientes parámetros de destino en el archivo:

Importante: sustituya  por su región de AWS. Sustituya por el ID de su cuenta de AWS. Sustituya pinpointsmsvoice por el nombre de su tema de Amazon SNS. Puede editar los valores de MatchingEventTypes para incluir solo los tipos de eventos que desea registrar.

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

5.    Asigne el conjunto de configuraciones a los parámetros de destino mediante la ejecución del siguiente comando create-configuration-set-event-destination:

Importante: asegúrese de reemplazar VoiceSNS por el nombre de su conjunto de configuración.

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

6.    Pruebe la configuración mediante el envío de un mensaje de voz de Amazon Pinpoint a través de la operación de API SendVoiceMessage. Después de unos minutos, el evento aparecerá en el punto de conexión que está suscrito al tema de Amazon SNS.

Importante: asegúrese de que el parámetro ConfigurationSetName de la solicitud de API coincida con el nombre del conjunto de configuraciones.

Configurar CloudWatch Logs como destino de eventos de voz de Amazon Pinpoint

1.    Cree un conjunto de configuración mediante la ejecución del siguiente comando create-configuration-set en la CLI de AWS:

Nota: puede reemplazar VoiceCW por cualquier nombre para el conjunto de configuraciones.

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

2.    Cree un nuevo grupo de registros de CloudWatch para recibir registros de mensajes de voz mediante la ejecución del siguiente comando create-log-group:

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

De forma alternativa, realice lo siguiente:

Utilice un grupo de registros de CloudWatch existente para completar los siguientes pasos.

3.    Obtenga el ARN de su grupo de registros de CloudWatch de la siguiente manera:
Abra la consola de CloudWatch.
En el panel de navegación izquierdo, elija Logs (Registros). A continuación, seleccione Log groups (Grupos de registros).
En la columna Log group (Grupo de registros), elija el nombre del grupo de registros.
En el panel Log group details (Detalles del grupo de registros), copie el valor de ARN. Este es el ARN del grupo de registros.

4.    Cree un nuevo rol de AWS Identity and Access Management (IAM) para que lo asuma el servicio Amazon Pinpoint. Para obtener instrucciones, consulte Creación de un rol para un servicio de AWS (consola) o Creación de un rol para un servicio (AWS CLI). Al configurar el rol, modifique la política de confianza del rol para que incluya la siguiente declaración de permisos en la sección principal de la política:

Nota: esta declaración de permisos permite que el servicio sms-voice asuma el rol de IAM.

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

5.    Modifique la política de permisos del rol de IAM para que incluya la siguiente declaración de permisos:

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

Nota: esta declaración de permisos otorga permisos para llamar a operaciones específicas de la API de CloudWatch Logs. Para obtener más información, consulte la referencia de permisos de CloudWatch Logs.

6.    En un editor de texto, cree un archivo de solicitud de entrada denominado CloudWatchDestination.json. A continuación, copie y pegue los siguientes parámetros de destino en el archivo:

Importante: sustituya  por su región de AWS. Sustituya por el ID de su cuenta de AWS. Sustituya por el nombre del rol de IAM. Puede editar los valores de MatchingEventTypes para incluir solo los tipos de eventos que desea 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.    Asigne el conjunto de configuraciones a los parámetros de destino mediante la ejecución del siguiente comando create-configuration-set-event-destination:

Importante: asegúrese de reemplazar VoiceCW por el nombre de su conjunto de configuración.

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

8.    Pruebe la configuración mediante el envío de un mensaje de voz de Amazon Pinpoint a través de la operación de API SendVoiceMessage. Después de unos minutos, el evento aparecerá en el grupo de registros de CloudWatch.

Configurar una secuencia de Kinesis Data Firehose como destino de eventos de voz de Amazon Pinpoint

1.    Cree un conjunto de configuración mediante la ejecución del siguiente comando create-configuration-set en la CLI de AWS:

Nota: puede reemplazar VoiceKinesis por cualquier nombre del conjunto de configuraciones.

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

2.    Crear una secuencia de entrega en Kinesis Data Firehose. Para la configuración Destination (Destino), elija Simple Storage Service (Amazon S3).

Importante: acepte el rol de servicio de IAM predeterminado. A continuación, copie el nombre del rol de servicio de IAM en el portapapeles. Necesita el nombre del rol para llevar a cabo los siguientes pasos.

3.    Modifique la política de confianza del rol de servicio de IAM predeterminado para que incluya la siguiente declaración de permisos en la sección principal de la política:

Nota: esta declaración de permisos otorga al servicio sms-voice la posibilidad de asumir el rol de IAM.

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

4.    Modifique la política de permisos del rol de servicio de IAM para que incluya la siguiente declaración de permisos:

Importante: no elimine ninguna de las declaraciones de permisos predeterminadas del rol de servicio de IAM.

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

5.    En un editor de texto, cree un archivo de solicitud de entrada denominado KinesisFirehoseDestination.json. A continuación, copie y pegue los siguientes parámetros de destino en el archivo:

Importante: sustituya  por su región de AWS. Sustituya por el ID de su cuenta de AWS. Sustituya Name_of_Kinesis_Firehose por el nombre de su secuencia de Amazon Kinesis Data Firehose. Sustituya por el nombre de su rol de IAM. Puede editar los valores de MatchingEventTypes para incluir solo los tipos de eventos que desea 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.    Asigne el conjunto de configuraciones a los parámetros de destino mediante la ejecución del siguiente comando create-configuration-set-event-destination:

Importante: asegúrese de reemplazar VoiceKinesis por el nombre de su conjunto de configuración.

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

7.    Pruebe la configuración mediante el envío de un mensaje de voz de Amazon Pinpoint a través de la operación de API SendVoiceMessage. Después de unos minutos, el evento aparecerá en el bucket de S3 que configuró al crear la secuencia de Kinesis Data Firehose.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años