AWS CDK:使用 VPC 接口端点创建 API 网关时出现异常
AWS CDK : Exception while creating API Gateway with VPC Interface Endpoint
我正在尝试查找现有 VPC,检索所有私有子网(确保每个可用区中只有私有子网)。创建 VPC 端点,稍后在创建 API 网关期间将其与 API 网关相关联。但是当 运行 代码时出现以下异常。
vpce-00c8fd5068629a5ab 不是有效的 VPC 端点 ID(服务:AmazonApiGateway;状态代码:400;错误代码:BadRequestException;请求 ID:ab287404-3002-41e5-8d93-e5792577d262;
代理:空)
另外,我可以单独创建 VPC 端点。也可以在不与 VPC 端点关联的情况下创建普通 API 网关。
请让我知道可能是什么问题。
vpc_retrieved = aws_ec2.Vpc.from_lookup(self, id="testvpcid",vpc_name="somevalidvpcname")
subnet_list = []
for subnet in vpc.private_subnets:
subnet_list.append(subnet)
vpc_endpoint = aws_ec2.InterfaceVpcEndpoint(self,
id="vpcendpoint",
vpc=vpc_retrieved,
service=aws_ec2.InterfaceVpcEndpointService(
name="com.amazonaws.us-east-2.lambda",port=80),
subnets=aws_ec2.SubnetSelection(subnets=subnet_list)
)
vpc_endpoints = []
vpc_endpoints.append(vpc_endpoint)
vpc_endpoint_types = []
vpc_endpoint_types.append(aws_cdk.aws_apigateway.EndpointType.PRIVATE)
api_gateway = aws_cdk.aws_apigateway.RestApi(self,
id="cdktestapi",
rest_api_name="cdk-test-api",
endpoint_configuration=
aws_cdk.aws_apigateway.EndpointConfiguration(
types=vpc_endpoint_types,
vpc_endpoints=vpc_endpoints)
)
事实证明这是一个基本问题。我需要使用正确的 API 网关服务端点,即“com.amazonaws.us-east-2.execute-api”。因此,通过以下方式创建 VPC 端点解决了问题:
vpc_endpoint = aws_ec2.InterfaceVpcEndpoint(self,
id="vpcendpoint",
vpc=vpc_retrieved,
service=aws_ec2.InterfaceVpcEndpointService(
name="com.amazonaws.us-east-2.execute-api",port=80),
subnets=aws_ec2.SubnetSelection(subnets=subnet_list)
)
我正在尝试查找现有 VPC,检索所有私有子网(确保每个可用区中只有私有子网)。创建 VPC 端点,稍后在创建 API 网关期间将其与 API 网关相关联。但是当 运行 代码时出现以下异常。
vpce-00c8fd5068629a5ab 不是有效的 VPC 端点 ID(服务:AmazonApiGateway;状态代码:400;错误代码:BadRequestException;请求 ID:ab287404-3002-41e5-8d93-e5792577d262; 代理:空)
另外,我可以单独创建 VPC 端点。也可以在不与 VPC 端点关联的情况下创建普通 API 网关。
请让我知道可能是什么问题。
vpc_retrieved = aws_ec2.Vpc.from_lookup(self, id="testvpcid",vpc_name="somevalidvpcname")
subnet_list = []
for subnet in vpc.private_subnets:
subnet_list.append(subnet)
vpc_endpoint = aws_ec2.InterfaceVpcEndpoint(self,
id="vpcendpoint",
vpc=vpc_retrieved,
service=aws_ec2.InterfaceVpcEndpointService(
name="com.amazonaws.us-east-2.lambda",port=80),
subnets=aws_ec2.SubnetSelection(subnets=subnet_list)
)
vpc_endpoints = []
vpc_endpoints.append(vpc_endpoint)
vpc_endpoint_types = []
vpc_endpoint_types.append(aws_cdk.aws_apigateway.EndpointType.PRIVATE)
api_gateway = aws_cdk.aws_apigateway.RestApi(self,
id="cdktestapi",
rest_api_name="cdk-test-api",
endpoint_configuration=
aws_cdk.aws_apigateway.EndpointConfiguration(
types=vpc_endpoint_types,
vpc_endpoints=vpc_endpoints)
)
事实证明这是一个基本问题。我需要使用正确的 API 网关服务端点,即“com.amazonaws.us-east-2.execute-api”。因此,通过以下方式创建 VPC 端点解决了问题:
vpc_endpoint = aws_ec2.InterfaceVpcEndpoint(self,
id="vpcendpoint",
vpc=vpc_retrieved,
service=aws_ec2.InterfaceVpcEndpointService(
name="com.amazonaws.us-east-2.execute-api",port=80),
subnets=aws_ec2.SubnetSelection(subnets=subnet_list)
)