在Terraform中定义AWS提供程序时,
provider "aws" {
access_key = "<AWS_ACCESS_KEY>"
secret_key = "<AWS_SECRET_KEY>"
region = "<AWS_REGION>"
}
我希望能够只使用已经定义的系统变量
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
有什么办法可以让tf文件读取环境变量?做类似的事情,
provider "aws" {
access_key = env.AWS_ACCESS_KEY_ID
secret_key = env.AWS_SECRET_KEY_ID
region = env.AWS_REGION
}
是的,可以在Terraform中读取环境变量。有一种非常特定的方法必须完成。您将需要使环境变量成为terraform中的变量。
例如,我想将super_secret_variable传递给terraform。我需要在terraform文件中为其创建一个变量。
variable "super_secret_variable" {
type = "string
}
然后根据惯例,我将必须在我的环境变量前加上TF_VAR_像这样:
TF_VAR_super_secret_variable
然后terraform将自动检测并使用它。Terraform处理器基于特定顺序的变量,该顺序为-var选项,-var-file选项,环境变量,如果在tf文件中定义,则为默认值。
或者,您可以通过CLI传递环境变量以像这样在terraform中设置变量。
> terraform apply -var super_secret_variable=$super_secret_variable
这不需要在其前面加上前缀,因此,如果它们不能更改,则可能是最好的做法。
你可以阅读更多这里的文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句