所以我在我的 RESTFUL Flask API 前面设置了一个 AWS API 网关,该 API 托管在 EC2 实例上,并与 gunicorn 一起提供,但它给了我一个非常丑陋的终端节点,有没有办法让它进入自定义 url?
我得到了这个网址https://123x123x.execute-api.eu-west-2.amazonaws.com/myendpoint/
我想有一个像https://myurl.net/myendpoint
简短的回答是:
- 将 Cloudfront 权限分配给您账户中的 IAM 用户/角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCloudFrontUpdateDistribution",
"Effect": "Allow",
"Action": [
"cloudfront:updateDistribution"
],
"Resource": [
"*"
]
}
]
}
- 定义映射到当前 URL 的边缘优化 API 终端节点
https://123x123x.execute-api.eu-west-2.amazonaws.com/myendpoint/
- 通过 AWS ACM 注册证书(或者,如果您有自己的 CA,请创建一个并导入(
- 在 Route 53 中为所需的
myurl.net
域创建自定义 DNS 名称 - 将新的自定义 DNS 名称分配给边缘优化对象的 A 记录别名,例如
a1b2c3d4e5f6.cloudfront.net
AWS 的较长答案详见此处:https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html
注意:这也可以通过 AWS API Gateway REST API 在很大程度上进行管理:https://docs.aws.amazon.com/apigateway/api-reference/link-relation/domainname-create/