簡體   English   中英

當我 stream 多個 cloudwatch 日志組到一個 lambda 時,如何增加策略限制?

[英]How can I increase the policy limits when I stream multiple cloudwatch log group to one lambda?

我已經設置了一個 lambda function 被許多 cloudwatch 日志組觸發。 為此,我在日志組aws lambda add-permission權限上添加了調用 function 權限,並將訂閱添加為 lambda 作為目標aws logs put-subscription-filter 有數百個日志組我需要 stream 到一個 lambda 這使得 lambda 觸發策略非常大。

此流程中有兩個命令aws lambda add-permissionaws logs put-subscription-filter 我需要為每個日志組運行這兩個命令。 我添加了 46 個 cloudwath 日志組作為 lambda 的觸發器,但是在添加第 47 個時出現錯誤。

我得到的錯誤是這個命令:

aws lambda add-permission --function-name $AGGREGATOR_NAME \
    --statement-id add-permission-$lambdaName --action lambda:InvokeFunction \
    --principal logs.ap-southeast-2.amazonaws.com \
    --source-arn $logArn
An error occurred (PolicyLengthExceededException) when calling the AddPermission operation: The final policy size (20623) is bigger than the limit (20480).
arn:aws:logs:ap-southeast-2:***

有沒有辦法解決這個問題? 這是將數百個日志組 stream 到一個 lambda 的正確方法嗎?

我嘗試在命令中使用wildcard ,但出現驗證錯誤。

aws lambda add-permission --function-name $AGGREGATOR_NAME --statement-id $ID --action lambda:InvokeFunction --principal logs.ap-southeast-2.amazonaws.com --source-arn "arn:aws:logs:*:*:log-group:/aws/lambda/hello*:*"

An error occurred (ValidationException) when calling the AddPermission operation: 1 validation error detected: Value 'arn:aws:logs:*:*:log-group:/aws/lambda/hello*:*' at 'sourceArn' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\d{1})?:(\d{12})?:(.*)

解決這個問題的一種方法是在--source-arn中使用通配符。 通過這樣做,您不需要為每個 CloudWatch 日志組制定一個 lambda 基於資源的策略。 當然,最簡單的方法就是讓所有的日志組都執行lambda:InvokeFunction 在這種情況下,你只需要

aws lambda add-permission --function-name $AGGREGATOR_NAME \
    --statement-id add-permission-$lambdaName --action lambda:InvokeFunction \
    --principal logs.ap-southeast-2.amazonaws.com

請注意, --source-arn已被刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM