正在运行 API 网关 本地 - AWS Serverless Application Model
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

正在运行 API 网关 本地

使用 sam本地start-api 命令启动本地实例 API 网关 用于测试HTTP请求/响应功能的。此功能具有热加载功能,使您能够快速开发和迭代您的功能。

注意

“热重新加载”是指仅刷新更改的文件而不丢失应用程序的状态。相比之下,“实时重新加载”是整个应用程序刷新时,这样应用程序的状态就会丢失。

您必须执行 sam local start-api 包含您要调用的功能的项目目录中。

示例:

sam local start-api

AWS SAM 自动查找您 AWS SAM 具有 Api 事件来源已定义。然后,它会将它们安装在定义的HTTP路径上。

此动画显示 API 网关 在本地使用MicrosoftVisualStudio代码:

在以下示例中, Ratings 功能安装 ratings.py:handler()/ratingsGET 请求:

Ratings: Type: AWS::Serverless::Function Properties: Handler: ratings.handler Runtime: python3.6 Events: Api: Type: Api Properties: Path: /ratings Method: get

依默认, AWS SAM 使用 代理集成 并期望您的 Lambda 函数以包括下列一项或多项: statusCode, headers,或 body.

例如:

// Example of a Proxy Integration response exports.handler = (event, context, callback) => { callback(null, { statusCode: 200, headers: { "x-custom-header" : "my custom header value" }, body: "hello world" }); }

例如,在其他 AWS Lambda 语言,请参阅 代理集成.

环境变量文件

您可以使用 --env-vars 参数 invokestart-api 命令提供包含值的JSON文件,以覆盖已在功能模板中定义的环境变量。按如下方式构建文件:

{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket" }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" }, }

例如,如果您将此内容保存在名为 env.json,则以下命令使用此文件覆盖包括的环境变量:

sam local start-api --env-vars env.json

Layers

如果您的应用程序包含层,请参阅 处理层 了解有关如何在本地主机上调试层问题的更多信息。