[英]AWS SSM - store multiple parameters using terraform and json file
我们有几个要迁移到 ec2 的遗留应用程序,它们使用一堆应用程序配置参数。 我需要能够将每个配置存储为每个应用程序的单独参数。
我正在尝试以下操作,但显然做得不对,因为它将所有值附加到每个应用程序的单个参数中:
locals {
application = {
"application1" = { app_shortcode = "app1"},
"application2" = { app_shortcode = "app2"}
}
resource "aws_ssm_parameter" "application_parameters" {
for_each = local.application
name = each.key
value = jsonencode(file("${path.module}/${each.key}/ssm_param.json"))
}
我的app1
的ssm_param.json
类似于
{
"app1_config1": "config_value_1",
"app1_config2": "config_value_2",
"app1_config3": "config_value_3"
}
和app2
的ssm_param.json
是
{
"app2_config_a": "config_value_a",
"app2_config_b": "config_value_b",
"app2_config_c": "config_value_c"
}
当前的 output 对于每个应用程序都是这样的单个参数: "{\r\n \"app2_config_a\": \"config_value_a\",\r\n \"app2_config_b\": \"config_value_b\"\r\n, \r\n \"app2_config_c\": \"config_value_c\"\r\n}"
请寻找建议。
我通过使用稍微不同的方法解决了这个问题(与我最初的方法不太一样,但现在这对我有用):
使用ssm_params.yaml
如下(项目团队很友好地给了我配置设置为 yaml 输出)
parameter:
app1:
name: app1_config1
description: "application config test"
type: "String"
value: "some_randoM_value"
app1:
name: app_config2
description: "another test"
type: "SecureString"
value: "some_random123_value###"
app2:
name: app_config_2
description: "config test"
type: "String"
value: "some_randoM_value_2"
locals { params = yamldecode(file("${path.module}/ssm_params.yaml")) } resource "aws_ssm_parameter" "app_params" { for_each = local.params.parameter name = each.value.name type = each.value.type value = each.value.value }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.