我aws_vpc_endpoint_service
在 Terraform (v0.11.14) 中使用在我的 AWS 账户上为 S3 创建 AWS VPC 端点,最近开始遇到以下错误:Error: multiple VPC Endpoint Services matched; use additional constraints to reduce matches to a single VPC Endpoint Service
相同的代码之前运行良好。分辨率是多少?
我aws_vpc_endpoint_service
在 Terraform (v0.11.14) 中使用在我的 AWS 账户上为 S3 创建 AWS VPC 端点,最近开始遇到以下错误:Error: multiple VPC Endpoint Services matched; use additional constraints to reduce matches to a single VPC Endpoint Service
相同的代码之前运行良好。分辨率是多少?
对于 aws provider < v3.10.0,可以使用中的filter
配置块解决问题aws_vpc_endpoint_service
data "aws_vpc_endpoint_service" "s3" {
service = "s3"
filter {
name = "service-type"
values = ["Gateway"]
}
}
resource "aws_vpc_endpoint" "s3" {
vpc_id = "${aws_vpc.vpc.id}"
service_name = "${data.aws_vpc_endpoint_service.s3.service_name}"
}
另请参阅 github 问题页面https://github.com/hashicorp/terraform-provider-aws/issues/17417
我找到了解决方案。
问题的原因:
AWS Provider Version >= v3.10.0 的解决方案:
data "aws_vpc_endpoint_service" "s3" {
service = "s3"
service_type = "Gateway"
}
AWS Provider Version < v3.10.0 的解决方案:
如果您无法更新到提供程序的最新版本,作为临时解决方法,您还可以使用 com.amazonaws.REGION.s3 作为下游配置中的端点值,而不是使用数据源。
data "aws_region" "current" {}
resource "aws_vpc_endpoint" "s3" {
vpc_id = "${local.vpc_id}"
service_name = "com.amazonaws.${data.aws_region.current.name}.s3"
}
就这些。
以前的参考代码不再起作用:
data "aws_vpc_endpoint_service" "s3" {
service = "s3"
}
resource "aws_vpc_endpoint" "s3" {
vpc_id = "${local.vpc_id}"
service_name = "${data.aws_vpc_endpoint_service.s3.service_name}"
}