我有以下deploy.tf
文件:
provider "aws" {
region = "us-east-1"
}
provider "aws" {
alias = "us_west_1"
region = "us-west-2"
}
resource "aws_us_east_1" "my_test" {
# provider = "aws.us_east_1"
count = 1
ami = "ami-0820..."
instance_type = "t2.micro"
}
resource "aws_us_west_1" "my_test" {
provider = "aws.us_west_1"
count = 1
ami = "ami-0d74..."
instance_type = "t2.micro"
}
我正在尝试使用它来部署2台服务器,每个区域中一台。我不断收到类似这样的错误:
aws_us_east_1.narc_test: Provider doesn't support resource: aws_us_east_1
我尝试为两个提供者块设置别名,并以多种不同方式引用正确的区域。我已经阅读了多区域支持,并且一些答案表明可以使用模块来完成此操作,但是,这是一个简单的测试,并且我想使其保持简单。目前可以吗?
答案 0 :(得分:1)
是的,即使在一个文件中,它也可以用于在不同区域中创建资源。无需在测试场景中使用模块。
您的错误可能是由错字引起的。如果要启动ec2实例,则要创建的资源是aws_instance
,而不是aws_us_west_1
或aws_us_east_1
。
当然,Terraform不知道这种资源,因为它根本不存在。将其更改为aws_instance
,您应该就可以了!另外,您可能应该使用不同的名称来命名,以避免对两个资源都使用my_test
进行重复命名。