为Lambda函数设置CloudWatch Log Group的到期日期

niq*_*qui 24 aws-lambda amazon-cloudwatchlogs

默认情况下,当我创建Lambda函数时,CloudWatch Log Group将设置为Never Expire.是否可以设置到期时间(说14天),所以我不必在创建后从控制台手动设置它?


更新#1

感谢@jens walter回答这是如何解决问题的代码片段

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]]
Run Code Online (Sandbox Code Playgroud)

jen*_*ter 10

如果要通过控制台创建Lambda,则无法相应地设置日志保留.也无法为所有CloudWatch Logs设置默认保留期.

您可以影响日志保留的唯一方法是通过CloudFormation.在这种情况下,您需要通过CloudFormation部署Lambda,然后您可以在该模板中定义具有自定义保留的匹配LogGroup.

  • 你能提供一个示例模板片段吗?我知道如何创建日志组(AWS :: Logs :: LogGroup),但不知道如何将其连接到lambda函数. (5认同)

小智 10

实际上,您可以在控制台中创建Lambda后更改日志保留时间,但需要从CloudWatch控制台执行此操作.

如果您转到CloudWatch控制台并查看日志(CloudWatch>日志组),您会注意到Expire Events After列中的数据是链接.通过单击其中一个,您可以更改到期日期.

  • 我知道您可以在使用控制台创建后更改保留时间。想法是不使用控制台。 (3认同)