防止記錄遞迴 - Amazon CloudWatch 日誌

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

防止記錄遞迴

使用訂閱篩選器可能會造成無限記錄遞迴的風險,這可能會導致 CloudWatch 記錄檔和目的地的擷取計費大幅增加 (如果未遭到阻止)。當訂閱篩選器與因訂閱傳遞工作流程而接收記錄事件的記錄群組相關聯時,就會發生這種情況。擷取至記錄群組的記錄會傳遞至目的地,造成記錄群組擷取更多記錄檔,然後再次轉送至目的地,建立遞迴迴圈。

例如,假設使用目的地為 Firehose 的訂閱篩選器,該篩選器會將日誌事件傳送到 Amazon S3。此外,還有一個 Lambda 函數可以處理交付到 Amazon S3 的新事件,並自行產生一些日誌。如果將訂閱篩選器套用至 Lambda 函數的日誌群組,則函數產生的日誌事件會轉送到目的地的 Firehose 和 Amazon S3,然後再次叫用函數,進而產生更多日誌並將其轉送到 Firehose 和 Amazon S3,從而導致另一次呼叫函數等。這會在無限迴圈中發生,導致日誌擷取、Firehose 和 Amazon S3 的計費意外增加。

如果 Lambda 函數連接至已為記錄啟用流程記錄的 VPC,則 VPC 的 CloudWatch 記錄群組也可能導致記錄遞迴。

建議您不要將訂閱篩選器套用至屬於訂閱傳送工作流程一部分的記錄群組。對於帳戶層級訂閱篩選器,請使用 PutAccountPolicy API 中的selectionCriteria參數將這些記錄群組從政策中排除。

排除記錄群組時,請考慮下列產生記錄檔的 AWS 服務,而且可能是訂閱傳遞工作流程的一部分:

  • Amazon EC2 與 Fargate

  • Lambda

  • AWS Step Functions

  • 已針對日誌啟用的 CloudWatch Amazon VPC 流程日誌

注意

針對帳戶層級訂閱篩選原則,Lambda 目的地的日誌群組產生的記錄事件不會轉送回 Lambda 函數。在這種情況下,帳戶訂閱政策不需要使用selectionCriteria目的地 Lambda 函數的日誌群組。