デフォルトでは、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]]
コンソールからLambdaを作成している場合、それに応じてログの保持を設定することはできません。すべてのCloudWatch Logsにデフォルトの保持を設定することもできません。
ログの保持に影響を与えることができる唯一の方法は、CloudFormationを使用することです。その場合、CloudFormationを介してLambdaをデプロイする必要があり、そのテンプレート内でカスタム保持を使用して一致するLogGroupを定義できます。
コンソールでLambdaを作成した後、実際にログ保持時間を変更できますが、CloudWatchコンソールから行う必要があります。
CloudWatchコンソールに移動してログ(CloudWatch> Log Groups)を表示すると、[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