4
如果您擁有大量AWS賬戶,則Lambda登錄CloudWatch可能會成爲巨大的隱藏成本,因爲無法告知AWS停止在CloudWatch平臺上登錄。 我發現做到這一點的唯一方法是管理自定義IAM策略(與每一個拉姆達相關)和explicitally拒絕訪問日誌:...操作:如何停止AWS Lambda功能以登錄CloudWatch
{
"Sid": "DisableAllLogs",
"Resource": "*",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Deny"
}
現在我正在努力細化政策,讓只有一些lambda登錄。要做到這一點我使用的政策條件參數:
{
"Sid": "EnableLogsForWantedLambdaTriggers",
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:lambda:REGION:ACCOUNT-ID:function:FUNCTION-NAME"
}
},
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Allow"
}
但這種方式沒有日誌發送到CloudWatch的。我認爲源ARN是錯誤的,但我無法找到正確的。
任何線索?
我假設你在你的CloudFormation創建拉姆達呢?如果是這樣,你應該能夠用'「Fn :: GetAtt」獲取正確的ARN:[「FUNCTION-NAME」,「Arn」]' – Squirrel
我假設刪除日誌或在一段時間後存檔以便存錢被看着。在做所有的功能日誌之前,我會這樣做,然後選擇某些功能並拒絕對它們的訪問。 – arjabbar
不幸的是,大部分成本與CloudWatch調用相關,而不是日誌存儲大小,因此將過期日期設置爲1天是不夠的 –