如何為 Amazon Pinpoint SMS 和語音訊息版本 2 的 API 設定 Amazon Pinpoint 語音訊息的日誌記錄?

3 分的閱讀內容
0

我想監控透過 Amazon Pinpoint 傳送的語音訊息之狀態。該如何設定?

解決方案

要記錄 Amazon Pinpoint 語音訊息的狀態,您必須設定組態集事件目的地。事件目的地設定完成後,必須將其對應至您的組態集。這顆讓您收到有關您透過 Amazon Pinpoint 傳送之語音訊息的回應資訊。

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

要設定事件目的地,請使用 Amazon Pinpoint SMS 和語音訊息版本 2 的 API 或其中一個 AWS SDK

**注意:**以下解決方案僅適用於 Amazon Pinpoint SMS 和語音訊息版本 2 的 API。關於 Amazon Pinpoint SMS 和 Voice v1 API,請參閱如何為 Amazon Pinpoint SMS 和 Voice v1 API 設定 Amazon Pinpoint 語音訊息的日誌記錄?

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

1.    透過執行以下 create-configuration-set (pinpoint-sms-voice v2) AWS CLI 命令建立組態集:

注意:您可以將 VoiceSNS 替換為組態集的任何名稱。

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

2.    將您想要接收語音訊息日誌的端點訂閲至 Amazon SNS 主題。SNS 主題可為新主題或現有主題。如需指示,請參閱將端點訂閲至 Amazon SNS 主題

**注意:**要使用 AWS CLI 建立新的 Amazon SNS 主題,請執行以下 create-topic 命令:

aws sns create-topic --name pinpointsmsvoice

3.    您必須在 SNS 主題存取政策中具有下列許可。這可允許 Amazon Pinpoint SMS 語音服務交付日誌:

重要提示:將 替換為您的 AWS 區域。將 替換為您的 AWS 帳戶 ID。將 pinpointsmsvoice 替換為您的 SNS 主題的名稱。

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

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

[
"ALL"
]

5.    透過執行以下 create-event-destination 命令,將事件目的地映射到 configuration-set-name

重要提示:將 替換為您的 AWS 區域。將 替換為您的 AWS 帳戶 ID。將 pinpointsmsvoice 替換為您的 Amazon SNS 主題的名稱。

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.    透過使用 SendVoiceMessage v2 API 操作傳送 Amazon Pinpoint 語音訊息來測試設定。幾分鐘後,事件將出現在訂閲至 SNS 主題的端點中。

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

1.    透過執行以下 create-configuration-set (pinpoint-sms-voice v2) AWS CLI 命令建立組態集:

注意:您可以將 VoiceCW 替換為您的組態集的任何名稱。

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

2.    透過執行以下 create-log-group,建立一個新的 CloudWatch 日誌群組以接收語音訊息日誌:

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

-或-

使用現有的 CloudWatch 日誌群組完成以下步驟。

3.    透過執行以下操作獲取 CloudWatch 日誌群組的 ARN:

開啟 CloudWatch 主控台

在左側導覽窗格中,選擇 Logs (日誌)。然後,選擇 Log groups (日誌群組)。

Log group (日誌群組) 欄中,選擇日誌群組的名稱。

Log group details (日誌群組詳細資訊) 窗格中,複製 ARN 值。這是您的日誌群組的 ARN。

4.    為 Amazon Pinpoint 服務建立要承擔的新的 AWS Identity and Access Management (IAM) 角色。如需指示,請參閱為 AWS 服務建立角色 (主控台)為服務建立角色 (AWS CLI)。設定角色時,請修改角色的信任政策,以便在政策的主體部分中包含以下許可聲明:

注意:此許可聲明允許 sms-voice 服務承擔 IAM 角色。

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

5.    修改 IAM 角色的許可政策,使其包含以下許可聲明:

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

注意:此許可聲明授予呼叫特定 CloudWatch Logs API 操作的許可。如需詳細資訊,請參閱 CloudWatch Logs 許可參考

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

重要提示:將

替換為您的 AWS 區域。將 替換為您的 AWS 帳戶 ID。將 替換為 IAM 角色名稱。

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

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

[
"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 語音訊息來測試設定。幾分鐘後,事件將出現在訂閲至 Amazon SNS 主題的端點中。

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

1.    透過執行以下 create-configuration-set (pinpoint-sms-voice v2) AWS CLI 命令建立組態集:

注意:您可以將 VoiceKinesis 替換為組態集的任何名稱。

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

2.    建立 Kinesis Data Firehose 交付串流。對於 Destination (目的地) 設定,請選擇 Amazon Simple Storage Service (Amazon S3) (Amazon Simple Storage Service (Amazon S3))。

重要提示:接受預設 IAM 服務角色。然後,將 IAM 服務角色的名稱複製到剪貼簿。您需要執行以下步驟的角色名稱。

3.    修改 IAM 角色的許可政策,以便在政策的主體部分中包含以下許可聲明:

注意:此許可聲明授予 sms-voice 服務承擔 IAM 角色。

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

AWS 官方
AWS 官方已更新 2 年前