Wie richte ich die Protokollierung für Amazon-Pinpoint-Sprachnachrichten für SMS- und Voice-v2-API von Amazon Pinpoint ein?

Lesedauer: 6 Minute
0

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

Auflösung

Um den Status von Amazon-Pinpoint-Sprachnachrichten zu protokollieren, müssen Sie einen Konfigurationssatz und ein Ereignisziel konfigurieren. Nachdem das Ereignisziel eingerichtet wurde, muss es Ihrem Konfigurationssatz zugeordnet werden. Auf diese Weise erhalten Sie Antwortinformationen zu den 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 Voice-Messaging-v2-APIs oder eines der AWS-SDKs verwenden.

Hinweis: Die folgende Lösung gilt nur für SMS- und Voice-v2-API von Amazon Pinpoint. Informationen zu SMS- und Voice-v1-API von Amazon Pinpoint finden Sie unter Wie richte ich die Protokollierung für Amazon-Pinpoint-Sprachnachrichten für SMS- und Voice-v1-API von Amazon Pinpoint ein?

Konfigurieren eines Amazon-SNS-Thema als Amazon-Pinpoint-Sprachereignisziels

1.    Erstellen Sie einen Konfigurationssatz, indem Sie den folgenden AWS-CLI-Befehl create-configuration-set (pinpoint-sms-voice v2) ausführen:

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

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

2.    Richten Sie den Endpunkt, auf dem Sie Sprachnachrichtenprotokolle empfangen möchten, für ein Amazon-SNS-Thema ein. Das SNS-Thema kann entweder ein neues oder ein vorhandenes Thema sein. Anweisungen finden Sie unter So abonnieren Sie einen Endpunkt für ein Amazon-SNS-Thema.

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.    Sie müssen in Ihrer SNS-Themen-Zugriffsrichtlinie über die folgende Berechtigung verfügen. So kann der SMS-Sprachservice von Amazon Pinpoint Protokolle übermitteln:

Wichtig: Ersetzen Sie  mit Ihrer AWS-Region. Ersetzen Sie mit Ihrer AWS-Konto-ID. Ersetzen Sie pinpointsmsvoice durch den Namen Ihres SNS-Themas.

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

4.    Erstellen Sie in einem Texteditor eine Eingabeanforderungsdatei namens matching.json für MatchingEventTypes. Geben Sie die Ereignisse an, die Sie empfangen möchten, oder geben Sie „ALL“ an, um alle Ereignisse zu empfangen, wie unten gezeigt.

[
"ALL"
]

5.    Ordnen Sie das Ereignisziel dem configuration-set-name zu, indem Sie den folgenden Befehl create-event-destination ausführen:

Wichtig: Ersetzen Sie  mit Ihrer AWS-Region. Ersetzen Sie mit Ihrer AWS-Konto-ID. Ersetzen Sie pinpointsmsvoice durch den Namen Ihres SNS-Themas.

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.    Testen Sie die korrekte Einrichtung, indem Sie eine Amazon-Pinpoint-Sprachnachricht mit dem API-Vorgang SendVoiceMessage v2 senden. Nach ein paar Minuten erscheint das Ereignis auf dem empfangenden Endpunkt, der das Amazon-SNS-Thema abonniert hat.

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

1.    Erstellen Sie einen Konfigurationssatz, indem Sie den folgenden AWS-CLI-Befehl create-configuration-set (pinpoint-sms-voice v2) ausführen:

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

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

2.    Erstellen Sie eine neue CloudWatch-Protokollgruppe für den Empfang von Sprachnachrichtenprotokollen, indem Sie den folgenden Befehl create-log-group 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 Protokollgruppe den Namen Ihrer Protokollgruppe aus.

Kopieren Sie im Detailbereich der Protokollgruppe den ARN-Wert. Dies ist der ARN Ihrer Protokollgruppe.

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 Abschnitt „Prinzipal“ der Richtlinie enthält:

Hinweis: Mit dieser Genehmigungssanweisung kann der SMS-Sprachservice 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 Referenz 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

 mit Ihrer AWS-Region. Ersetzen Sie mit Ihrer AWS-Konto-ID. Ersetzen Sie durch den Namen der IAM-Rolle.

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

7.    Erstellen Sie in einem Texteditor eine Eingabeanforderungsdatei namens matching.json für MatchingEventTypes. Geben Sie die Ereignisse an, die Sie empfangen möchten, oder geben Sie „ALL“ an, um alle Ereignisse wie unten gezeigt zu empfangen.

[
"ALL"
]

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

8.    Ordnen Sie das Ereignisziel dem configuration-set-name zu, indem Sie den folgenden Befehl create-event-destination ausführen:

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.    Testen Sie die korrekte Einrichtung, indem Sie eine Amazon-Pinpoint-Sprachnachricht mit dem API-Vorgang SendVoiceMessage v2 senden. Nach ein paar Minuten erscheint das Ereignis auf dem Endpunkt, der das Amazon-SNS-Thema abonniert hat.

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

1.    Erstellen Sie einen Konfigurationssatz, indem Sie den folgenden AWS-CLI-Befehl create-configuration-set (pinpoint-sms-voice v2) ausführen:

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

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

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

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

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

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

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

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren