如何使用 amazon api 网关创建自定义端点?
How can I create a custom endpoint with amazon api gateway?
所以我在我的 RESTFUL Flask API 前面设置了一个 AWS API 网关,该网关托管在 EC2 实例上并与 gunicorn 一起使用,但它给了我一个非常丑陋的端点打,有没有办法让我把它变成一个自定义的 url?
我得到了这个 url https://123x123x.execute-api.eu-west-2.amazonaws.com/myendpoint/
我想要一个这样的 https://myurl.net/myendpoint
简短的回答是:
- 将 Cloudfront 权限分配给您帐户中的 IAM user/role:
{
"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 网关 REST API 进行管理:https://docs.aws.amazon.com/apigateway/api-reference/link-relation/domainname-create/
所以我在我的 RESTFUL Flask API 前面设置了一个 AWS API 网关,该网关托管在 EC2 实例上并与 gunicorn 一起使用,但它给了我一个非常丑陋的端点打,有没有办法让我把它变成一个自定义的 url?
我得到了这个 url https://123x123x.execute-api.eu-west-2.amazonaws.com/myendpoint/
我想要一个这样的 https://myurl.net/myendpoint
简短的回答是:
- 将 Cloudfront 权限分配给您帐户中的 IAM user/role:
{
"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 网关 REST API 进行管理:https://docs.aws.amazon.com/apigateway/api-reference/link-relation/domainname-create/