在 API Gateway 中设置区域 API
当 API 请求主要来自与 API 部署到的相同区域中的 EC2 实例或服务时,使用区域 API 终端节点通常可以降低连接的延迟,推荐用于此类场景。
在 API 客户端在地理上分散的案例中,它仍可使用区域 API 终端节点以及您自己的 Amazon CloudFront 分配以确保 API Gateway 不会将 API 与服务控制的 CloudFront 分配关联。有关此使用案例的更多信息,请参阅如何使用我自己的 CloudFront 分配设置 API Gateway?
要创建区域 API,您可以按照创建边缘优化的 API 中的步骤操作,但必须明确将 REGIONAL
类型设置为 API 的 endpointConfiguration 的唯一选项。
在下文中,我们演示如何使用 API Gateway 控制台、Amazon CLI、适用于 Javascript 和 Node.js 的Amazon开发工具包创建区域 API。
使用 API Gateway 控制台创建区域 API
使用 API Gateway 控制台创建区域 API
-
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
如果您是第一次使用 API Gateway,您会看到一个介绍服务功能的页面。在 REST API 下,选择 Build (生成)。当 Create Example API (创建示例 API) 弹出框出现时,选择 OK (确定)。
如果这不是您首次使用 API Gateway,请选择创建 API。在 REST API 下,选择 Build (生成)。
选择 New API (新 API)。
在 API Name (API 名称) 中输入名称。
还可选择在 Description (描述) 中添加简短描述。
选择 Create API (创建 API)。
从这里开始,您可以继续设置 API 方法及其关联的集成,如创建边缘优化的 API 中所述。
使用 Amazon CLI 创建区域 API
要使用 Amazon CLI 创建区域 API,请调用 create-rest-api
命令:
aws apigateway create-rest-api \ --name 'Simple PetStore (Amazon CLI, Regional)' \ --description 'Simple regional PetStore API' \ --region us-west-2 \ --endpoint-configuration '{ "types": ["REGIONAL"] }'
成功的响应返回与以下类似的负载:
{ "createdDate": "2017-10-13T18:41:39Z", "description": "Simple regional PetStore API", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0qzs2sy7bh", "name": "Simple PetStore (Amazon CLI, Regional)" }
从这里开始,您可以按照使用 Amazon CLI 命令设置边缘优化的 API中提供的相同说明来为此 API 设置方法和集成。
使用适用于 JavaScript 的 Amazon 开发工具包创建区域 API
要使用适用于 JavaScript 的 Amazon 开发工具包创建区域 API:
apig.createRestApi({ name: "Simple PetStore (node.js SDK, regional)", endpointConfiguration: { types: ['REGIONAL'] }, description: "Demo regional API created using the Amazon SDK for node.js", version: "0.00.001" }, function(err, data){ if (!err) { console.log('Create API succeeded:\n', data); restApiId = data.id; } else { console.log('Create API failed:\n', err); } });
成功的响应返回与以下类似的负载:
{ "createdDate": "2017-10-13T18:41:39Z", "description": "Demo regional API created using the Amazon SDK for node.js", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0qzs2sy7bh", "name": "Simple PetStore (node.js SDK, regional)" }
完成前面的步骤之后,您可以按照使用适用于 Node.js 的 Amazon 开发工具包设置边缘优化的 API中的说明来为此 API 设置方法和集成。
测试区域 API
在部署后,区域 API 的默认 URL 主机名为以下格式:
{restapi-id}
.execute-api.{region}
.amazonaws.com
用于调用 API 的基本 URL 与以下类似:
https://
{restapi-id}
.execute-api.{region}
.amazonaws.com/{stage}
假定您在本示例中设置 GET /pets
和 GET /pets/{petId}
方法,您可以通过在浏览器中键入以下 URL 来测试 API:
https://0qzs2sy7bh.execute-api.us-west-2.amazonaws.com/test/pets
和
https://0qzs2sy7bh.execute-api.us-west-2.amazonaws.com/test/pets/1
或者,您可以使用 cURL 命令:
curl -X GET https://0qzs2sy7bh.execute-api.us-west-2.amazonaws.com/test/pets
和
curl -X GET https://0qzs2sy7bh.execute-api.us-west-2.amazonaws.com/test/pets/2