Wie richte ich die Protokollierung für Amazon-Pinpoint-Sprachnachrichten ein?

Letzte Aktualisierung: 26.04.2022

Ich möchte den Status der Sprachnachrichten überwachen, die ich über Amazon Pinpoint versende. Wie richte ich das ein?

Kurzbeschreibung

Um den Status von Amazon-Pinpoint-Sprachnachrichten zu protokollieren, müssen Sie ein Ereignisziel konfigurieren. Nachdem das Ereignisziel eingerichtet ist, erhält es die Antwort zu den Informationen der Sprachnachrichten, die Sie über Amazon Pinpoint senden.

Sie können jede der folgenden AWS-Ressourcen als Amazon Pinpoint-Sprachereignisziele konfigurieren:

Um ein Ereignisziel zu konfigurieren, können Sie entweder die Amazon Pinpoint SMS- und voive messaging-APIs oder eines der AWS-SDKs verwenden.

Lösung

Die folgenden Beispielverfahren zeigen, wie Sie die Amazon Pinpoint SMS- und voice messaging-APIs verwenden, um ein Ereignisziel zu erstellen. Damit jedes Beispiel-Setup funktioniert, müssen Sie die SendVoiceMessage-API-Operation zum Senden von Sprachnachrichten verwenden. Die API-Anforderung muss außerdem den Namen Ihres Konfigurationssatzes im Parameter ConfigurationSetName übergeben. Einen Beispielcode finden Sie im Amazon Pinpoint Developer Guide unter Sprachnachrichten senden.

Hinweis: Wenn Sie beim Ausführen von AWS-Command-Line-Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden. Wenn die Sprachprotokolle nach Abschluss einer dieser Prozeduren nicht aufgefüllt werden, lesen Sie bitte den folgenden Artikel: Warum werden meine Amazon-Pinpoint-Sprachnachrichtenprotokolle nicht aufgefüllt?

So konfigurieren Sie ein Amazon SNS-Thema als Amazon Pinpoint-Sprachereignisziel

1.    Erstellen Sie ein Konfigurationsset, indem Sie den folgenden AWS-CLI-Befehl create-configuration-set ausführen:

Hinweis: Sie können VoiceSNS durch einen beliebigen Namen für Ihr Konfigurationsset ersetzen.

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

2.    Abonnieren Sie den Endpunkt, an dem Sie Sprachnachrichtenprotokolle erhalten möchten, entweder für ein vorhandenes Amazon SNS-Thema oder ein neues Thema. Anweisungen finden Sie unter So abonnieren Sie einen Endpunkt für ein Amazon SNS-Thema im Amazon SNS Developer Guide.

Hinweis: Führen Sie den folgenden create-topic-Befehl aus, um ein neues Amazon-SNS-Thema mithilfe der AWS-CLI zu erstellen:

aws sns create-topic --name pinpointsmsvoice

3.    Erstellen Sie in einem Texteditor eine Eingabeanforderungsdatei mit dem Namen SNSDestination.json. Kopieren Sie dann die folgenden Zielparameter und fügen Sie diese in die Datei ein:

Wichtig: Ersetzen Sie <region> mit Ihrer AWS-Region. Ersetzen Sie <AccountID> durch Ihre AWS-Konto-ID. Ersetzen Sie pinpointsmsvoice durch den Namen Ihres Amazon-SNS-Themas. Sie können die MatchingEventTypes-Werte so bearbeiten, dass sie nur die Ereignistypen enthalten, die Sie protokollieren möchten.

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

4.    Ordnen Sie die Konfiguration den Zielparametern zu, indem Sie den folgenden create-configuration-set-event-destination-Befehl ausführen:

Wichtig: Stellen Sie sicher, dass Sie VoiceSNS durch den Namen des Sets Ihrer Konfiguration ersetzen.

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

5.    Testen Sie die Einrichtung, indem Sie eine Amazon Pinpoint-Sprachnachricht mit dem API-VorgangSendVoiceMessagesenden. Nach ein paar Minuten erscheint das Ereignis auf dem Endpunkt, der das Amazon-SNS-Thema abonniert hat.

Wichtig: Stellen Sie sicher, dass der Parameter ConfigurationSetName der API-Anfrage mit dem Namen Ihres Konfigurationssatzes übereinstimmt.

So konfigurieren Sie CloudWatch-Protokolle als Amazon-Pinpoint-Sprachereignisziel

1.    Erstellen Sie ein Konfigurationsset, indem Sie den folgenden AWS-CLI-Befehl create-configuration-set ausführen:

Hinweis: Sie können VoiceCW durch einen beliebigen Namen für Ihr Konfigurationsset ersetzen.

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

2.    Erstellen Sie eine neue CloudWatch-Protokollgruppe für den Empfang von Sprachnachrichtenprotokollen, indem Sie den folgenden create-log-group-Befehl ausführen:

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

-oder-

Verwenden Sie eine vorhandene CloudWatch-Protokollgruppe, um die folgenden Schritte durchzuführen.

3.    Erhalten Sie den ARN Ihrer CloudWatch-Protokollgruppe wie folgt:
Öffnen Sie die CloudWatch-Konsole.
Wählen Sie im linken Navigationsbereich Protokolle aus. Wählen Sie dann Gruppen protokollieren.
Wählen Sie in der Spalte Protokoll-Gruppe den Namen Ihrer Protokoll-Gruppe aus.
Kopieren Sie im Detailbereich der Protokollgruppe den ARN-Wert. Dies ist der ARN Ihrer Protokoll-Gruppe.

4.    Erstellen Sie eine neue AWS Identity und eine Access Management (IAM)-Rolle, die der Amazon Pinpoint Dienst übernehmen soll. Anweisungen finden Sie unter Erstellen einer Rolle für einen AWS-Service (Konsole) oder Erstellen einer Rolle für einen Service (AWS CLI). Ändern Sie beim Konfigurieren der Rolle die Vertrauensrichtlinie der Rolle so, dass sie die folgende Genehmigungsanweisung im Hauptabschnitt der Richtlinie enthält:

Hinweis: Mit dieser Genehmigungssanweisung kann der SMS-Sprachdienst die IAM-Rolle übernehmen.

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

5.    Ändern Sie die Genehmigungsrichtlinie der IAM-Rolle so, dass sie die folgende Genehmigungsanweisung enthält:

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

Hinweis: Diese Genehmigungsanweisung gewährt Genehmigungen zum Aufrufen bestimmter CloudWatch-Protokolle-API-Vorgänge. Weitere Informationen finden Sie in der Hinweis zu CloudWatch-Protokoll-Genehmigungen.

6.    Erstellen Sie in einem Texteditor eine Eingabeanforderungsdatei namens CloudWatchDestination.json. Kopieren Sie dann die folgenden Zielparameter und fügen Sie diese in die Datei ein:

Wichtig: Ersetzen Sie <region> mit Ihrer AWS-Region. Ersetzen Sie <AccountID> durch Ihre AWS-Konto-ID. Ersetzen Sie <IAM role name> durch den Namen der IAM-Rolle. Sie können die MatchingEventTypes-Werte so bearbeiten, dass sie nur die Ereignistypen enthalten, die Sie protokollieren möchten.

{
    "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.    Ordnen Sie die Konfiguration den Zielparametern zu, indem Sie den folgenden create-configuration-set-event-destination-Befehl ausführen:

Wichtig: Stellen Sie sicher, dass Sie VoiceCW durch den Namen des Sets Ihrer Konfiguration ersetzen.

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

8.    Testen Sie die Einrichtung, indem Sie eine Amazon Pinpoint-Sprachnachricht mit dem API-VorgangSendVoiceMessagesenden. Nach einigen Minuten wird das Ereignis in der CloudWatch-Protokollgruppe angezeigt.

So konfigurieren Sie einen Kinesis-Data-Firehose-Stream als Amazon-Pinpoint-Sprachereignisziel

1.    Erstellen Sie ein Konfigurationsset, indem Sie den folgenden AWS-CLI-Befehl create-configuration-set ausführen:

Hinweis: Sie können VoiceKinesis durch einen beliebigen Namen für Ihr Konfigurationsset ersetzen.

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

2.    Erstellen eines Amazon-Kinesis-Data-Firehose-Datenstroms. Wählen Sie für dieZieleinstellung Amazon Simple Storage Service (Amazon S3).

Wichtig: Übernehmen Sie die standardmäßige IAM-Service-Rolle. Kopieren Sie dann den Namen der IAM-Service-Rolle in Ihr Clipboard. Für die folgenden Schritte benötigen Sie einen Rollennamen.

3.    Ändern Sie die Vertrauensrichtlinie der standardmäßigen IAM-Service-Rolle so, dass sie die folgende Genehmigungsanweisung im Hauptabschnitt der Richtlinie enthält:

Hinweis: Diese Genehmigungssanweisung gewährt dem SMS-Voice-Dienst die Übernahme der IAM-Rolle.

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

4.    Ändern Sie die Genehmigungsrichtlinie der IAM-Service-Rolle so, dass sie die folgende Genehmigungsanweisung enthält:

Wichtig: Entfernen Sie keine der Standard-Genehmigungsanweisungen der IAM-Service-Rolle.

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

5.    Erstellen Sie in einem Texteditor eine Eingabeanforderungsdatei mit dem Namen kinesisFirehoseDestination.json. Kopieren Sie dann die folgenden Zielparameter und fügen Sie diese in die Datei ein:

Wichtig: Ersetzen Sie <region> mit Ihrer AWS-Region. Ersetzen Sie <AccountID> durch Ihre AWS-Konto-ID. Ersetzen Sie Name_of_Kinesis_Firehose durch den Namen Ihres Amazon-Kinesis-Data-Firehose-Streams. Ersetzen Sie <IAM role name>  durch den Namen Ihrer IAM-Rolle. Sie können die MatchingEventTypes-Werte so bearbeiten, dass sie nur die Ereignistypen enthalten, die Sie protokollieren möchten.

{
    "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.    Ordnen Sie die Konfiguration den Zielparametern zu, indem Sie den folgenden create-configuration-set-event-destination-Befehl ausführen:

Wichtig: Stellen Sie sicher, dass Sie VoiceKinesis durch den Namen Ihres Konfigurationssets ersetzen.

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

7.    Testen Sie die Einrichtung, indem Sie eine Amazon Pinpoint-Sprachnachricht mit dem API-VorgangSendVoiceMessagesenden. Nach einigen Minuten erscheint das Ereignis im Amazon-S3-Bucket, das Sie beim Erstellen des Kinesis-Data-Firehose-Streams konfiguriert haben.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?