

# 开始使用 API Gateway
<a name="getting-started"></a>

在此入门练习中，您将创建一个无服务器 API。无服务器 API 让您可以专注于应用程序，而不是花时间预置和管理服务器。本次练习可在 20 分钟内完成，并且可以使用[AWS免费套餐](https://aws.amazon.com/free/)完成。

然后，使用 AWS Lambda 控制台创建 Lambda 函数。接下来，使用 API Gateway 控制台创建 HTTP API。然后，调用您的 API。

**注意**  
本练习使用 HTTP API。API Gateway 还支持包含更多功能的 REST API。有关使用 REST API 的教程，请参阅[开始使用 REST API 控制台](getting-started-rest-new-console.md)。  
有关 HTTP API 与 REST API 之间差异的更多信息，请参阅[在 REST API 和 HTTP API 之间进行选择](http-api-vs-rest.md)。

当您调用 HTTP API 时，API Gateway 会将请求路由到您的 Lambda 函数。Lambda 运行 Lambda 函数并将响应返回 API Gateway。然后 API Gateway 会向您返回响应。

![\[您在本教程中创建的 HTTP API 的概述。\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/getting-started-overview.png)


要完成本练习，您需要一个AWS账户以及一位具有控制台访问权限的 AWS Identity and Access Management 用户。有关更多信息，请参阅 [设置为使用 API Gateway](setting-up.md)。

**Topics**
+ [

## 步骤 1：创建 Lambda 函数
](#getting-started-create-function)
+ [

## 步骤 2：创建 HTTP API
](#getting-started-create-api)
+ [

## 步骤 3：测试您的 API
](#getting-started-invoke-api)
+ [

## （可选）步骤 4：清理
](#getting-started-cleanup)
+ [

## 后续步骤
](#getting-started-next-steps)

## 步骤 1：创建 Lambda 函数
<a name="getting-started-create-function"></a>

将 Lambda 函数用作您的 API 后端。只有在需要时 Lambda 才运行您的代码，并且能自动扩展，从每天几个请求扩展到每秒数千个请求。

在本示例中，您可以使用 Lambda 控制台中的默认 Node.js 函数。

**创建 Lambda 函数**

1. 通过以下网址登录 Lambda 控制台：[https://console.aws.amazon.com/lambda](https://console.aws.amazon.com/lambda)。

1. 选择**创建函数**。

1. 对于**函数名称**，请输入 **my-function**。

1. 对于所有其它选项，请使用默认设置。

1. 选择 **Create function (创建函数)**。

示例函数返回 `200` 响应到客户端，以及文本 `Hello from Lambda!`。

只要函数的响应与 [API Gateway 所要求的格式](http-api-develop-integrations-lambda.md#http-api-develop-integrations-lambda.response)保持一致，您就可以修改您的 Lambda 函数。

默认的 Lambda 函数代码应类似于以下内容：

```
export const handler = async (event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};
```

## 步骤 2：创建 HTTP API
<a name="getting-started-create-api"></a>

接下来，创建一个 HTTP API。API Gateway 还支持 REST API 和 WebSocket API，但是 HTTP API 是本练习的最佳选择。REST API 比 HTTP API 支持更多功能，但我们在本练习中不需要这些功能。HTTP API 在设计时功能就极少，因此能够以更低的价格提供。WebSocket API 与客户端保持持久连接，以进行全双工通信，但这不是本示例所必需的。

HTTP API 为您的 Lambda 函数提供了 HTTP 终端节点。API Gateway 将请求路由到您的 Lambda 函数，然后将该函数的响应返回给客户端。



**要创建 HTTP API**

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1. 请执行下列操作之一：
   + 要创建第一个 API，对于 **HTTP API**，请选择**构建**。
   + 如果您之前已经创建了 API，请选择**创建 API**，然后为 **HTTP API** 选择**构建**。

1. 对于**集成**，选择**添加集成**。

1. 选择 **Lambda**。

1. 对于 **Lambda function**（Lambda 函数），输入 **my-function**。

1. 对于 **API Name (API 名称)**，请输入 **my-http-api**。

1. 选择 **Next (下一步)**。

1. 查看 API Gateway 为您创建的*路径*，然后选择**下一步**。

1. 查看 API Gateway 为您创建的*阶段*，然后选择**下一步**。

1. 选择**创建**。

现在，您已经创建了一个集成了 Lambda 的 HTTP API，可以随时接收来自客户端的请求。

## 步骤 3：测试您的 API
<a name="getting-started-invoke-api"></a>

接下来，测试您的 API 以确保它正常工作。为简单起见，请使用 Web 浏览器调用 API。

**要测试您的 API**

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1. 选择 API。

1. 请记下您的 API 的调用 URL。  
![\[创建 API 后，控制台会显示 API 的调用 URL。\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/getting-started-invoke-url.png)

1. 复制 API 的调用 URL，然后在 Web 浏览器中输入它。将 Lambda 函数的名称附加到调用您的 Lambda 函数的调用 URL 中。默认情况下，API Gateway 控制台创建与您的 Lambda 函数名称相同的路由，`my-function`。

   完整的 URL 应类似于 `https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function`。

   您的浏览器向 API 发送 `GET` 请求。

1. 验证 API 的响应。您应该会在浏览器中看到文本 `"Hello from Lambda!"`。

## （可选）步骤 4：清理
<a name="getting-started-cleanup"></a>

为避免不必要的成本，请删除作为本入门练习的一部分而创建的资源。以下步骤将删除 HTTP API、Lambda 函数和相关资源。

**要删除 HTTP API**

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1. 在 **API** 页面上，选择一个 API。选择**操作**，然后选择**删除**。

1. 选择**删除**。

**要删除 Lambda 函数**

1. 通过以下网址登录 Lambda 控制台：[https://console.aws.amazon.com/lambda](https://console.aws.amazon.com/lambda)。

1. 在**函数**页面上，选择一个函数。选择**操作**，然后选择**删除**。

1. 选择**删除**。

**要删除 Lambda 函数的日志组**

1. 在 Amazon CloudWatch 控制台中，打开[日志组页面](https://console.aws.amazon.com/cloudwatch/home#logs:)。

1. 在**日志组**页面上，选择函数的日志组 (`/aws/lambda/my-function`)。选择**操作**，然后选择**删除日志组**。

1. 选择**删除**。

**要删除 Lambda 函数的执行角色**

1. 打开‭AWS Identity and Access Management‬控制台中的‭‬[角色页面‭](https://console.aws.amazon.com/iam/home?#/roles)。

1. 选择函数的角色，例如 `my-function-31exxmpl`。

1. 选择**删除角色**。

1. 选择 **Yes, delete (是，删除)**。

您可以使用 CloudFormation 或 AWS SAM 自动创建和清理AWS资源。如需示例 CloudFormation 模板，请参阅[示例 CloudFormation 模板](https://github.com/awsdocs/amazon-api-gateway-developer-guide/tree/main/cloudformation-templates)。

## 后续步骤
<a name="getting-started-next-steps"></a>

在本示例中，您使用AWS 管理控制台创建了一个简单的 HTTP API。该 HTTP API 调用 Lambda 函数并向客户端返回响应。

以下是继续使用 API Gateway 的后续步骤。
+ [配置其他类型的 API 集成，](http-api-develop-integrations.md)包括：
  + [HTTP 终端节点](http-api-develop-integrations-http.md)
  + [VPC 中的私有资源，例如 Amazon ECS 服务](http-api-develop-integrations-private.md)
  + [AWS 服务，例如 Amazon Simple Queue Service、AWS Step Functions 和 Kinesis Data Streams](http-api-develop-integrations-aws-services.md)
+ [控制对 API 的访问](http-api-access-control.md)
+ [为您的 API 启用日志记录](http-api-logging.md)
+ [为 API 配置限制 ](http-api-throttling.md)
+ [为您的 API 配置自定义域](http-api-custom-domain-names.md)

要从社区获取有关 Amazon API Gateway 的帮助，请参阅 [API Gateway 开发论坛](https://repost.aws/tags/TAx94GNHn2R3Ot5Ab_HCvlng)。当您进入此论坛时，AWS可能会要求您登录。

要直接从AWS获得 API Gateway 方面的帮助，请参阅[AWS支持页面](https://aws.amazon.com/premiumsupport/)中的支持选项。

另请参阅我们的[常见问题 (FAQ)](https://aws.amazon.com/api-gateway/faqs/)，或者[直接与我们联系](https://aws.amazon.com/contact-us/)。