Как подключить Metri c к существующей группе журналов Lambda? - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь создать пользовательскую метри c, используя CloudFormation. Я следовал примеру из https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html. Моя существующая лямбда-запись в группу журналов CloudWatch, которая отображается в CloudWatch как /aws/lambda/my-function-name. Вот мой CloudFormation YAML для metri c:

  ErrorsLogMetric:
    Type: AWS::Logs::MetricFilter
    Properties:
      LogGroupName: !Sub "/aws/lambda/${AWS::StackName}"
      FilterPattern: "[ERROR]"
      MetricTransformations:
        - MetricValue: "1"
          MetricNamespace: "LogMetrics"
          MetricName: "MyCustomMetric"

$ {AWS :: StackName} преобразуется в «my-function-name» при запуске. Сценарий CloudFormation выполняется успешно и говорит, что metri c был создан, но когда я go в CloudWatch регистрирую группу для моей лямбды, он показывает ноль фильтров. Что мне нужно сделать по-другому, чтобы этот пользовательский метри c отображался в качестве фильтра для моей группы лямбда-журналов при ее создании через CloudFormation?

Если я жестко закодирую свойство как LogGroupName: "/aws/lambda/my-function-name", тогда оно работает. Но я не хочу жестко его кодировать, так как значение $ {AWS :: StackName} равно Dynami c в различных случаях использования.

1 Ответ

0 голосов
/ 06 марта 2020

Мне показалось, что решение было добавить

DependsOn: LambdaLogGroup

, где LambdaLogGroup был ресурсом, определенным ранее в моем шаблоне. Это отбросило меня, потому что группа журналов уже существовала в течение некоторого времени, и я пытался обновить стек и добавить метри c. Что-то в этом все еще требовало зависимости, хотя группа журналов уже существовала и не была обновлена ​​CloudFormation, когда я добавил Metri c.

...