本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam 本地启动 api
允许您在本地运行无服务器应用程序以进行快速开发和测试。当您在包含无服务器函数和Amazon SAM模板的目录中运行此命令时,它会创建一个托管所有函数的本地 HTTP 服务器。
默认情况下,当您使用此命令时,Amazon SAMCLI 假定您当前的工作目录是项目的根目录。CAmazon SAM LI 首先尝试找到使用山姆·布莱德命令生成的模板文件,该文件位于.aws-sam子文件夹中,命名为template.yaml或template.yml。接下来,Amazon SAMCLI 会尝试在当前工作目录template.yml中找到名为template.yaml或的模板文件。如果您指定该--template选项,Amazon SAMCLI 的默认行为将被覆盖,并将仅加载该Amazon SAM模板及其指向的本地资源。
当访问(通过浏览器、CLI 等)时,它会在本地启动 Docker 容器来调用该函数。它读取AWS::Serverless::Function资源的 CodeUri 属性以查找文件系统中包含 Lambda 函数代码的路径。这可能是项目的 Node.js 和 Python 等解释型语言的根目录,也可以是存储已编译构件或 Java 存档 (JAR) 文件的构建目录。
如果您使用的是解释型语言,则每次调用时都会在 Docker 容器中立即使用本地更改。对于需要复杂打包支持的更多编译语言或项目,我们建议您运行自己的构建解决方案,并指Amazon SAM向包含编译构件的目录或文件。
要查看使用此命令的 end-to-end 示例,请参阅教程:部署 Hello World 应用程序。该sam local start-api命令是其中的一部分步骤 6:(可选)在本地测试应用程序。
用法:
sam local start-api [OPTIONS]
选项:
| 选项 | 描述 |
|---|---|
--host TEXT |
要绑定的本地主机名或 IP 地址(默认值:'127.0.0.1')。 |
-p, --port INTEGER |
要监听的本地端口号(默认值:'3000')。 |
-s, --static-dir TEXT |
位于此目录中的任何静态资产(例如 CSS/JavaScript /HTML)文件均显示在/。 |
-t, --template PATH |
Amazon SAM模板文件。 注意:如果指定此选项,则仅Amazon SAM加载模板及其指向的本地资源。 |
-n, --env-vars PATH |
包含 Lambda 函数环境变量值的 JSON 文件。 |
--parameter-overrides |
可选。一个包含以键值对编码的Amazon CloudFormation参数替代选项可:使用与Amazon CLI —相同的格式,例如,'ParameterKey=KeyPairName, ParameterValueMyKey ParameterKey=InstanceType,ParameterValue=t1.micro'。 |
-d, --debug-port TEXT |
指定后,在调试模式下启动 Lambda 函数容器并在本地主机上公开此端口。 |
--debugger-path TEXT |
将安装到 Lambda 容器中的调试器的主机路径。 |
--debug-args TEXT |
要传递给调试器的其他参数。 |
--warm-containers [EAGER | LAZY] |
可选。指定Amazon SAM CLI 如何管理每个函数的容器。 以下: |
--debug-function |
可选。指定在指定时应用调试选项 |
-v, --docker-volume-basedir TEXT |
Amazon SAM文件所在的基本目录的位置。如果 Docker 在远程计算机上运行,则必须在 Docker 计算机上安装Amazon SAM文件存在的路径,然后修改此值以匹配远程计算机。 |
--docker-network TEXT |
Lambda Docker 容器应连接的现有 Docker 网络的名称或 ID,以及默认的桥接网络。如果未指定此项,Lambda 容器将仅连接到默认的桥接 Docker 网络。 |
--container-env-vars |
可选。在本地调试时,将环境变量传递给图像容器。 |
-l, --log-file TEXT |
要向其发送运行时日志的日志文件。 |
--layer-cache-basedir DIRECTORY |
指定将模板使用的图层下载到的基于位置。 |
--skip-pull-image |
指定CLI是否应跳过下拉最新 Docker 镜像获取 Lambda 运行时的操作。 |
--force-image-build |
指定 CLI 是否应重建用于调用带层的函数的镜像。 |
--invoke-image TEXT |
您要在 Lambda 函数中使用容器映像的 URI。默认情况下,从 Amazon ECR Public 中Amazon SAM拉取容器镜像。使用此选项可: 您可以多次指定该选项。此选项的每个实例都可以采用字符串或键值对。如果您指定字符串,则它是用于应用程序中所有函数的容器映像的 URI。例如, |
--profile TEXT |
您的凭证文件中用于获取Amazon证书的特定配置文件。 |
--region TEXT |
要部署到的Amazon区域。例如,us-east-1。 |
--config-file PATH |
包含要使用的默认参数值的配置文件的路径和文件名。项目目录根目录中的默认值为 “samconfig.toml”。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。 |
--config-env TEXT |
环境名称,用于指定要使用的配置文件中的默认参数值。默认值为 “DISABLED"(默可:有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。 |
--shutdown |
在调用完成后模拟关机事件,以测试扩展对关机行为的处理。 |
--container-host TEXT |
本地仿真 Lambda 容器的主机。默认值为 localhost。如果你想在 macOS 上的 Docker 容器中运行Amazon SAM CLI,你可以指定host.docker.internal。如果要在与Amazon SAM CLI 不同的主机上运行容器,则可以指定远程主机的 IP 地址。 |
--container-host-interface TEXT |
容器端口应绑定到的主机网络接口的 IP 地址。默认值为 127.0.0.1。用于绑定0.0.0.0到所有接口。 |
--debug |
打开调试日志记录以打印Amazon SAM CLI 生成的调试消息并显示时间戳。 |
--help |
显示此消息并退出。 |