Я пытаюсь создать конечную точку VPC для узлов EC2 для доступа к сегментам S3 в пределах того же VPC в us-east-1 без необходимости прохода через шлюз NAT. Кажется, все работает нормально, когда я настраиваю один вручную через интерфейс браузера. Затем я удалил его и перешел к определению в моей конфигурации terraform как aws_vpc_endpoint следующим образом:
resource "aws_vpc_endpoint" "vpc-s3-endpoint-dev" {
vpc_id = "${aws_vpc.dev.id}"
service_name = "com.amazonaws.us-east-1.s3"
route_table_ids = ["${aws_route_table.dev-us-east-1-private.id}"]
}
План идет хорошо, и когда я пытаюсь применить, я просто получаю это:
Error: Error applying plan:
1 error(s) occurred:
* aws_vpc_endpoint.vpc-s3-endpoint-dev: 1 error(s) occurred:
* aws_vpc_endpoint.vpc-s3-endpoint-dev: Error creating VPC Endpoint: InvalidServiceName: The Vpc Endpoint Service 'com.amazonaws.us-east-1.s3' does not exist
status code: 400, request id: b062c637-ec55-4da4-8527-73b24c10fa3d
Из того, что я могу сказать, я все сделал правильно. Эта таблица маршрутов - та же самая, которую я связал с тестовой конечной точкой VPC, которую я также успешно создал вручную. Я попытался сделать это, разбив связанную таблицу маршрутов на отдельную aws_vpc_endpoint_route_table_association, и даже ни одной вообще. Я также пробовал другие псевдонимы для конечной точки сервиса us-east-1 S3 (com.amazonaws.s3 и т. Д.). Я просто продолжаю получать ту же самую расстраивающую ошибку, и у меня нет идей.
Редактировать: еще немного контекста
provider "aws" {
alias = "dev"
version = "= 2.12.0"
profile = "development"
region = "us-east-1"
}
resource "aws_vpc" "dev" {
provider = "aws.dev"
cidr_block = "10.201.0.0/16"
enable_dns_support = "true"
enable_dns_hostnames = "true"
}
Добавление конкретного поставщика в ресурс aws_vpc_endpoint
похоже, сработало.
aws_vpc_endpoint.vpc-s3-endpoint-dev-xxx-xxxxx: Creation complete after 6s (ID: vpce-xxxxxxxxxxxxx)
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.