Hep*_*tus 5 terraform terraform-provider-aws aws-parameter-store
我们想要从 git 存储库加载文件并将其放入参数存储中。该文件包含针对多个组织帐户中的每个帐户自定义的配置数据,这些组织帐户是使用 Terraform 构建的,并且在其他方面是相同的。数据将存储在AWS SM Parameter Store中。例如,将字符串存储为参数的 Terraform 代码是:
resource "aws_ssm_parameter" "parameter_config" {
name = "config_object"
type = "String"
value = "long json string with configuration data"
}
Run Code Online (Sandbox Code Playgroud)
我知道 Terraform 有一个file()
操作员(参考),并且我知道 TF 可以从远程 git 存储库加载文件,但我不确定是否可以将所有这些整合在一起。
有几种方法可以做到这一点。
github
第一种是将提供程序与数据源一起使用github_repository_file
:
terraform {
required_providers {
github = {
source = "integrations/github"
version = "5.12.0"
}
}
}
provider "github" {
token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
owner = "org-name"
}
data "github_repository_file" "config" {
repository = "my-repo"
branch = "master"
file = "config-file"
}
resource "aws_ssm_parameter" "parameter_config" {
name = "config_object"
type = "String"
value = data.github_repository_file.config.content
}
Run Code Online (Sandbox Code Playgroud)
您也可以与http
提供商一起执行此操作:
data "http" "config" {
url = "https://raw.githubusercontent.com/my-org/my-repo/master/config-file"
}
resource "aws_ssm_parameter" "parameter_config" {
name = "config_object"
type = "String"
value = data.http.config.response_body
}
Run Code Online (Sandbox Code Playgroud)
请记住,使用http
数据源方法时您可能会得到多行字符串分隔符。(例如<<EOT ... EOT
:)
归档时间: |
|
查看次数: |
3577 次 |
最近记录: |