如何使用 Amazon Pinpoint 設定 AWS 終端用戶訊息語音訊息的記錄?

4 分的閱讀內容
0

我想監控透過 Amazon Pinpoint 傳送的語音訊息的狀態。

我想監控透過 Amazon Pinpoint 傳送的語音訊息的狀態。

解決方案

若要記錄 Amazon Pinpoint 語音訊息的狀態,請設定組態集事件目的地。然後,將事件目的地對映到您的組態集。此組態可讓您接收您透過 Amazon Pinpoint 傳送的語音訊息的回應資訊。

您可以將下列任何 AWS 資源設定為 Amazon Pinpoint 語音事件目的地:

若要設定事件目的地,可使用 AWS 終端用戶訊息 API 或其中一個 AWS SDK

**注意:**下列語音消息記錄組態僅適用於 AWS 終端用戶訊息。對於 SMS 和 Voice v1,請參閱如何為 Amazon Pinpoint SMS 和 Voice v1 API 的語音訊息設定記錄?

將 Amazon SNS 主題設定為 Amazon Pinpoint 語音事件目的地

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,那麼請參閱 AWS CLI 錯誤疑難排解。此外,請確認您使用的是最新的 AWS CLI 版本

若要將 Amazon SNS 主題設定為 Amazon Pinpoint 語音事件目的地,請完成以下步驟:

  1. 若要建立組態集,請執行 create-configuration-set 命令:

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

    注意: 將 VoiceSNS 取代為您的組態集名稱。

  2. 將您想要記錄語音訊息的端點訂閱至 Amazon SNS 主題。SNS 主題可以是全新或現有的主題。若要使用 AWS CLI 建立新的 Amazon SNS 主題,請執行 create-topic 命令:

    aws sns create-topic --name pinpointsmsvoice
  3. 在您的 SNS 主題存取政策中新增下列許可。此政策允許 AWS 終端用戶語音訊息服務傳送日誌:

    {
      "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"
        }
      }
    }

    **注意:**將 us-east-1 取代為您的 AWS 區域,將 pinpointsmsvoice 取代為您的 SNS 主題名稱,並將 ACCOUNT_ID 取代為您的 AWS 帳戶 ID。

  4. 在文字編輯器中,為 MatchingEventTypes 建立名為 matching.json 的輸入請求檔案。指定要接收的事件,或指定**「所有」**以接收所有事件:

    [
    "ALL"
    ]
  5. 若要將事件目的地映射到 configuration-set-name,請執行 create-event-destination 命令:

    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

    **注意:**將 us-east-1 取代為您的 Region,將 ACCOUNT_ID 取代為您的帳戶 ID,並將 pinpointsmsvoice 取代為您的 SNS 主題名稱。

  6. 若要測試此設定,使用 SendVoiceMessage V2 API 作業以傳送 Amazon Pinpoint 語音訊息。在幾分鐘後,事件會出現在已訂閱 SNS 主題的端點中。

將 CloudWatch Logs 設定為 Amazon Pinpoint 語音事件目的地

若要將 CloudWatch Logs 設定為 Amazon Pinpoint 語音事件目的地,請完成以下步驟:

  1. 若要建立組態集,請執行 create-configuration-set 命令:

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

    注意: 將 VoiceCW 取代為任何您的組態集名稱。

  2. 執行 create-log-group 命令以建立接收語音訊息日誌的新 CloudWatch 日誌群組

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

    -or-

    使用現有的 CloudWatch 日誌群組,並依以下步驟取得 ARN:
    開啟 CloudWatch console(CloudWatch 主控台)。
    在瀏覽窗格中,選擇日誌。然後,選擇日誌群組
    日誌群組欄位,選擇您的日誌群組名稱。
    日誌群組詳情窗格中,複製 ARN 值。這是您的日誌群組的 ARN。

  3. 建立新的 IAM 角色以擔任 Amazon Pinpoint。

  4. 使用下列許可聲明更新 IAM 角色信任政策

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

    **注意:**此政策允許 SMS 語音服務擔任 IAM 角色。

  5. 使用下列聲明更新 IAM 角色許可政策

    {
        "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:*"
                ]
            }
        ]
    }

    **注意:**此許可政策授予呼叫特定 CloudWatch Logs API 作業的許可。如需詳細資訊,請參閱 CloudWatch Logs 的許可參考資料

  6. 在文字編輯器中,建立名為 CloudWatchDestination.json 的輸入請求檔案。然後,在檔案中輸入以下目的地參數:

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

    **注意:**將 IamRoleArn 的值取代為您的 IAM 角色 ARN。將 LogGroupArn 的值取代為您想要傳送事件的 CloudWatch 日誌群組 ARN。

  7. 在文字編輯器中,為 MatchingEventTypes 建立名為 matching.json 的輸入請求檔案。指定要接收的事件,或指定**「所有」**以接收所有事件:

    [
    "ALL"
    ]

    **注意:**將 VoiceCW 取代為您的組態集名稱。

  8. 執行 create-event-destination 命令,將事件目的地映射到 configuration-set-name

    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. 若要測試此設定,使用 SendVoiceMessage V2 API 作業以傳送 Amazon Pinpoint 語音訊息。事件會在幾分鐘後出現在 CloudWatch 日誌群組中。

將 Firehose 交付串流設定為 Amazon Pinpoint 語音事件目的地

若要將 Firehose 交付串流設定為 Amazon Pinpoint 語音事件目的地,請完成以下步驟:

  1. 若要建立組態集,請執行 create-configuration-set 命令:

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

    注意: 將 VoiceKinesis 取代為您的組態集名稱。

  2. 建立 Amazon Data Firehose 交付串流。在目標設定中,選擇Amazon Simple Storage Service (Amazon S3)

  3. 建立新的 IAM 角色以擔任 Amazon Pinpoint。

  4. 在政策的主體區段使用下列許可聲明更新 IAM 角色信任政策

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

    注意: 此政策允許 SMS 語音服務擔任 IAM 角色。

  5. 更新 IAM 角色許可政策,將 Firehose 交付串流 ARN 包括在內:

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

    注意: 將 ACCOUNT_ID 取代為您的帳戶 ID,並將 KINESIS_FIREHOSE_NAME 取代為您的 Firehose 交付串流 ARN 的名稱。

  6. 在文字編輯器中,建立名為 KinesisFirehoseDestination.json 的輸入請求檔案。然後,將以下目的地參數複製並貼至檔案中:

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

    **注意:**將 us-east-1 取代為您的 AWS 區域,將 ACCOUNT_ID 取代為您的帳戶 ID,將 KINESIS_FIREHOSE_NAME 取代為您的 Firehose 交付串流名稱,並將 IAM_ROLE 取代為您的 IAM 角色名稱。

  7. 若要將事件目的地映射到 configuration-set-name,請使用輸入請求檔案執行 create-event-destination 命令:

  8. 在文字編輯器中,為 MatchingEventTypes 建立名為 matching.json 的輸入請求檔案。指定要接收的事件,或指定**「所有」**以接收所有事件:

    [
    "ALL"
    ]
  9. 執行 create-event-destination 命令:

    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

    **注意:**將 VoiceKinesis 取代為您的組態集名稱。

  10. 若要測試此設定,使用 SendVoiceMessage V2 API 作業以傳送 Amazon Pinpoint 語音訊息。事件會在幾分鐘後出現在您建立 Firehose 交付串流時所設定的 Amazon S3 儲存貯體中。

AWS 官方
AWS 官方已更新 1 個月前