为 Lambda 函数设置 CloudWatch 日志组的过期时间
Set expiration of CloudWatch Log Group for Lambda Function
默认情况下,当我创建 Lambda 函数时,CloudWatch 日志组设置为永不过期。是否可以设置到期时间(比如 14 天),这样我就不必在创建后从控制台手动设置它?
更新#1
感谢 这是解决问题的代码片段
Resources:
LambdaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs6.10
CodeUri: <your code uri>
Policies: <your policies>
LambdaFunctionLogGroup:
Type: "AWS::Logs::LogGroup"
DependsOn: "LambdaFunction"
Properties:
RetentionInDays: 14
LogGroupName: !Join ["", ["/aws/lambda/", !Ref LambdaFunction]]
如果您通过控制台创建 Lambda,则无法相应地设置日志保留时间。也无法为所有 CloudWatch Logs 设置默认保留期。
您可以影响日志保留的唯一方法是通过 CloudFormation。在这种情况下,您需要通过 CloudFormation 部署 Lambda,然后您可以在该模板中定义一个具有自定义保留的匹配 LogGroup。
您实际上可以在控制台中创建 Lambda 后更改日志保留时间,但您需要从 CloudWatch 控制台执行此操作。
如果您转到 CloudWatch 控制台并查看日志(CloudWatch > 日志组),您会注意到 Expire Events After 列中的数据是链接。通过单击其中之一,您可以更改到期时间。
您可以在 CloudFormation 中使用 Depends On
。做这样的事情:
Resources:
LambdaFunction:
Type: AWS::Serverless::Function
DependsOn: LambdaLogGroup
Properties:
FunctionName: 'LambdaName'
Handler: <handlerPath>
Runtime: java8
MemorySize: 512
LambdaLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: '/aws/lambda/LambdaLogGroup'
RetentionInDays: 30
自 2021 年起,可以选择通过控制台修改留存率。
cloud watch -> 日志组 -> [您的日志组] -> 操作 -> 编辑保留设置
默认情况下,当我创建 Lambda 函数时,CloudWatch 日志组设置为永不过期。是否可以设置到期时间(比如 14 天),这样我就不必在创建后从控制台手动设置它?
更新#1
感谢
Resources:
LambdaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs6.10
CodeUri: <your code uri>
Policies: <your policies>
LambdaFunctionLogGroup:
Type: "AWS::Logs::LogGroup"
DependsOn: "LambdaFunction"
Properties:
RetentionInDays: 14
LogGroupName: !Join ["", ["/aws/lambda/", !Ref LambdaFunction]]
如果您通过控制台创建 Lambda,则无法相应地设置日志保留时间。也无法为所有 CloudWatch Logs 设置默认保留期。
您可以影响日志保留的唯一方法是通过 CloudFormation。在这种情况下,您需要通过 CloudFormation 部署 Lambda,然后您可以在该模板中定义一个具有自定义保留的匹配 LogGroup。
您实际上可以在控制台中创建 Lambda 后更改日志保留时间,但您需要从 CloudWatch 控制台执行此操作。
如果您转到 CloudWatch 控制台并查看日志(CloudWatch > 日志组),您会注意到 Expire Events After 列中的数据是链接。通过单击其中之一,您可以更改到期时间。
您可以在 CloudFormation 中使用 Depends On
。做这样的事情:
Resources:
LambdaFunction:
Type: AWS::Serverless::Function
DependsOn: LambdaLogGroup
Properties:
FunctionName: 'LambdaName'
Handler: <handlerPath>
Runtime: java8
MemorySize: 512
LambdaLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: '/aws/lambda/LambdaLogGroup'
RetentionInDays: 30
自 2021 年起,可以选择通过控制台修改留存率。
cloud watch -> 日志组 -> [您的日志组] -> 操作 -> 编辑保留设置