web-dev-qa-db-ja.com

Lambda関数のCloudWatch Log Groupの有効期限を設定する

デフォルトでは、Lambda関数を作成すると、CloudWatch Log GroupはNever Expireに設定されます。有効期限(14日と言う)を設定することは可能ですか?作成後にコンソールから手動で設定する必要はありませんか?


Updated#1

@ jens walter answer のおかげで、これは問題を解決する方法のコードスニペットです

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]]
21
niqui

コンソールからLambdaを作成している場合、それに応じてログの保持を設定することはできません。すべてのCloudWatch Logsにデフォルトの保持を設定することもできません。

ログの保持に影響を与えることができる唯一の方法は、CloudFormationを使用することです。その場合、CloudFormationを介してLambdaをデプロイする必要があり、そのテンプレート内でカスタム保持を使用して一致するLogGroupを定義できます。

9
jens walter

コンソールでLambdaを作成した後、実際にログ保持時間を変更できますが、CloudWatchコンソールから行う必要があります。

CloudWatchコンソールに移動してログ(CloudWatch> Log Groups)を表示すると、[Expire Events After]列のデータがリンクであることがわかります。それらのいずれかをクリックすると、有効期限を変更できます。

9
skresge

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
0
Kartik Goyal