使用AWS CloudTrail日誌監控 Amazon Lex API 呼叫 - Amazon Lex V1

如果您使用的是 Amazon Lex V2,請參閱 Amazon Lex V2 指南

 

如果您使用的是 Amazon Lex V1,我們建議您將機器人升級到 Amazon Lex V2。我們不再向 V1 添加新功能,強烈建議所有新的機器人使用 V2。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用AWS CloudTrail日誌監控 Amazon Lex API 呼叫

Amazon Lex 與此服務整合在一起AWS CloudTrail,可提供 Amazon Lex 中使用者、角色或服務所採取的動作記錄的AWS服務。 CloudTrail 在事件中擷取 Amazon Lex 的 API 呼叫子集,包括來自 Amazon Lex 主控台的呼叫,以及從程式碼呼叫到 Amazon Lex API 的呼叫。如果您建立追蹤,您可以啟用持續交付 CloudTrail 事件到 Amazon S3 儲存貯體,包括 Amazon Lex 的事件。如果您未設定追蹤,您仍然可以在 [事件歷程記錄] 中檢視 CloudTrail 主控台中最近的事件。使用收集的資訊 CloudTrail,您可以判斷向 Amazon Lex 發出的請求、提出請求的 IP 地址、提出請求的人員、提出請求的時間以及其他詳細資訊。

若要進一步了解 CloudTrail,包括如何設定和啟用它,請參閱AWS CloudTrail使用者指南

Amazon Lex 信息 CloudTrail

CloudTrail 在您創建AWS帳戶時,您的帳戶已啟用。Amazon Lex 中發生受支援的事件活動時,該活動會與事件歷史記錄中的其他AWS服務 CloudTrail 事件一起記錄在事件中。您可以檢視、搜尋和下載 AWS 帳戶的最新事件。如需詳細資訊,請參閱檢視具有事 CloudTrail 件記錄的事件

如需AWS帳戶中持續記錄事件 (包括 Amazon Lex 的事件),請建立追蹤。追蹤可 CloudTrail 將日誌檔交付到 Amazon Simple Storage Service (Amazon S3) 儲存貯體。根據預設,當您在主控台建立追蹤記錄時,追蹤記錄會套用到所有 AWS 區域。該追蹤會記錄來自 AWS 分割區中所有區域的事件,並將日誌檔案交付到您指定的 S3 儲存貯體。此外,您還可以設定其他AWS服務,以進一步分析 CloudTrail 記錄中收集的事件資料並採取行動。如需詳細資訊,請參閱:

Amazon Lex 支援將下列操作記錄為記 CloudTrail 錄檔中的事件:

每一筆事件或日誌項目都會包含產生請求者的資訊。此資訊可協助您判斷下列事項:

  • 該請求是否使用根或 使用者登入資料提出

  • 提出該請求時,是否使用了特定角色或聯合身分使用者的臨時安全憑證

  • 該請求是否由另一項 AWS 服務提出

如需詳細資訊,請參閱 CloudTrail 使用者身分元素

如需 CloudTrail 記錄日誌中之 Amazon Lex 動作的相關資訊,請參閱 Amazon Lex 模型建置服務。例如,呼叫PutBotGetBot、和DeleteBot作業會在 CloudTrail 記錄中產生項目。記錄在 Amazon Lex 執行時間服務PostContentPostText 中的動作都不會記錄。

範例:Amazon Lex 日誌檔項目

追蹤是一種組態,可讓事件以日誌檔的形式傳遞至您指定的 S3 儲存貯體。 CloudTrail 記錄檔包含一或多個記錄項目。事件代表來自任何來源的單一請求,包括有關請求的操作,動作的日期和時間,請求參數等信息。 CloudTrail 日誌文件不是公共 API 調用的有序堆棧跟踪,因此它們不會以任何特定順序顯示。

下列範例 CloudTrail 記錄項目顯示呼叫作PutBot業的結果。

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole | FederatedUser | IAMUser | Root | SAMLUser | WebIdentityUser", "principalId": "principal ID", "arn": "ARN", "accountId": "account ID", "accessKeyId": "access key ID", "userName": "user name" }, "eventTime": "timestamp", "eventSource": "lex.amazonaws.com", "eventName": "PutBot", "awsRegion": "region", "sourceIPAddress": "source IP address", "userAgent": "user agent", "requestParameters": { "name": "CloudTrailBot", "intents": [ { "intentVersion": "11", "intentName": "TestCloudTrail" } ], "voiceId": "Salli", "childDirected": false, "locale": "en-US", "idleSessionTTLInSeconds": 500, "processBehavior": "BUILD", "description": "CloudTrail test bot", "clarificationPrompt": { "messages": [ { "contentType": "PlainText", "content": "I didn't understand you. What would you like to do?" } ], "maxAttempts": 2 }, "abortStatement": { "messages": [ { "contentType": "PlainText", "content": "Sorry. I'm not able to assist at this time." } ] } }, "responseElements": { "voiceId": "Salli", "locale": "en-US", "childDirected": false, "abortStatement": { "messages": [ { "contentType": "PlainText", "content": "Sorry. I'm not able to assist at this time." } ] }, "status": "BUILDING", "createdDate": "timestamp", "lastUpdatedDate": "timestamp", "idleSessionTTLInSeconds": 500, "intents": [ { "intentVersion": "11", "intentName": "TestCloudTrail" } ], "clarificationPrompt": { "messages": [ { "contentType": "PlainText", "content": "I didn't understand you. What would you like to do?" } ], "maxAttempts": 2 }, "version": "$LATEST", "description": "CloudTrail test bot", "checksum": "checksum", "name": "CloudTrailBot" }, "requestID": "request ID", "eventID": "event ID", "eventType": "AwsApiCall", "recipientAccountId": "account ID" } }