Есть ли способ указать группу журналов CloudWatch, к которой относится журнал лямбда AWS? Кажется, он создается непосредственно из лямбда-имени; однако было бы особенно удобно, например, суммировать множественные лямбда с одной лог-группой. Нам особенно интересно указывать группу журналов, когда лямбда создается шаблоном CloudFormation.
Укажите лог-группу для лямбда AWS?
Ответ 1
Я не думаю, что это возможно.
Даже если это было возможно, каждый экземпляр AWS Lambda все равно записывал бы свой собственный поток журналов. И хотя разные вызовы одной и той же лямбды могут записываться в один и тот же лог-поток (когда экземпляр лямбда повторно используется), это, безусловно, не будет иметь место для разных lambdas (поскольку они должны использовать разные экземпляры lambda).
В результате у вас должен быть инструмент, который объединяет несколько потоков журналов. Если да, то какая проблема заключается в том, чтобы сделать его более универсальным, чтобы он мог агрегировать лог-потоки из разных групп журналов?
Ответ 2
На самом деле, возможно, вы можете, по крайней мере, по крайней мере. Я тоже искал ответ и попробовал. Вот фрагмент двух ресурсов; лямбда-функция и группа журналов:
"MyLambdaFunction": {
"Type": "AWS::Lambda::Function",
"DependsOn": "ReadWriteRole",
"Properties": {
//snip
}
},
"MyLambdaFunctionLogGroup": {
"Type": "AWS::Logs::LogGroup",
"DependsOn": "MyLambdaFunction",
"Properties": {
"LogGroupName": {"Fn::Join": ["", ["/aws/lambda/", {"Ref": "MyLambdaFunction"}]]},
"RetentionInDays": 14
}
},
Я обнаружил, что группа журналов была создана с сохранением 14 дней, как указано. Когда функция лямбда работает, она создает журналы в этой группе. Однако, когда я удаляю стек, кажется, что группы журналов не удалены, и теперь удержание установлено на никогда не истекает. Возможно, это достаточно хорошо, поэтому потоки не слишком из-под контроля...
Ответ 3
Создание группы журналов, как указано в одном из ответов, работает. Чтобы сохранить политику хранения после удаления стека, просто добавьте DeletionPolicy.
"MyLambdaFunctionLogGroup": {
"Type": "AWS::Logs::LogGroup",
"DependsOn": "MyLambdaFunction",
"DeletionPolicy": "Retain",
"Properties": {
"LogGroupName": {"Fn::Join": ["", ["/aws/lambda/", {"Ref": "MyLambdaFunction"}]]},
"RetentionInDays": 14
}
}
Ответ 4
Интересно., когда я пытаюсь это сделать, создается группа журналов, но потоки не записываются. Моя Lambda продолжает записывать в поток журнала по умолчанию., Лямбда-разрешения должны разрешать доступ к новой группе.