Как настроить журнал Cloudwatch для лямбды, созданной в Cloudformation - PullRequest
0 голосов
/ 17 мая 2018

После создания лямбда-функции в Cloudformation я хотел бы иметь возможность настроить срок действия Cloudwatch Logs в том же скрипте Cloudformation.

Например:

MyLambdaRole:
  Type: AWS::Iam::Role
    ...
    Properties:
      ...
      Policies:
        -
          PolicyName: "myPolicy"
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              -
                Effect: "Allow"
                Action:
                  - "logs:CreateLogGroup"
                  - "logs:CreateLogStream"
                  - "logs:PutLogEvents"
                Resource: "arn:aws:logs:*:*:*"

MyLambda:
  Type: AWS::Lambda::Function
  Properties:
    ...
    Role: !GetAtt [ MyLambdaRole, Arn ]

Однако CloudFormation делаетне разрешать изменять / обновлять журналы, зарезервированные для AWS: «Группы журналов, начинающиеся с AWS /, зарезервированы для AWS».

Есть ли обходной путь для этого?Поскольку нет способа настроить имя журнала в создании ресурса Lambda , возможно, есть какой-то способ указать его в определении роли, которое я не могу найти.

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

Нет, нет. Как вы уже писали, это группа журналов, принадлежащая AWS, и вы не можете дать себе больше разрешений в роли, чем это допускает AWS. Поэтому вы не можете позволить себе изменять их группу журналов.

0 голосов
/ 09 октября 2018

Попробуйте и используйте атрибут RetentionInDays, чтобы изменить срок действия журналов по истечении времени

LogGroup:
  Type: AWS::Logs::LogGroup
  Properties:
    LogGroupName: !Join ['/', ['/aws/lambda', !Ref MyLambda]]
    RetentionInDays: 7 # days

Примечание: проблема с тем, что LogGroup не может быть создана, появится, если имя группы журналов уже существует (будет, если MyLambda уже существует). Обходной путь должен был бы удалить и создать стек.

0 голосов
/ 17 мая 2018

Используйте модель приложения AWS Serverless, позаботьтесь о развертывании, ролях и журналах, и вы всегда можете добавить свой собственный код облачной информации https://github.com/awslabs/serverless-application-model, у них уже есть много готовых примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...