是否有人拥有terraform共享的\u凭证\u文件来处理多个配置文件?
我使用的是TerraformV0.13.5 我有多个项目,因此有多个配置文件。 如果有必要的话,我也在使用s3共享状态 我在provider.tf中声明了以下内容是否有人拥有terraform共享的\u凭证\u文件来处理多个配置文件?,terraform,Terraform,我使用的是TerraformV0.13.5 我有多个项目,因此有多个配置文件。 如果有必要的话,我也在使用s3共享状态 我在provider.tf中声明了以下内容 shared_credentials_file = "~/.aws/credentials" profile = "profile_name" 但我得到了一个错误: 错误:配置Terraform AWS提供程序时出错:没有有效凭据 找到Terraform AWS提供程序的源 如果我还导出
shared_credentials_file = "~/.aws/credentials"
profile = "profile_name"
但我得到了一个错误:
错误:配置Terraform AWS提供程序时出错:没有有效凭据
找到Terraform AWS提供程序的源
如果我还导出shell变量
export AWS_SHARED_CREDENTIALS_FILE=/Users/$USER/.aws/credentials
export AWS_PROFILE=profile_name
它起作用了。(两者似乎都是必需的,因为如果shell变量的值和provider.tf文件之间不匹配,它也会阻塞)
这很好,我可以将它们添加到我的.bashrc中,除非我有多个不同项目的概要文件名。我可以为每个窗口手动设置profile env变量,但这显然是一个难题
是否有人成功地使用了多个配置文件并仅在terraform.tf文件中指定了它们
是的,我知道这个问题已经讨论过很多次了。是的,我见过向Hashicorp报告的bug。以前有一个bug,应该已经修复了。我特别想知道stackoverflow上是否有人使用过terraform的更高版本,如果有,如何使用。Martin的评论是正确的 我还需要将我的配置文件名添加到terraform.tf文件以及provider.tf文件中 我做了以下工作,它的工作
terraform {
backend "s3" {
bucket = "my_bucketname"
key = "my_keyname"
region = "us-west-1"
profile = "my_profile_name"
}
}
环境变量对于AWS提供程序和S3状态存储后端都是通用的,因此如果不使用环境变量,则需要在配置中的至少两个位置设置这些参数。从您共享的内容来看,您似乎只配置了提供程序,而没有配置S3后端。