跳至內容

如何使用 Amazon Pinpoint 設定 AWS End User Messaging 語音訊息的記錄?

4 分的閱讀內容
0

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

解決方法

若要記錄 Amazon Pinpoint 語音訊息的狀態,請建立組態集與事件目的地。接著,將事件目的地對應至您的組態集。使用該組態可接收您透過 Amazon Pinpoint 傳送之語音訊息的回應資訊。

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

若要設定事件目的地,請使用 AWS End User Messaging API 或其中一種 AWS SDK。

**注意:**以下語音訊息記錄組態僅適用於 AWS End User Messaging。如需 SMS 和 Voice v1 的資訊,請參閱 如何為 Amazon Pinpoint SMS and Voice v1 API 設定 Amazon Pinpoint 語音訊息記錄?

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

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

請完成以下步驟:

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

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

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

  2. 將您要記錄語音訊息的端點訂閱至 Amazon SNS 主題。SNS 主題可以是新主題或現有主題。

  3. 將以下權限新增至您的 SNS 主題存取政策,以允許 AWS End User Messaging 語音服務傳遞日誌:

    {
      "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. 在文字編輯器中,建立名為 matching.json 的輸入請求檔案,供 MatchingEventTypes 使用。指定您要接收的事件,或指定**「全部」**以接收所有事件:

    [
    "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 替換為您的區域,將 ACCOUNT_ID 替換為您的帳戶 ID,並將 pinpointsmsvoice 替換為您的 SNS 主題名稱。

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

將 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 命令:

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

    **注意:**將 log-group-name 替換為您的日誌群組名稱。在命令輸出中,記下日誌群組的 Amazon Resource Name (ARN),以便在稍後步驟中使用。如果您使用現有的日誌群組,請呼叫 LogGroup API 操作以取得 ARN。

  3. 建立新的 AWS Identity and Access Management (IAM) 角色,供 Amazon Pinpoint 服務擔任。

  4. 使用以下陳述式更新 IAM 角色信任政策,以允許 SMS 語音服務擔任 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/VoiceCW"
            }
          }
        }
      ]
    }

    **注意:**將 us-east-1 替換為您的區域,將 ACCOUNT_ID 替換為您的帳戶 ID,並將 VoiceCW 替換為您的組態集。

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

    **注意:**將 us-east-1 替換為您的區域,將 ACCOUNT_ID 替換為您的帳戶 ID。前述政策會授予呼叫特定 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. 在文字編輯器中,建立名為 matching.json 的輸入請求檔案,供 MatchingEventTypes 使用。指定您要接收的事件,或指定**「全部」**以接收所有事件:

    [
    "ALL"
    ]
  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

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

  9. 若要測試此設定,請使用 SendVoiceMessage V2 API 操作來傳送 Amazon Pinpoint 語音訊息。幾分鐘後,事件會顯示在 CloudWatch 日誌群組中。

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

請完成以下步驟:

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

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

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

  2. 建立 Firehose 傳遞串流,並記下傳遞串流 ARN。在 Destination setting (目的地設定) 中,選擇 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"
            }
          }
        }
      ]
    }

    **注意:**將 us-east-1 替換為您的區域,將 ACCOUNT_ID 替換為您的帳戶 ID。前述政策允許 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 替換為您的區域,將 ACCOUNT_ID 替換為您的帳戶 ID,將 KINESIS_FIREHOSE_NAME 替換為您的 Firehose 傳遞串流名稱,並將 IAM_ROLE 替換為您的 IAM 角色名稱。

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

    [
    "ALL"
    ]
  8. 若要將事件目的地對應至 configuration-set-name,請使用輸入請求檔案執行 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 替換為您的組態集名稱。

  9. 若要測試此設定,請使用 SendVoiceMessage V2 API 操作來傳送 Amazon Pinpoint 語音訊息。幾分鐘後,事件會顯示在您建立 Firehose 傳遞串流時所設定的 Amazon S3 儲存貯體中。

AWS 官方已更新 1 年前