Установить срок действия группы журналов CloudWatch для функции лямбда
По умолчанию при создании лямбда-функции для группы журналов CloudWatch устанавливается значение Никогда не истекает. Можно ли установить срок действия (скажем, 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]]
Ответы
Ответ 1
Если вы создаете Лямбду через консоль, невозможно установить сохранение журнала. Также невозможно установить сохранение по умолчанию для всех журналов CloudWatch.
Единственный способ повлиять на сохранение журнала - через CloudFormation. В этом случае вам нужно развернуть Lambda через CloudFormation, а затем вы можете определить соответствующую LogGroup с пользовательским сохранением в этом шаблоне.
Ответ 2
Фактически вы можете изменить время хранения журнала после создания Lambda в консоли, но вам нужно сделать это с консоли CloudWatch.
Если вы перейдете на консоль CloudWatch и просмотрите журналы (CloudWatch> Группы журналов), вы заметите, что данные в столбце Expire Events After являются ссылками. Нажимая на один из них, вы можете изменить срок действия.
Ответ 3
Вы можете использовать Depends On
в CloudFormation. Сделайте что-то вроде этого:
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