本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 監控部署 AWS CloudTrail
CodeDeploy 已與 整合 CloudTrail,此服務會擷取 CodeDeploy 您 AWS 帳戶中由 或代表 進行的API呼叫,並將日誌檔案交付至您指定的 Amazon S3 儲存貯體。 CloudTrail 會從 CodeDeploy 主控台、透過 的 CodeDeploy 命令 AWS CLI或 CodeDeploy APIs直接從 擷取API呼叫。使用 收集的資訊 CloudTrail,您可以判斷向哪個請求提出 CodeDeploy、提出請求的來源 IP 地址、提出請求的人員、提出請求的時間等等。若要進一步了解 CloudTrail,包括如何設定和啟用,請參閱 AWS CloudTrail 使用者指南。
CodeDeploy 中的資訊 CloudTrail
在您的 AWS 帳戶中啟用 CloudTrail 記錄時,對 CodeDeploy 動作進行的API呼叫會在日誌檔案中追蹤。 CodeDeploy 記錄會與日誌檔案中的其他 AWS 服務記錄一起寫入。 會根據期間和檔案大小 CloudTrail ,決定何時建立和寫入新檔案。
所有 CodeDeploy 動作都會記錄在AWS CodeDeploy 命令列參考和AWS CodeDeploy API參考中。例如,建立部署、刪除應用程式和註冊應用程式修訂的呼叫會在 CloudTrail 日誌檔案中產生項目。
每個日誌項目都會包含產生要求之人員的資訊。日誌中的使用者身分資訊可協助您判斷請求是使用根或使用者登入資料、角色或聯合身分使用者的臨時安全登入資料,還是由其他服務提出 AWS 。如需詳細資訊,請參閱CloudTrail 事件參考中的 userIdentity 欄位。
日誌檔案可存放於儲存貯體任意長時間,但您也可以定義 Amazon S3 生命週期規則,自動封存或刪除日誌檔案。根據預設,Amazon S3 伺服器端加密 (SSE) 用於加密您的日誌檔案。
您可以在交付新的日誌檔案時 CloudTrail 發佈 Amazon SNS通知。如需詳細資訊,請參閱設定 Amazon SNS通知 CloudTrail。
您也可以將來自多個 AWS 區域和多個 AWS 帳戶的 CodeDeploy 日誌檔案彙總到單一 Amazon S3 儲存貯體。如需詳細資訊,請參閱從多個區域接收 CloudTrail 日誌檔案。
了解 CodeDeploy 日誌檔案項目
CloudTrail 日誌檔案可以包含一或多個日誌項目,其中每個項目是由多個 JSON格式化的事件組成。日誌項目代表任何來源提出的單一要求,並且包含所要求動作、任何參數、動作日期和時間等等的資訊。日誌項目並不保證按照任何特定的順序。也就是說,它們不是公有API呼叫的排序堆疊追蹤。
下列範例顯示 CloudTrail 日誌項目,示範 CodeDeploy 建立部署群組動作:
{ "Records": [{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE:203.0.113.11", "arn": "arn:aws:sts::123456789012:assumed-role/example-role/203.0.113.11", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-27T03:57:36Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::123456789012:role/example-role", "accountId": "123456789012", "userName": "example-role" } } }, "eventTime": "2014-11-27T03:57:36Z", "eventSource": "codedeploy.amazonaws.com", "eventName": "CreateDeploymentGroup", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.11", "userAgent": "example-user-agent-string", "requestParameters": { "applicationName": "ExampleApplication", "serviceRoleArn": "arn:aws:iam::123456789012:role/example-instance-group-role", "deploymentGroupName": "ExampleDeploymentGroup", "ec2TagFilters": [{ "value": "CodeDeployDemo", "type": "KEY_AND_VALUE", "key": "Name" }], "deploymentConfigName": "CodeDeployDefault.HalfAtATime" }, "responseElements": { "deploymentGroupId": "7d64e680-e6f4-4c07-b10a-9e117EXAMPLE" }, "requestID": "86168559-75e9-11e4-8cf8-75d18EXAMPLE", "eventID": "832b82d5-d474-44e8-a51d-093ccEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, ... additional entries ... ] }