terraform - 如何在 Hashicorp Terraform 中配置环境变量
问题描述
我对 Terraform 很陌生,尽管我已经浏览了 Hashicorp 网站上提供的所有教学模块。
目前,我正在努力理解如何设置环境变量。access_key = "${var.access_key}"
我知道如何在 main.tf 配置() 是如何设置环境变量,因此我不必将访问密钥保存到文件中。
有谁知道如何最好地做到这一点?
解决方案
Terraform 可以为 AWS 推断以下环境变量
export AWS_ACCESS_KEY_ID="anaccesskey"
export AWS_SECRET_ACCESS_KEY="asecretkey"
参考:https ://www.terraform.io/docs/providers/aws/#environment-variables
但我建议尝试AWS Profile
. 您可以将凭据添加到~/.aws/credentials
文件中,例如
[myprofile]
aws_access_key_id = anaccesskey
aws_secret_access_key = asecretkey
然后你可以设置环境变量export AWS_PROFILE=myprofile
。现在,如果你从这个 shell 运行 terraform,它应该会选择myprofile
.
此外,你可以让你AWS Provider
的代码如下:
provider "aws" {
profile = "myprofile"
region = "${var.region}"
}
以我的经验,与 AWS 交互profile
比在每个 shell 上设置环境变量更容易且更好。
你可以在这里参考一个例子https://github.com/pradeepbhadani/tf-examples/blob/master/ex2/provider.tf
希望这可以帮助。
推荐阅读
- javascript - 如何使用谷歌图表打破工具提示中的线条?
- python - 在python中使用pandas获取最频繁的值组
- javascript - 如何简化此更新函数数组代码?
- c - fscanf 会为 [^\n] 处理 \r 吗?
- docker - 在docker下的nginx中找不到文件error.log和access.log
- java - 如何防止 java args[] 从 dynamodb 表中返回一个空列表?
- python - Fstring 没有被读取为文档字符串 [discord.py]
- python - lxml 无法解析 html 片段包含某些 unicode 字符
- flutter - 在尝试使用颤振制作启动画面时,我收到错误 255 我该如何解决?
- php - Laravel 8 - back()->withInput() 为空