【发布时间】:2021-08-09 20:44:30
【问题描述】:
假设我正在为一家杂货店开发一个应用程序。我们都知道杂货店里有数百种杂货。现在,我的要求是使用 AWS Cloudformation 模板 (CFT) 创建一个 AWS Cloudwatch 警报。
之前假设我们的杂货店里只有大米和小麦,因此我们在 CFT 中创建了单独的警报资源。一个例子:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "AWS cloudwatch Grocery",
"Parameters": {
"Email": {
"Type": "String",
"Description": "Email address to notify when alarm is triggered",
"Default": "email@email.com"
}
},
"Resources": {
"AlarmNotificationTopic": {
"Type": "AWS::SNS::Topic",
"Properties": {
"Subscription": [
{
"Endpoint": {
"Ref": "Email"
},
"Protocol": "email"
}
]
}
},
"RiceQuantityLowAlarm": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"AlarmName": "RiceQuantityLowAlarm",
"AlarmDescription": "Alarm which gets triggered when Rice quantity is low",
"AlarmActions": [
{
"Ref": "AlarmNotificationTopicTest"
}
],
"MetricName": "Quantity",
"Namespace": "Grocery",
"Dimensions": [
{
"Name": "Item",
"Value": "Rice"
}
],
"ComparisonOperator": "LessThanOrEqualToThreshold",
"EvaluationPeriods": "10",
"Period": "360",
"Statistic": "Sum",
"Threshold": "1",
"TreatMissingData": "notBreaching"
}
},
"WheatQuantityLowAlarm": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"AlarmName": "WheatQuantityLowAlarm",
"AlarmDescription": "Alarm which gets triggered when Wheat quantity is low",
"AlarmActions": [
{
"Ref": "AlarmNotificationTopicTest"
}
],
"MetricName": "Quantity",
"Namespace": "Grocery",
"Dimensions": [
{
"Name": "Item",
"Value": "Wheat"
}
],
"ComparisonOperator": "LessThanOrEqualToThreshold",
"EvaluationPeriods": "10",
"Period": "360",
"Statistic": "Sum",
"Threshold": "1",
"TreatMissingData": "notBreaching"
}
}
}
}
现在假设我想在我的杂货店中添加更多商品,并且我不想仅限于大米和小麦。在这种情况下,假设我想在我的杂货店中添加 5 件新商品。因此,如果我遵循上述方法,我将在 CFT 中创建 5 个新的单独的 cloudwatch 警报资源,并且每当有新项目出现时都会这样做。但我不想这样做,因为我很懒。
有什么方法可以标准化 CFT 资源?可以看到 CFT cloudwatch 告警资源上面只有名称(大米/小麦)的区别,其余都是通用的。
【问题讨论】:
-
进展如何?仍然不清楚为什么你不能这样做?
标签: amazon-web-services amazon-cloudformation amazon-cloudwatch