繁体   English   中英

AWS SSM - 使用 terraform 和 json 文件存储多个参数

[英]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"))
}

我的app1ssm_param.json类似于

{
    "app1_config1": "config_value_1",
    "app1_config2": "config_value_2",
    "app1_config3": "config_value_3"
}

app2ssm_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM