Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

在 API Gateway 中设置区域 API

当 API 请求主要来自与 API 部署到的相同区域中的 EC2 实例或服务时,使用区域 API 终端节点通常可以降低连接的延迟,推荐用于此类场景。此外,对于管理自己的 Amazon CloudFront 分配的客户,他们可以使用区域 API 终端节点来确保 API Gateway 没有将 API 与受服务控制的 CloudFront 分配关联。

要创建区域 API,您可以按照创建边缘优化的 API 中的步骤操作,但必须明确将 REGIONAL 类型设置为 API 的 endpointConfiguration 的唯一选项。

在下文中,我们演示如何使用 API Gateway 控制台、AWS CLI、适用于 Javascript 和 Node.js 的 AWS 开发工具包以及 API Gateway REST API 创建区域 API。

使用 API Gateway 控制台创建区域 API

使用 API Gateway 控制台创建区域 API

  1. 登录 API Gateway 控制台,然后选择 + Create API

  2. Create new API 下,选择 New API 选项。

  3. API name 键入名称 (例如,Simple PetStore (Console, Regional))。

  4. Endpoint Type 选择 Regional

  5. 选择 Create API

从这里开始,您可以继续设置 API 方法及其关联的集成,如创建边缘优化的 API 中所述。

使用 AWS CLI 创建区域 API

要使用 AWS CLI 创建区域 API,请调用 create-rest-api 命令:

aws apigateway create-rest-api \ --name 'Simple PetStore (AWS CLI, Regional)' \ --description 'Simple regional PetStore API' \ --region us-west-2 \ --endpointConfiguration '{ types: ["REGIONAL"] }'

成功的响应返回与以下类似的输出:

{ "createdDate": "2017-10-13T18:41:39Z", "description": "Simple regional PetStore API", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0qzs2sy7bh", "name": "Simple PetStore (AWS CLI, Regional)" }

从这里开始,您可以按照使用 AWS CLI 命令设置边缘优化的 API中提供的相同说明来为此 API 设置方法和集成。

使用适用于 JavaScript 的 AWS 开发工具包创建区域 API

使用适用于 JavaScript 的 AWS 开发工具包创建区域 API:

apig.createRestApi({ name: "Simple PetStore (node.js SDK, regional)", endpointConfiguration: { types: ['REGIONAL'] }, description: "Demo regional API created using the AWS 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 AWS SDK for node.js", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0qzs2sy7bh", "name": "Simple PetStore (node.js SDK, regional)" }

完成前面的步骤之后,您可以按照 使用适用于 Node.js 的 AWS 开发工具包设置边缘优化的 API 中的说明来为此 API 设置方法和集成。

使用 API Gateway REST API 创建区域 API

要使用 API Gateway REST API 创建区域 API,请如下所示提交 POST 请求:

POST /restapis HTTP/1.1 Host: apigateway.us-west-2.amazonaws.com Content-Type: application/x-amz-json-1.0 X-Amz-Date: 20170511T214723Z Authorization: AWS4-HMAC-SHA256 Credential={ACCESS-KEY-ID}/20170511/us-west-2/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=d0abd98a2a06199531c2916b162ede9f63a247032cdc8e4d077216446d13103c { "name": "Simple PetStore (REST API, Regional)", "description": "A sample API Gateway API created using the REST API.", "endpointConfiguration" : { "types" : ["REGIONAL"] } }

成功的响应包含 201 Created 状态代码以及与以下输出类似的正文:

{ "createdDate": "2017-10-13T18:41:39Z", "description": "A sample API Gateway API created using the REST API.", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0qzs2sy7bh", "name": "Simple PetStore (REST API, Regional)" }

完成前面的步骤之后,您可以按照使用 API Gateway REST API 设置边缘优化的 API中的说明来为此 API 设置方法和集成。

测试区域 API

在部署后,区域 API 的默认 URL 主机名为以下格式:

{restapi-id}.execute-api.{region}.amazonaws.com

用于调用 API 的基本 URL 与以下类似:

https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}

假定您在本示例中设置 GET /petsGET /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