web-dev-qa-db-fra.com

Définir l'expiration du groupe de journaux CloudWatch pour la fonction Lambda

Par défaut, lorsque je crée une fonction Lambda, le groupe de journaux CloudWatch est défini sur Never Expire. Est-il possible de définir l'expiration (par exemple, 14 jours) afin que je n'ai pas à le définir manuellement à partir de la console après la création? 


Mis à jour n ° 1 

Merci à @jens walter answer ceci est un extrait de code montrant comment résoudre le problème

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

Si vous créez votre Lambda via la console, il n'est pas possible de définir la conservation des journaux en conséquence. Il n'est également pas possible de définir une rétention par défaut pour tous les journaux CloudWatch.

CloudFormation est le seul moyen d'influencer la conservation des journaux. Dans ce cas, vous devez déployer votre système Lambda via CloudFormation, puis définir un groupe logistique correspondant avec une rétention personnalisée dans ce modèle.

8
jens walter

Vous pouvez réellement modifier la durée de conservation du journal après avoir créé votre Lambda dans la console, mais vous devez le faire à partir de la console CloudWatch.

Si vous accédez à la console CloudWatch et affichez les journaux (CloudWatch> Groupes de journaux), vous remarquerez que les données de la colonne Expire Events After sont des liens. En cliquant sur l'un de ceux-ci, vous pouvez modifier l'expiration.

7
skresge

Vous pouvez utiliser Depends On dans CloudFormation. Faites quelque chose comme ça:

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