问题描述
我需要添加一个警报以在 CloudFormation 中触发回滚。我决定添加一个可以手动分配的自定义指标。我正在查看文档 here。这看起来可行,但我需要将其添加到模板中。这可能吗?我最初认为值的方式是 0 失败,如下所示
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
<div class="header">
<ul class="nav">
<li class="logo"> logo</li>
<li> Home</li>
<li> Price</li>
<li> About / Contacts</li>
<li> Home</li>
</ul>
</div>
当我想触发回滚时,我会将其设置为 1
aws cloudwatch put-metric-data --metric-name Failures --namespace MyNamespace --value 0
但我需要在模板中使用它,以便在定义警报时可以访问 aws cloudwatch put-metric-data --metric-name Failures --namespace MyNamespace --value 1
的正确/动态值。
解决方法
除非您想通过 cloudformation custom resource
你也可以使用它Running bash commands in AWS CloudFormation templates
有了上面的你可以运行你的命令
Resources:
CommandRunner:
Type: AWSUtility::CloudFormation::CommandRunner
Properties:
Command: 'aws cloudwatch put-metric-data --metric-name Failures --namespace MyNamespace --value 1'
,
您可以使用 cloudformation 简单模板添加指标
资源“AWS::Logs::MetricFilter”指定一个指标过滤器 描述 CloudWatch Logs 如何从日志中提取信息以及 将其转换为 Amazon CloudWatch 指标。如果您有多个 与日志组关联的指标过滤器,所有过滤器 应用于该组中的日志流。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html
样品
404MetricFilter:
Type: AWS::Logs::MetricFilter
Properties:
LogGroupName:
Ref: "myLogGroup"
FilterPattern: "[ip,identity,user_id,timestamp,request,status_code = 404,size]"
MetricTransformations:
-
MetricValue: "1"
MetricNamespace: "WebServer/404s"
MetricName: "404Count"