terraform - 无法创建 AWSConfig 规则:InvalidParameterValueException:空格不能用于输入参数:阈值
问题描述
我正在尝试创建一个 aws 配置规则来检查 cloudtrail 警报是否已启用。Error: Error creating AWSConfig rule: Failed to create AWSConfig rule: InvalidParameterValueException: Blank spaces are not acceptable for input parameter: threshold.
运行时出现以下错误terraform apply
。我不确定输入参数参数中的格式问题是什么(请参阅 参考资料input_parameters
)。如果我删除除metricName
ie之外的所有内容,则应用有效
input_parameters = "{\"metricName\":\"CloudTrailConfigChanges\"}"
任何帮助将不胜感激。
resource aws_config_config_rule ensure-log-alarm-exists-for-cloudtrail {
name = "ensure-log-alarm-exists-for-cloudtrail"
description = "Checks whether cloudwatch alarm is on for cloudtrail configuration changes"
source {
owner = "AWS"
source_identifier = "CLOUDWATCH_ALARM_SETTINGS_CHECK"
}
input_parameters = "{\"metricName\":\"CloudTrailConfigChanges\",\"threshold\":1,\"evaluationPeriod\":1,\"period\":300,\"comparisionOperator\":\"GreaterThanOrEqualToThreshold\",\"statistic\":\"Sum\"}"
}
从 json 字符串解析类型 ints 似乎存在问题:https ://github.com/hashicorp/terraform-provider-aws/issues/773#issuecomment-385454229
即使使用我也会遇到同样的错误
input_parameters =<<EOF
{
"metricName":"CloudTrailConfigChanges",
"threshold":1
}
EOF
或者
input_parameters = jsonencode({"metricName":"CloudTrailConfigChanges","threshold"=1})
转换用引号括起来的 int 值也不起作用。
resource "aws_config_config_rule" "ensure-log-alarm-exists-for-cloudtrail" {
name = "ensure-log-alarm-exists-for-cloudtrail"
description = "Checks whether cloudwatch alarm is on for cloudtrail configuration changes"
source {
owner = "AWS"
source_identifier = "CLOUDWATCH_ALARM_SETTINGS_CHECK"
}
input_parameters = jsonencode({
metricName = "CloudTrailConfigChanges"
threshold = "1"
})
}
上面的代码产生以下错误:
Unknown parameters provided in the inputParameters:
解决方案
在您的示例中,您仍然将阈值指定为整数。试着把它变成一个字符串。
resource "aws_config_config_rule" "ensure-log-alarm-exists-for-cloudtrail" {
name = "ensure-log-alarm-exists-for-cloudtrail"
description = "Checks whether cloudwatch alarm is on for cloudtrail configuration changes"
source {
owner = "AWS"
source_identifier = "CLOUDWATCH_ALARM_SETTINGS_CHECK"
}
input_parameters = jsonencode({
metricName = "CloudTrailConfigChanges"
threshold = "1"
})
}
推荐阅读
- reactive-programming - 在组成反应链时,我应该依赖“单项”还是“普通项”参数?
- spring - 此应用程序没有显式映射 /error,因此您将其视为后备。- 春季启动 - jsp
- sql - 合并来自不同查询的两个虚拟表
- react-native - 身份验证后无法通过 Access Token 从 Google People API 获取相关信息
- function - 我想将向量的引用传递给函数,然后在那里修改它并作为向量返回
- swiftui - 是否可以在 SwiftUI 中创建具有 2 个以上按钮的警报?
- python-3.x - 如何设置 openai-gym 环境以特定状态而不是`env.reset()`开始?
- spring - 将 Vault 与 Spring Cloud Config Server 集成时未从 Vault 读取属性
- flutter - 如何动态更改文本字段中特定文本的颜色?
- r - 如何根据另一列的值聚合一列的 R 数据框