如何使用 Amazon Pinpoint 設定 AWS End User Messaging 語音訊息的記錄?
我想記錄我透過 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 版本。
請完成以下步驟:
-
若要建立組態集,請執行 create-configuration-set 命令:
aws pinpoint-sms-voice-v2 create-configuration-set --configuration-set-name VoiceSNS注意: 將 VoiceSNS 替換為您的組態集名稱。
-
將您要記錄語音訊息的端點訂閱至 Amazon SNS 主題。SNS 主題可以是新主題或現有主題。
-
將以下權限新增至您的 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。
-
在文字編輯器中,建立名為 matching.json 的輸入請求檔案,供 MatchingEventTypes 使用。指定您要接收的事件,或指定**「全部」**以接收所有事件:
[ "ALL" ] -
若要將事件目的地對應至 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 主題名稱。
-
若要測試此設定,請使用 SendVoiceMessage V2 API 操作來傳送 Amazon Pinpoint 語音訊息。幾分鐘後,事件會顯示在已訂閱 SNS 主題的端點中。
將 CloudWatch Logs 設定為 Amazon Pinpoint 語音事件目的地
請完成以下步驟:
-
若要建立組態集,請執行 create-configuration-set 命令:
aws pinpoint-sms-voice-v2 create-configuration-set --configuration-set-name VoiceCW注意: 將 VoiceCW 替換為您的組態集名稱。
-
若要建立日誌群組,請執行 create-log-group 命令:
aws logs create-log-group --log-group-name /aws/pinpoint/voice**注意:**將 log-group-name 替換為您的日誌群組名稱。在命令輸出中,記下日誌群組的 Amazon Resource Name (ARN),以便在稍後步驟中使用。如果您使用現有的日誌群組,請呼叫 LogGroup API 操作以取得 ARN。
-
建立新的 AWS Identity and Access Management (IAM) 角色,供 Amazon Pinpoint 服務擔任。
-
使用以下陳述式更新 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 替換為您的組態集。
-
使用以下陳述式更新 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 權限參考。
-
在文字編輯器中,建立名為 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。
-
在文字編輯器中,建立名為 matching.json 的輸入請求檔案,供 MatchingEventTypes 使用。指定您要接收的事件,或指定**「全部」**以接收所有事件:
[ "ALL" ] -
執行 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 替換為您的組態集名稱。
-
若要測試此設定,請使用 SendVoiceMessage V2 API 操作來傳送 Amazon Pinpoint 語音訊息。幾分鐘後,事件會顯示在 CloudWatch 日誌群組中。
將 Firehose 傳遞串流設定為 Amazon Pinpoint 語音事件目的地
請完成以下步驟:
-
若要建立組態集,請執行 create-configuration-set 命令:
aws pinpoint-sms-voice-v2 create-configuration-set --configuration-set-name VoiceKinesis注意: 將 VoiceKinesis 替換為您的組態集名稱。
-
建立 Firehose 傳遞串流,並記下傳遞串流 ARN。在 Destination setting (目的地設定) 中,選擇 Amazon Simple Storage Service (Amazon S3)。
-
建立新的 IAM 角色,供 Amazon Pinpoint 服務擔任。
-
在政策的主體區段中,使用以下陳述式更新 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 角色。
-
更新 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 名稱。
-
在文字編輯器中,建立名為 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 角色名稱。
-
在文字編輯器中,為 MatchingEventTypes 建立名為 matching.json 的輸入請求檔案。指定您要接收的事件,或指定**「全部」**以接收所有事件:
[ "ALL" ] -
若要將事件目的地對應至 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 替換為您的組態集名稱。
-
若要測試此設定,請使用 SendVoiceMessage V2 API 操作來傳送 Amazon Pinpoint 語音訊息。幾分鐘後,事件會顯示在您建立 Firehose 傳遞串流時所設定的 Amazon S3 儲存貯體中。
- 語言
- 中文 (繁體)

相關內容
AWS 官方已更新 1 年前