使用AWS CloudFormation创建AWS PrivateLink连接

0

【以下的问题经过翻译处理】 我正在使用CloudFormation设置基础架构,包括一个带有子网和VPC接口终端节点的VPC。

终端节点会使用作为堆栈的一部分而被创建的子网进行部署,但是当我开始部署时,我收到以下错误消息:

VPC终端点服务X不支持子网的可用区:subnet-Y

终端点服务部署在以下AZ的子网中:

  • us-east-1a(use1-az1)
  • us-east-1b(use1-az2)
  • us-east-1c(use1-az4)

我测试CloudFormation堆栈的VPC中的子网在以下AZ:

  • us-east-1a(use1-az2)
  • us-east-1b(use1-az4)
  • us-east-1c(use1-az6)

唯一匹配的是use1-az2和use1-az4。

我想知道是否有一种自动查找服务支持的AZ并将其与我的子网的AZ匹配的方法。

这样做的想法是使用相同的设置(VPC子网,终端点)创建4个不同的环境,以避免硬编码值。

profile picture
专家
已提问 5 个月前7 查看次数
1 回答
0

【以下的回答经过翻译处理】 您可以通过自定义资源Lambda在CloudFormation中调用DescribeVpcEndpointServices API,过滤特定服务,然后获取该服务可用的可用区列表。然后,您可以在堆栈中的其他资源中使用此信息。通过AWS CLI的示例输出片段:

{
    “ServiceDetails”:[
        {
            “ServiceName”:“aws.sagemaker.us-east-1.notebook”,
            “ServiceId”:“vpce-svc-0e123abc123198abc”,
            “ServiceType”:[
                {
                    “ServiceType”:“Interface”
                }
            ],
            “AvailabilityZones”:[
                “us-east-1a”,
                “us-east-1b”,
                “us-east-1c”,
                “us-east-1d”,
                “us-east-1e”,
                “us-east-1f”
            ],
            “Owner”:“ amazon”,
            “BaseEndpointDnsNames”:[
                “vpce-svc-0e123abc123198abc.us-east-1.vpce.amazonaws.com”,
                “notebook.us-east-1.vpce.sagemaker.aws”
            ],
            “PrivateDnsName”:“* .notebook.us-east-1.sagemaker.aws”,
            “VpcEndpointPolicySupported”:true,
            “AcceptanceRequired”:false,
            “ManagesVpcEndpoints”:false,
            “Tags”:[],
            “PrivateDnsNameVerificationState”:“ verified”
        },
...
}

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则