地形。从 AWS 参数存储中获取值

Terraform. Get value from AWS parameter store

无法理解如何从参数存储中获取值并将其传递给 terraform 变量。 我有一个名称为“github_token”且类型为“string”的参数。并且在地形代码中有一个变量

variable "github_oauth_token" {
    default=""
 }

我试图用下一段代码接收参数值,但它不正确。

data "aws_ssm_parameter" "github_token" {
  name = "github_token"
  type = "string"
  value = var.github_oauth_token
}

使用 data 源时,您并不是在创建新值,您只是在读取现有值。因此,在此上下文中指定“值”和“类型”没有意义,因为参数的值和类型已经存在。如果您查看 the data source aws_ssm_parameter documentation,您会发现唯一需要的是 name 值。

假设:

  1. 运行 Terraform 的用户有权访问 SSM(参数存储)
  2. 在路径 github_token
  3. 的参数存储中存储了一个值
  4. 该值未加密

这应该适合你:

variable "github_oauth_token" {
    default = "github_token"
 }

data "aws_ssm_parameter" "github_token" {
  name = var.github_oauth_token
}

然后使用参数存储项的值:

data.aws_ssm_parameter.github_token.value