如何使用 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

简短的回答是:

  1. 将 Cloudfront 权限分配给您帐户中的 IAM user/role:
{
    "Version": "2012-10-17",
    "Statement": [
         {
            "Sid": "AllowCloudFrontUpdateDistribution",
            "Effect": "Allow",
            "Action": [
                "cloudfront:updateDistribution"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
  1. 定义映射到您当前 URL 的边缘优化 API 端点 https://123x123x.execute-api.eu-west-2.amazonaws.com/myendpoint/
  2. 通过 AWS ACM 注册一个证书(或者如果您有自己的 CA,创建一个并导入它)
  3. 在 Route 53 中为您想要的 myurl.net 域创建自定义 DNS 名称
  4. 将新的自定义 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/