Come si configura la registrazione per i messaggi vocali Amazon Pinpoint per l'API di messaggistica vocale e SMS di Amazon Pinpoint v1?

8 minuti di lettura
0

Voglio monitorare lo stato dei messaggi vocali che invio tramite Amazon Pinpoint. Come lo configuro?

Breve descrizione

Per registrare lo stato dei messaggi vocali di Amazon Pinpoint, è necessario prima configurare una destinazione dell'evento. Dopo aver configurato la destinazione dell'evento, riceve le informazioni di risposta relative ai messaggi vocali inviati tramite Amazon Pinpoint.

Puoi configurare una delle seguenti risorse AWS come destinazioni di eventi vocali di Amazon Pinpoint:

Per configurare la destinazione di un evento, puoi utilizzare le API di messaggistica vocale e SMS di Amazon Pinpoint o uno degli SDK AWS.

Nota: la seguente risoluzione si applica solo all'API di messaggistica vocale e SMS di Amazon Pinpoint v1. Per l'API Amazon Pinpoint SMS and Voice v2, consulta Come posso configurare la registrazione dei messaggi vocali Amazon Pinpoint oer l'API Amazon Pinpoint SMS and Voice v2?

Risoluzione

Le seguenti procedure di esempio mostrano come utilizzare le API di messaggistica vocale e SMS di Amazon Pinpoint per creare una destinazione per un evento. Affinché ogni configurazione di esempio funzioni, per inviare messaggi vocali è necessario utilizzare l'operazione API SendVoiceMessage. La richiesta API deve passare anche il nome del set di configurazione nel parametro ConfigurationSetName. Per il codice di esempio, consulta Invio di messaggi vocali nella Guida per gli sviluppatori di Amazon Pinpoint.

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI. Se i registri vocali non vengono compilati dopo aver completato una di queste procedure, consulta il seguente articolo: Perché i registri dei messaggi vocali di Amazon Pinpoint non vengono compilati?

Configurazione di un argomento Amazon SNS come destinazione di un evento vocale di Amazon Pinpoint

1.    Assicurati che la policy di accesso per il tuo argomento SNS includa la seguente autorizzazione. Ciò consente al server Amazon Pinpoint di fornire i registri:

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

2.    Crea un set di configurazione eseguendo il seguente comando create-configuration-set di AWS CLI:

Nota: puoi sostituire VoiceSNS per il set di configurazione con qualsiasi nome.

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

3.    Sottoscrivi l'endpoint per il quale desideri ricevere i registri dei messaggi vocali a un argomento Amazon SNS esistente o a un nuovo argomento. Per istruzioni, consulta Sottoscrizione di un endpoint a un argomento Amazon SNS nella Guida per gli sviluppatori di Amazon SNS.

Nota: per creare un nuovo argomento Amazon SNS utilizzando AWS CLI, esegui il comando create-topic:

aws sns create-topic --name pinpointsmsvoice

4.    In un editor di testo, crea un file di richiesta di input denominato SNSDestination.json. Quindi, copia e incolla i seguenti parametri di destinazione nel file:

Importante: sostituisci  con la tua Regione AWS. Sostituisci con il tuo ID account AWS. Sostituisci pinpointsmsvoice con il nome del tuo argomento Amazon SNS. Puoi modificare i valori MatchingEventTypes in modo da includere solo i tipi di evento che si desidera registrare.

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

5.    Mappa il set di configurazione ai parametri di destinazione utilizzando il seguente comando create-configuration-set-event-destination:

Importante: assicurati di sostituire VoiceSNS con il nome del set di configurazione.

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

6.    Verifica la configurazione inviando un messaggio vocale Amazon Pinpoint utilizzando l'operazione API SendVoiceMessage. Dopo alcuni minuti, l'evento viene visualizzato nell'endpoint sottoscritto all'argomento Amazon SNS.

Importante: assicurati che il parametro ConfigurationSetName della richiesta API corrisponda al nome del set di configurazione.

Configurazione di CloudWatch Logs come destinazione di eventi vocali di Amazon Pinpoint

1.    Crea un set di configurazione eseguendo il seguente comando create-configuration-set di AWS CLI:

Nota: puoi sostituire VoiceCW con qualsiasi nome per il set di configurazione.

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

2.    Crea un nuovo gruppo di log di CloudWatch per ricevere i registri dei messaggi vocali eseguendo il comando create-log-group:

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

-oppure-

Utilizza un gruppo di log CloudWatch esistente per completare i seguenti passaggi.

3.    Ottieni l'ARN del tuo gruppo di log di CloudWatch effettuando le seguenti operazioni:
Apri la console CloudWatch.
Nel pannello di navigazione a sinistra, scegli Rules (Regole). Quindi, scegli Log groups (Gruppi di log).
Nella colonna Log group (Gruppo di log), scegli il nome del tuo gruppo di log.
Nel riquadro Log group details (Dettagli del gruppo di log), copia il valore ARN. Questo è l'ARN del tuo gruppo di log.

4.    Crea un nuovo ruolo AWS Identity and Access Management (IAM) che il servizio Amazon Pinpoint possa assumere. Per istruzioni, consulta Creazione di un ruolo per un servizio AWS (console) o Creazione di un ruolo per un servizio (AWS CLI). Quando configuri il ruolo, modifica la policy di attendibilità del ruolo in modo che includa la seguente istruzione di autorizzazione nella sezione principale della policy:

Nota: questa istruzione di autorizzazione consente al servizio sms-voice di assumere il ruolo IAM.

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

5.    Modifica la policy di autorizzazione del ruolo IAM in modo che includa la seguente istruzione di autorizzazione:

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

Nota: questa istruzione di autorizzazione concede le autorizzazioni per chiamare specifiche operazioni API di CloudWatch Logs. Per ulteriori informazioni, consulta Riferimento alle autorizzazioni di CloudWatch Logs.

6.    In un editor di testo, crea un file di richiesta di input denominato CloudWatchDestination.json. Quindi, copia e incolla i seguenti parametri di destinazione nel file:

Importante: sostituisci  con la tua Regione AWS. Sostituisci con il tuo ID account AWS. Sostituisci con il nome del ruolo IAM. Puoi modificare i valori MatchingEventTypes in modo da includere solo i tipi di evento che si desidera registrare.

{
    "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.    Mappa il set di configurazione ai parametri di destinazione utilizzando il seguente comando create-configuration-set-event-destination:

Importante: assicurati di sostituire VoiceCW con il nome del tuo set di configurazione.

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

8.    Verifica la configurazione inviando un messaggio vocale Amazon Pinpoint utilizzando l'operazione API SendVoiceMessage. Dopo alcuni minuti, l'evento viene visualizzato nel gruppo di log di CloudWatch.

Configurazione di un flusso Kinesis Data Firehose come destinazione di un evento vocale di Amazon Pinpoint

1.    Crea un set di configurazione eseguendo il seguente comando create-configuration-set di AWS CLI:

Nota: puoi sostituire VoiceKinesis con qualsiasi nome per il tuo set di configurazione.

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

2.    Creazione di un flusso di distribuzione Kinesis Data Firehose. Per l'impostazione di destinazione, scegli Amazon Simple Storage Service (Amazon S3).

Importante: accetta il ruolo di servizio IAM predefinito. Quindi, copia il nome del ruolo del servizio IAM negli Appunti. Il nome del ruolo è necessario per i seguenti passaggi.

3.    Modifica la policy di attendibilità del ruolo di servizio IAM predefinito in modo che includa la seguente istruzione di autorizzazione nella sezione principale della policy:

Nota: questa istruzione di autorizzazione concede al servizio sms-voice di assumere il ruolo IAM.

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

4.    Modifica la policy di autorizzazione del ruolo del servizio IAM in modo che includa la seguente istruzione di autorizzazione:

Importante: non rimuovere alcuna delle istruzioni di autorizzazione predefinite del ruolo del servizio IAM.

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

5.    In un editor di testo, crea un file di richiesta di input denominato KinesisFirehoseDestination.json. Quindi, copia e incolla i seguenti parametri di destinazione nel file:

Importante: sostituisci  con la tua Regione AWS. Sostituisci con il tuo ID account AWS. Sostituisci Name_of_Kinesis_Firehose con il nome del tuo flusso Amazon Kinesis Data Firehose. Sostituisci con il nome del tuo ruolo IAM. Puoi modificare i valori MatchingEventTypes in modo da includere solo i tipi di evento che si desidera registrare.

{
    "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.    Mappa il set di configurazione ai parametri di destinazione utilizzando il seguente comando create-configuration-set-event-destination:

Importante: assicurati di sostituire VoiceKinesis con il nome del tuo set di configurazione.

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

7.    Verifica la configurazione inviando un messaggio vocale Amazon Pinpoint utilizzando l'operazione API SendVoiceMessage. Dopo alcuni minuti, l'evento viene visualizzato nel bucket Amazon S3 configurato durante la creazione del flusso Kinesis Data Firehose.


AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa