所以我想开始从AWS帐户导入现有的基础设施,并且我在main.tf
文件中有以下简单代码:
provider "aws" {
shared_credentials_file = "$HOME/.aws/credentials"
profile = "profile_I_want"
region = "us-east-1"
}
resource "aws_ecs_cluster" "my_cluster" {
# name = "my-cluster"
}
我的AWS凭据文件有两个配置文件+默认的一个集:
[default]
aws_secret_access_key = secretkey2
aws_access_key_id = accesskey2
[another_profile]
aws_secret_access_key = secretkey1
aws_access_key_id = accesskey1
[profile_I_want]
aws_secret_access_key = secretkey2
aws_access_key_id = accesskey2
注:another_profile
和profile_I_want
对应不同的AWS帐号。
这些是我正在使用的版本:
Terraform v0.12.28
+ provider.aws v2.70.0
当我执行terraform import aws_ecs_service.my_service my-service
时,会出现下一个错误:
aws_ecs_cluster.my_cluster: Refreshing state... [id=arn:aws:ecs:us-east-1:another_profile_ID:cluster/my-cluster]
Error: Cannot import non-existent remote object
注意another_profile_ID
arn
以下是我的问题:
- Terraform在某一点上默认选择
another_profile
,我不知道如何更改它。我可以从profile_I_want
帐户设置和导入基础设施吗 - 当目录中没有以前的
.tfstate
文件时,我可以导入基础结构吗
我想我找到了一个解决方案,至少在我的情况下,terraform import
似乎取了环境变量AWS_ACCESS_KEY
和AWS_SECRET_KEY
的值,所以我只是在处理这个项目时更改了这两个变量的值。