本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 記錄 CodePipeline API通話 AWS CloudTrail
AWS CodePipeline 與 整合 AWS CloudTrail,此服務提供使用者、角色或 CodePipeline;. CloudTrail Captures AWS 服務 中 所採取動作的記錄API CodePipeline 。擷取的呼叫包括從 CodePipeline 主控台呼叫,以及對 操作的 CodePipeline API程式碼呼叫。如果您建立追蹤,則可以啟用 CloudTrail 事件連續交付至 Amazon S3 儲存貯體,包括 的事件 CodePipeline。如果您未設定追蹤,仍然可以在 事件歷史記錄 中檢視 CloudTrail 主控台中的最新事件。 使用 所收集的資訊 CloudTrail,您可以判斷對 提出的請求 CodePipeline、提出請求的 IP 地址、提出請求的人員、提出的時間,以及其他詳細資訊。
若要進一步了解 CloudTrail,請參閱 AWS CloudTrail 使用者指南 。
CodePipeline 中的資訊 CloudTrail
CloudTrail 當您建立 帳戶 AWS 帳戶 時, 會在 上啟用 。當活動在 中發生時 CodePipeline,該活動會與 CloudTrail 事件歷史記錄 中的其他 AWS 服務 事件一起記錄在事件中。您可以在 AWS 帳戶中檢視、搜尋和下載近期事件。如需詳細資訊,請參閱檢視具有事件歷史記錄 CloudTrail 的事件。
若要持續記錄 中的事件 AWS 帳戶 ,包括 的事件 CodePipeline,請建立追蹤。追蹤可讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。根據預設,當您在主控台中建立追蹤時,追蹤會套用至所有 AWS 區域。追蹤會記錄 AWS 分割區中所有 區域的事件,並將日誌檔案傳送至您指定的 Amazon S3 儲存貯體。此外,您可以設定其他 AWS 服務 ,以進一步分析 CloudTrail 日誌中收集的事件資料並對其採取行動。如需詳細資訊,請參閱下列內容:
所有 CodePipeline 動作都會由 記錄, CloudTrail 並記錄在CodePipeline API參考 中。例如, 呼叫 CreatePipeline
,GetPipelineExecution
而 UpdatePipeline
動作會在 CloudTrail 日誌檔案中產生項目。
每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項:
-
請求是使用根還是 AWS Identity and Access Management (IAM) 憑證提出。
-
提出該請求時,是否使用了特定角色或聯合身分使用者的暫時安全憑證。
-
該請求是否由另一項 AWS 服務服務提出。
如需詳細資訊,請參閱CloudTrail userIdentity元素 。
了解 CodePipeline 日誌檔案項目
追蹤是一種組態,可讓您將事件作為日誌檔案交付至您指定的 Amazon S3 儲存貯體。 CloudTrail 日誌檔案包含一或多個日誌項目。事件代表來自任何來源的單一請求,並包含所請求動作、動作日期和時間、請求參數等資訊。 CloudTrail log 檔案不是公開API呼叫的有序堆疊追蹤,因此它們不會以任何特定順序顯示。
下列範例顯示更新管道事件的 CloudTrail 日誌項目,其中名為 的管道 MyFirstPipeline 已由名為 CodePipeline的使用者使用 JaneDoe帳戶 ID 80398 編輯EXAMPLE。使用者已將管道的來源階段名稱從 Source
變更為 MySourceStage
。由於日誌中的 CloudTrail requestParameters
和 responseElements
元素都包含已編輯管道的整個結構,因此在以下範例中將這些元素縮寫為 。Emphasis 已新增至發生變更之管道的 requestParameters
部分、管道的舊版本號碼,以及 responseElements
部分 (顯示遞加 1 的版本號碼)。編輯過部分會標上省略符號 (...),說明實際日誌項目中出現更多資料的位置。
{ "eventVersion":"1.03", "userIdentity": { "type":"IAMUser", "principalId":"AKIAI44QH8DHBEXAMPLE", "arn":"arn:aws:iam::80398EXAMPLE:user/JaneDoe-CodePipeline", "accountId":"80398EXAMPLE", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "userName":"JaneDoe-CodePipeline", "sessionContext": { "attributes":{ "mfaAuthenticated":"false", "creationDate":"2015-06-17T14:44:03Z" } }, "invokedBy":"signin.amazonaws.com"}, "eventTime":"2015-06-17T19:12:20Z", "eventSource":"codepipeline.amazonaws.com", "eventName":"UpdatePipeline", "awsRegion":"us-east-2", "sourceIPAddress":"192.0.2.64", "userAgent":"signin.amazonaws.com", "requestParameters":{ "pipeline":{ "version":1, "roleArn":"arn:aws:iam::80398EXAMPLE:role/CodePipeline_Service_Role", "name":"MyFirstPipeline", "stages":[ { "actions":[ { "name":"MySourceStage", "actionType":{ "owner":"AWS", "version":"1", "category":"Source", "provider":"S3" }, "inputArtifacts":[], "outputArtifacts":[ {"name":"MyApp"} ], "runOrder":1, "configuration":{ "S3Bucket":"amzn-s3-demo-source-bucket", "S3ObjectKey":"sampleapp_linux.zip" } } ], "name":"Source" }, (...) }, "responseElements":{ "pipeline":{ "version":2, (...) }, "requestID":"2c4af5c9-7ce8-EXAMPLE", "eventID":""c53dbd42-This-Is-An-Example"", "eventType":"AwsApiCall", "recipientAccountId":"80398EXAMPLE" } ] }