Direkt zum Inhalt

Wie richte ich die Protokollierung für AWS End User Messaging-Sprachnachrichten mit Amazon Pinpoint ein?

Lesedauer: 6 Minute
0

Ich möchte den Status der Sprachnachrichten überwachen, die ich über Amazon Pinpoint sende.

Ich möchte den Status der Sprachnachrichten überwachen, die ich über Amazon Pinpoint sende.

Lösung

Um den Status von Amazon Pinpoint-Sprachnachrichten zu protokollieren, konfiguriere einen Konfigurationssatz und ein Ereignisziel. Ordne dann das Ereignisziel deinem Konfigurationssatz zu. Diese Konfiguration ermöglicht es dir, die Antwortinformationen für die Sprachnachrichten zu erhalten, die du über Amazon Pinpoint sendest.

Du kannst jede der folgenden AWS-Ressourcen als Amazon Pinpoint-Sprach-Ereignisziele konfigurieren:

Um ein Ereignisziel zu konfigurieren, verwende entweder die AWS End User Messaging-APIs oder eines der AWS-SDKs.

Hinweis: Die folgende Konfiguration zur Protokollierung von Sprachnachrichten gilt nur für AWS End User Messaging. Informationen zu SMS und Voice v1 findest du unter Wie richte ich die Protokollierung für Amazon Pinpoint-Sprachnachrichten für die Amazon Pinpoint SMS- und Voice v1-API ein?

Ein Amazon SNS-Thema als Amazon Pinpoint-Sprach-Ereignisziel konfigurieren

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Gehe wie folgt vor, um ein Amazon SNS-Thema als Amazon Pinpoint-Sprach-Ereignisziel zu konfigurieren:

  1. Führe den Befehl create-configuration-set aus, um einen Konfigurationssatz zu erstellen:

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

    Hinweis: Ersetze VoiceSNS durch den Namen für deinen Konfigurationssatz.

  2. Abonniere den Endpunkt, an dem du Sprachnachrichten für ein Amazon SNS-Thema protokollieren möchtest. Das SNS-Thema kann entweder ein neues oder ein vorhandenes Thema sein. Führe den Befehl create-topic aus, um mithilfe der AWS CLI ein neues Amazon SNS-Thema zu erstellen:

    aws sns create-topic --name pinpointsmsvoice
  3. Füge der SNS-Themenzugriffsrichtlinie die folgende Berechtigung hinzu. Diese Richtlinie ermöglicht es dem AWS End User Messaging-Sprachdienst, Protokolle zu übermitteln:

    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sms-voice.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:us-east-1:ACCOUNT_ID:pinpointsmsvoice",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "ACCOUNT_ID"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceSNS"
        }
      }
    }

    Hinweis: Ersetze us-east-1 durch deine AWS-Region, pinpointsmsvoice durch den Namen deines SNS-Themas und ACCOUNT_ID durch deine AWS-Konto-ID.

  4. Erstelle in einem Texteditor eine Eingabeanforderungsdatei mit dem Namen matching.json für MatchingEventTypes. Gib die Ereignisse an, die du erhalten möchtest, oder gib „ALL“ an, um alle Ereignisse zu erhalten:

    [
    "ALL"
    ]
  5. Um das Ereignisziel dem configuration-set-name zuzuordnen, führe den Befehl create-event-destination aus:

    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:us-east-1:ACCOUNT_ID:pinpointsmsvoice

    Hinweis: Ersetze us-east-1 durch deine Region, ACCOUNT_ID durch deine Konto-ID und pinpointsmsvoice durch den Namen deines SNS-Themas.

  6. Um das Setup zu testen, verwende die V2 API-Operation SendVoiceMessage, um eine Amazon Pinpoint-Sprachnachricht zu senden. Nach einigen Minuten erscheint das Ereignis auf dem Endpunkt, der das SNS-Thema abonniert hat.

CloudWatch Logs als Amazon Pinpoint-Ziel für Sprach-Ereignisse konfigurieren

Gehe wie folgt vor, um CloudWatch Logs als Amazon Pinpoint-Ziel für Sprach-Ereignisse zu konfigurieren:

  1. Führe den Befehl create-configuration-set aus, um einen Konfigurationssatz zu erstellen:

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

    Hinweis: Ersetze VoiceCW durch einen beliebigen Namen für deinen Konfigurationssatz.

  2. Führe den Befehl create-log-group aus, um eine neue CloudWatch-Protokollgruppe zu erstellen, die Sprachnachrichtenprotokolle erhält:

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

    -oder-

    Verwende eine vorhandene CloudWatch-Protokollgruppe und rufe den ARN in den folgenden Schritten ab:
    Öffne die CloudWatch-Konsole.
    Wähle im Navigationsbereich Protokolle aus. Wähle dann Protokollgruppe aus.
    Wähle in der Spalte Protokollgruppe den Namen deiner Protokollgruppe aus.
    Kopiere im Bereich Protokollgruppendetails den ARN-Wert. Dies ist der ARN deiner Protokollgruppe.

  3. Erstelle eine neue IAM-Rolle, die der Amazon Pinpoint-Service übernehmen soll.

  4. Aktualisiere die IAM-Rollenvertrauensrichtlinie mit der folgenden Berechtigungsanweisung:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "sms-voice.amazonaws.com"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "aws:SourceAccount": "ACCOUNT_ID"
            },
            "ArnLike": {
              "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceKinesis"
            }
          }
        }
      ]
    }

    Hinweis: Diese Richtlinie ermöglicht es dem SMS-Sprachdienst, die IAM-Rolle zu übernehmen.

  5. Aktualisiere die Richtlinie für IAM-Rollenberechtigungen mit der folgenden Anweisung:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "logs:CreateLogStream",
                    "logs:DescribeLogStreams",
                    "logs:PutLogEvents"
                ],
                "Resource": [
                    "arn:aws:logs:us-east-1:ACCOUNT_ID:log-group:/aws/pinpoint/voice:*"
                ]
            }
        ]
    }

    Hinweis: Diese Berechtigungsrichtlinie gewährt Berechtigungen zum Aufrufen bestimmter CloudWatch Logs-API-Operationen. Weitere Informationen findest du in der Referenz zu den CloudWatch Logs-Berechtigungen.

  6. Erstelle in einem Texteditor eine Eingabeanforderungsdatei mit dem Namen CloudWatchDestination.json. Gib dann die folgenden Zielparameter in die Datei ein:

    `{   "IamRoleArn": "arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE",   "LogGroupArn": "arn:aws:logs:us-east-1:ACCOUNT_ID:log-group:/aws/pinpoint/voice" }`

    Hinweis: Ersetze den Wert für IamRoleArn durch deinen IAM-Rollen-ARN. Ersetze den Wert für LogGroupArn durch den ARN der CloudWatch-Protokollgruppe, an die du Ereignisse senden möchtest.

  7. Erstelle in einem Texteditor eine Eingabeanforderungsdatei mit dem Namen matching.json für MatchingEventTypes. Gib die Ereignisse an, die du erhalten möchtest, oder gib „ALL“ an, um alle Ereignisse zu erhalten:

    [
    "ALL"
    ]

    Hinweis: Ersetze VoiceCW durch den Namen deines Konfigurationssatzes.

  8. Führe den Befehl create-event-destination aus, um das Ereignisziel dem configuration-set-name zuzuordnen:

    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. Um das Setup zu testen, verwende die V2 API-Operation SendVoiceMessage, um eine Amazon Pinpoint-Sprachnachricht zu senden. Das Ereignis erscheint nach einigen Minuten in der CloudWatch-Protokollgruppe.

Konfiguriere einen Firehose-Bereitstellungsdatenstrom als Amazon Pinpoint-Sprach-Ereignisziel

Gehe wie folgt vor, um einen Firehose-Bereitstellungsdatenstrom als Amazon Pinpoint-Sprach-Ereignisziel zu konfigurieren:

  1. Führe den Befehl create-configuration-set aus, um einen Konfigurationssatz zu erstellen:

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

    Hinweis: Ersetze VoiceKinesis durch den Namen deines Konfigurationssatzes.

  2. Erstelle einen Firehose-Bereitstellungsdatenstrom. Wähle für die Destination setting (Zieleinstellung) Amazon Simple Storage Service (Amazon S3) aus.

  3. Erstelle eine neue IAM-Rolle, die der Amazon Pinpoint-Service übernehmen soll.

  4. Aktualisiere die IAM-Rollenvertrauensrichtlinie mit der folgenden Berechtigungsanweisung im Prinzipalbereich der Richtlinie:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "sms-voice.amazonaws.com"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "aws:SourceAccount": "ACCOUNT_ID"
            },
            "ArnLike": {
              "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceKinesis"
            }
          }
        }
      ]
    }

    Hinweis: Diese Richtlinie ermöglicht es dem SMS-Sprachdienst, die IAM-Rolle zu übernehmen.

  5. Aktualisiere die IAM-Rollenberechtigungsrichtlinie, sodass sie den Firehose-Bereitstellungsdatenstrom-ARN enthält:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "firehose:PutRecord",
                "Resource": "arn:aws:firehose:us-east-1:ACCOUNT_ID:deliverystream/KINESIS_FIREHOSE_NAME"
            }
        ]
    }

    Hinweis: Ersetze ACCOUNT_ID durch deine Konto-ID und KINESIS_FIREHOSE_NAME durch den Namen deines Firehose-Bereitstellungsdatenstrom-ARN.

  6. Erstelle in einem Texteditor eine Eingabeanforderungsdatei mit dem Namen KinesisFirehoseDestination.json. Kopiere dann die folgenden Zielparameter und füge sie in die Datei ein:

    {
        "IamRoleArn": "arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE",
        "DeliveryStreamArn": "arn:aws:firehose:us-east-1:ACCOUNT_ID:deliverystream/KINESIS_FIREHOSE_NAME"
    }

    Hinweis: Ersetze us-east-1 durch deine AWS-Region, ACCOUNT_ID durch deine Konto-ID, KINESIS_FIREHOSE_NAME durch den Namen deines Firehose-Bereitstellungsdatenstroms und IAM_ROLE durch deinen IAM-Rollennamen.

  7. Um das Ereignisziel dem configuration-set-name zuzuordnen, führe den Befehl create-event-destination mit einer Eingabeanforderungsdatei aus:

  8. Erstelle in einem Texteditor eine Eingabeanforderungsdatei mit dem Namen matching.json für MatchingEventTypes. Gib die Ereignisse an, die du erhalten möchtest, oder gib „ALL“ an, um alle Ereignisse zu erhalten:

    [
    "ALL"
    ]
  9. Führe den Befehl create-event-destination aus:

    aws pinpoint-sms-voice-v2 create-event-destination --configuration-set-name VoiceKinesis --event-destination-name KinesisFirehose_Destination --matching-event-types file://matching.json --kinesis-firehose-destination file://KinesisFirehoseDestination.json

    **Hinweis:**Ersetze VoiceKinesis durch den Namen deines Konfigurationssatzes.

  10. Um das Setup zu testen, verwende die V2 API-Operation SendVoiceMessage, um eine Amazon Pinpoint-Sprachnachricht zu senden. Das Ereignis erscheint nach einigen Minuten im Amazon S3-Bucket, den du bei der Erstellung des Firehose-Bereitstellungsdatenstroms konfiguriert hast.

AWS OFFICIALAktualisiert vor einem Jahr