如何停用 API Gateway 的 REST API 或 HTTP API 默认端点?

2 分钟阅读
0

我想允许客户端仅使用自定义域名调用我的 API。

简短描述

Amazon API Gateway 的 REST APIHTTP API 使用以下格式的默认 API 端点:https://API_ID.execute-api.REGION.amazonaws.com。如果您为 API Gateway 的 REST API 或 HTTP API 设置了自定义域名,则可以停用默认端点。这允许所有流量通过自定义域名路由到您的 API。

解决方法

要停用默认端点,请使用 API Gateway 控制台、AWS 命令行界面(AWS CLI)或 AWS CloudFormation。停用默认端点后,必须启动部署才能使更新生效。

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

API Gateway 控制台

REST API

  1. 打开 API Gateway 控制台
  2. 在导航窗格中选择 API,然后选择您的 REST API。
  3. 在导航窗格中选择设置
  4. 对于默认端点,选择禁用,然后选择保存更改
  5. 在导航窗格中,依次选择资源操作,然后选择部署 API

HTTP API

  1. 打开 API Gateway 控制台
  2. 在导航窗格中,选择 API,然后选择您的 HTTP API。
  3. 在导航窗格中,选择 API: API_NAME(API_ID)
  4. 选择编辑
  5. 对于默认端点,选择禁用,然后选择保存

AWS CLI

REST API
运行 AWS CLI 命令 update-rest-api

aws apigateway update-rest-api --rest-api-id abcdef123 --patch-operations op=replace,path=/disableExecuteApiEndpoint,value='True'

要部署更新后的 API,请运行 AWS CLI 命令 create-deployment

aws apigateway create-deployment --rest-api-id abcdef123 --stage-name dev

**注意:**将 api-id abcdef123 和 stage_name dev 替换为您的 REST API ID 和相应的阶段。

HTTP API

运行 AWS CLI 命令 update-api

aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint

要部署更新后的 API,请运行 AWS CLI 命令 create-deployment

aws apigatewayv2 create-deployment --api-id abcdef123 --stage-name dev

**注意:**将 api_id abcdef123 和 stage_name dev 替换为您的 HTTP API ID 和相应的阶段。

CloudFormation 模板

要停用 CloudFormation 模板中的默认端点,请将 DisableExecuteApiEndpoint 参数设置为 True。更新 REST APIHTTP API 的 CloudFormation 模板。

**重要信息:**如果您使用默认端点 URL 调用 API,则停用默认端点会导致错误。对于 REST API,您会收到 HTTP 403 禁止错误,对于 HTTP API,您会收到 HTTP 404 未找到错误。

相关信息

在 Amazon API Gateway 中调用 REST API

如何解决来自 API Gateway 的 HTTP 403 错误?

AWS 官方
AWS 官方已更新 10 个月前