Direkt zum Inhalt

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

Lesedauer: 6 Minute
0

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

Lösung

Um den Status von Amazon-Pinpoint-Sprachnachrichten zu protokollieren, erstelle einen Konfigurationssatz und ein Ereignisziel. Ordne dann das Ereignisziel dem Konfigurationssatz zu. Verwende die Konfiguration, um Antwortinformationen für die Sprachnachrichten zu erhalten, die du über Amazon Pinpoint sendest.

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

Um ein Ereignisziel zu konfigurieren, verwende entweder die APIs von AWS End User Messaging 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:

  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, auf dem du Sprachnachrichten für ein Amazon-SNS-Thema protokollieren möchtest. Das SNS-Thema kann entweder ein neues oder ein vorhandenes Thema sein.

  3. Füge der SNS-Themenzugriffsrichtlinie die folgenden Berechtigungen hinzu, damit der Sprachdienst von AWS End User Messaging Protokolle übermitteln kann:

    {
      "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, **Sprachdienst ** 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 den V2-API-Vorgang SendVoiceMessage, um eine-Amazon Pinpoint-Sprachnachricht zu senden. Das Ereignis wird nach einigen Minuten auf dem Endpunkt angezeigt, der das SNS-Thema abonniert hat.

CloudWatch Logs als Amazon-Pinpoint-Sprach-Ereignisziel konfigurieren

Gehe wie folgt vor:

  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 den Namen deines Konfigurationssatzes.

  2. Um eine Protokollgruppe zu erstellen, führe den Befehl create-log-group aus: 

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

    Hinweis: Ersetze log-group-name durch den Namen deiner Protokollgruppe. Notiere dir in der Ausgabe des Befehls den Amazon-Ressourcennamen (ARN) der Protokollgruppe, um ihn in einem späteren Schritt zu verwenden. Wenn du eine vorhandene Protokollgruppe verwendest, rufe den LogGroup-API-Vorgang auf, um den ARN abzurufen.

  3. Erstelle eine neue AWS Identity and Access Management (IAM)-Rolle, die der Amazon-Pinpoint-Service übernehmen soll.

  4. Aktualisiere die IAM-Rollenvertrauensrichtlinie mit der folgenden Anweisung, damit der SMS-Sprachdienst die IAM-Rolle übernehmen kann:

    {
      "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/VoiceCW"
            }
          }
        }
      ]
    }

    Hinweis: Ersetze us-east-1 durch deine Region, ACCOUNT_ID durch deine Konto-ID und VoiceCW durch deinen Konfigurationssatz.

  5. Aktualisiere die Berechtigungsrichtlinie für IAM-Rollen 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: Ersetze us-east-1 durch deine Region und ACCOUNT_ID durch deine Konto-ID. Die vorherige Richtlinie erteilt Berechtigungen zum Aufrufen bestimmter CloudWatch-Logs-API-Vorgänge. Weitere Informationen findest du in der Referenz zu 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 den ARN deiner IAM-Rolle. 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"
    ]
  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

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

  9. Um das Setup zu testen, verwende den V2-API-Vorgang 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:

  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 und notiere dir den Bereitstellungsdatenstrom-ARN. 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 Anweisung im Hauptabschnitt 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: Ersetze us-east-1 durch deine Region und ACCOUNT_ID durch deine Konto-ID. Die vorherige Richtlinie ermöglicht es dem SMS-Sprachdienst, die IAM-Rolle zu übernehmen.

  5. Aktualisiere die IAM-Rollenberechtigungsrichtlinie, sodass sie den ARN des Firehose-Bereitstellungsdatenstroms 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 Region, ACCOUNT_ID durch deine Konto-ID, KINESIS_FIREHOSE_NAME durch den Namen deines Firehose-Bereitstellungsdatenstroms und IAM_ROLE durch deinen IAM-Rollennamen.

  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"
    ]
  8. Um das Ereignisziel dem configuration-set-name zuzuordnen, führe den Befehl create-event-destination mit einer Eingabeanforderungsdatei 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.

  9. Um das Setup zu testen, verwende den V2-API-Vorgang 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 6 Monaten