Amazon web services AWS VPC端点服务:如何附加主体
我正在尝试创建一个AWS VPC端点服务(PrivateLink),在那里我可以将主体添加到已经存在的主体中。这是我目前的代码Amazon web services AWS VPC端点服务:如何附加主体,amazon-web-services,terraform,amazon-vpc,Amazon Web Services,Terraform,Amazon Vpc,我正在尝试创建一个AWS VPC端点服务(PrivateLink),在那里我可以将主体添加到已经存在的主体中。这是我目前的代码 resource "aws_vpc_endpoint_service" "privatelink" { provider = aws.customer acceptance_required = true network_load_balancer_arns = [&q
resource "aws_vpc_endpoint_service" "privatelink" {
provider = aws.customer
acceptance_required = true
network_load_balancer_arns = ["${aws_lb.nlb.arn}"]
}
resource "aws_vpc_endpoint_service_allowed_principal" "addition" {
provider = aws.customer
vpc_endpoint_service_id = aws_vpc_endpoint_service.privatelink.id
principal_arn = var.consumer_principal_arn
}
这对于变量中指定的一个主体非常有效,但当我使用另一个主体再次运行它时,会覆盖现有主体。我想要的是在每次执行terraform应用时,将零个或多个主体附加到现有主体列表中。例如,第一次运行它时,我指定主体X。我再次运行它,指定主体Y。现在,允许的主体列表是X和Y。您不能编辑现有资源定义以添加另一个主体。Terraform将此视为对名为“addition”的资源的更新,并执行更新。相反,您需要添加另一个
aws\u vpc\u endpoint\u service\u allowed\u principal
资源。您需要为每个附加ARN创建多个aws\u vpc\u endpoint\u service\u allowed\u principal
资源。通过这种方式,您可以在将来撤销主体,而不会破坏其他现有关联。当然,您可以使用和创建aws\u vpc\u endpoint\u service\u allowed\u principal
resources和count以及principal arn列表。但是,如果从列表中删除主体,则将重新创建从列表中删除主体后所有主体的关联,并且需要再次接受关联。谢谢您的评论,Mark。我为不清楚而道歉;我已经更新了这个问题,以反映我希望向任何现有主体追加零个或多个主体的要求。@PaulWaldo我不知道这意味着什么。如何将主体附加到主体上?实际上,您需要做的是在允许的主体列表中添加一个新主体。没有把一个校长附加到另一个校长的事情。谢谢马克,我已经澄清了。@PaulWaldo是的,你的澄清不会改变我的答案。你似乎忽略了地形状态如何运作的关键点。您不能修改现有资源定义以便向基础结构添加新资源。Terraform将其视为对现有资源的修改。我建议您创建一个您希望允许的ARN的地图或列表,并对每个ARN使用来创建它们,然后您只需向列表中添加一个值。