Amazon web services 如何将度量附加到现有Lambda日志组?

Amazon web services 如何将度量附加到现有Lambda日志组?,amazon-web-services,aws-lambda,amazon-cloudwatch,Amazon Web Services,Aws Lambda,Amazon Cloudwatch,我正在尝试使用CloudFormation创建一个自定义度量。我已经遵循了来自的例子。我现有的lambda记录到CloudWatch日志组,该日志组在CloudWatch中显示为/aws/lambda/My function name。这是我的度量标准: ErrorsLogMetric: Type: AWS::Logs::MetricFilter Properties: LogGroupName: !Sub "/aws/lambda/${AWS::StackNam

我正在尝试使用CloudFormation创建一个自定义度量。我已经遵循了来自的例子。我现有的lambda记录到CloudWatch日志组,该日志组在CloudWatch中显示为
/aws/lambda/My function name
。这是我的度量标准:

  ErrorsLogMetric:
    Type: AWS::Logs::MetricFilter
    Properties:
      LogGroupName: !Sub "/aws/lambda/${AWS::StackName}"
      FilterPattern: "[ERROR]"
      MetricTransformations:
        - MetricValue: "1"
          MetricNamespace: "LogMetrics"
          MetricName: "MyCustomMetric"
${AWS::StackName}在运行时解析为“我的函数名”。CloudFormation脚本运行成功,并表示度量已创建,但当我转到CloudWatch日志组查看lambda时,它显示零过滤器。在通过CloudFormation创建lambda日志组时,我需要采取什么不同的措施才能使此自定义度量显示为lambda日志组的筛选器


如果我将属性硬编码为
LogGroupName:“/aws/lambda/my function name”
,那么它可以工作。但是我不想硬编码,因为${AWS::StackName}的值在不同的用例中是动态的。

对我来说,解决方案似乎是添加

DependsOn: LambdaLogGroup

其中LambdaLogGroup是前面在我的模板中定义的资源。这让我很生气,因为日志组已经存在了一段时间,我正试图更新堆栈并添加度量。尽管日志组已经存在,并且在我添加度量时没有被CloudFormation更新,但仍然需要依赖关系。

您的模板看起来不错。如果日志组错误,则创建将失败。显示器可能没有更新。运行多长时间后,您查看了日志组?是否尝试使用cli检查是否存在筛选器?我想我和您有过类似的经历,在cloudfront中创建过滤器后,在控制台中找不到过滤器。您是否在模板中创建日志组?如果是,请将
LogGroupName
更改为
!参考LogGroupLogicalId