要将AWS API网关的HTTP API自定义域名链接到VPC中的ALB,您可以按照以下步骤操作:
创建一个VPC,并在该VPC中创建一个公有子网和一个私有子网。
创建一个Application Load Balancer(ALB),并将其放置在私有子网中。
在ALB上配置您的目标组,并将其与一个或多个后端服务关联。
在API网关控制台中创建一个HTTP API,并定义您的API。
在API网关控制台中,选择您的API,然后选择“自定义域名”选项卡。
单击“添加自定义域名”,然后输入您的域名信息。
在“TLS版本”下拉菜单中,选择适用于您的域名的TLS版本。
在“API的终端配置”中,选择“VPC链接”。
在“VPC链接”下拉菜单中,选择您的VPC。
在“终端配置”下拉菜单中,选择与您的ALB关联的目标组。
单击“保存”。
以下是一个示例CloudFormation模板,展示了如何使用AWS CLI创建一个API网关HTTP API和自定义域名,然后将其链接到VPC中的ALB:
Resources:
MyApi:
Type: AWS::ApiGatewayV2::Api
Properties:
Name: MyApi
ProtocolType: HTTP
MyCustomDomain:
Type: AWS::ApiGatewayV2::DomainName
Properties:
DomainName: example.com
DomainNameConfigurations:
- EndpointType: REGIONAL
CertificateArn: arn:aws:acm:us-west-2:123456789012:certificate/abcd1234-abcd-1234-abcd-123456789012
MyVpcLink:
Type: AWS::ApiGatewayV2::VpcLink
Properties:
Name: MyVpcLink
SubnetIds:
- subnet-12345678
- subnet-87654321
MyApiMapping:
Type: AWS::ApiGatewayV2::ApiMapping
Properties:
ApiId: !Ref MyApi
DomainName: !Ref MyCustomDomain
Stage: $default
MyApiVpcLinkAssociation:
Type: AWS::ApiGatewayV2::VpcLinkAssociation
Properties:
VpcLinkId: !Ref MyVpcLink
ApiId: !Ref MyApi
Outputs:
ApiEndpoint:
Value: !Sub "https://${MyCustomDomain.DomainName}"
请注意,上述示例模板仅包含了API网关HTTP API和自定义域名的创建,并将其链接到VPC中的ALB。您可能需要根据自己的需求进行更改和补充。