本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam local start-api
本页提供 Amazon Serverless Application Model 命令行界面的参考信息 (Amazon SAM CLI) sam local start-api 子命令。
-
有关简介 Amazon SAM CLI,请参阅 那是什么 Amazon SAMCLI?
-
有关使用方法的文档 Amazon SAM CLI
sam local start-api子命令,请参阅使用 sam local start-api 进行测试简介。
sam local start-api子命令在本地运行您的 Amazon Lambda 函数,以便通过本地 HTTP 服务器主机进行测试。
使用量
$sam local start-api<options>
选项
--add-hostLIST-
将主机名到 IP 地址的映射传递到 Docker 容器的主机文件。此参数可以传递多次。
示例:
--add-hostexample.com:127.0.0.1 --beta-features | --no-beta-features-
允许或拒绝测试版功能。
--config-envTEXT-
在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。
--config-filePATH-
包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为“samconfig.toml”。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。
--container-env-vars-
可选。在本地调试时,将环境变量传递到映像容器。
--container-hostTEXT-
本地模拟的 Lambda 容器的主机。默认值为
localhost。如果你想跑 Amazon SAM CLI 在 macOS 上的 Docker 容器中,你可以指定。host.docker.internal如果你想在与之不同的主机上运行容器 Amazon SAM CLI,您可以指定远程主机的 IP 地址。 --container-host-interfaceTEXT-
应与容器端口绑定的主机网络接口的 IP 地址。默认值为
127.0.0.1。使用0.0.0.0可绑定到所有接口。 --debug-
开启调试日志记录以打印生成的调试消息 Amazon SAM CLI 并显示时间戳。
--debug-argsTEXT-
要传递给调试程序的其他参数。
--debug-function-
可选。指定在指定
--warm-containers时应用调试选项的 Lambda 函数。此参数适用于--debug-port、--debugger-path和--debug-args。 --debug-port, -dTEXT-
指定后,在调试模式下启动 Lambda 函数容器,并在本地主机上开放此端口。
--debugger-pathTEXT-
将挂载到 Lambda 容器中的调试器的主机路径。
--docker-networkTEXT-
Lambda Docker 容器应连接到的现有 Docker 网络的名称或 ID,以及默认桥接网络。如果未指定此项,Lambda 容器将仅连接到默认的桥接 Docker 网络。
--docker-volume-basedir, -vTEXT-
Amazon SAM 文件所在的基本目录的位置。如果 Docker 在远程计算机上运行,则必须在 Docker 计算机上挂载 Amazon SAM 文件所在的路径,并修改此值以匹配远程计算机。
--env-vars, -nPATH-
包含 Lambda 函数环境变量值的 JSON 文件。
--force-image-build-
指定是否 Amazon SAM CLI 应该重建用于调用带图层的函数的图像。
--help-
显示此消息并退出。
--hook-nameTEXT-
用于扩展的挂钩的名称 Amazon SAM CLI 功能。
可接受的值:
terraform。 --hostTEXT-
要绑定的本地主机名或 IP 地址(默认值:'127.0.0.1')。
--invoke-imageTEXT-
要用于 Lambda 函数的容器映像的 URI。默认情况下,从 Amazon ECR Public 中 Amazon SAM 提取容器镜像。使用此选项可从其他位置提取映像。
您可以多次指定该选项。此选项的每个实例都可以采用字符串或键值对。如果指定字符串,则字符串就是要用于应用程序中所有函数的容器映像 URI。例如,
sam local start-api --invoke-image public.ecr.aws/sam/emu-python3.8。如果指定键值对,则键是资源名称,值是要用于该资源的容器映像 URI。例如sam local start-api --invoke-image public.ecr.aws/sam/emu-python3.8 --invoke-image Function1=amazon/aws-sam-cli-emulation-image-python3.8。如果使用键值对,您可以为不同的资源指定不同的容器映像。 --layer-cache-basedirDIRECTORY-
指定模板使用的层下载到的基目录的位置。
--log-file, -lTEXT-
运行时日志将被发送到的日志文件。
--no-memory-limit-
即使在 Amazon SAM 模板中配置了内存,也可以在本地调用期间移除容器中的内存限制。
--parameter-overrides-
包含编码为键值对的 Amazon CloudFormation 参数覆盖的字符串。使用与 Amazon Command Line Interface (Amazon CLI) 相同的格式。的 Amazon SAM CLI format 是显式的键和值关键字,每个替换都用空格分隔。以下是两个示例:
--parameter-overrides ParameterKey=hello,ParameterValue=world--parameter-overrides ParameterKey=hello,ParameterValue=world ParameterKey=example1,ParameterValue=example2 ParameterKey=apple,ParameterValue=banana
--port, -pINTEGER-
要监听的本地端口号(默认值:'3000')。
--profileTEXT-
您的凭证文件中用于获取 Amazon 凭证的特定个人资料。
--regionTEXT-
要部署到的 Amazon 区域。例如,us-east-1。
--save-params-
将您在命令行中提供的参数保存到 Amazon SAM 配置文件中。
--shutdown-
在调用完成后模拟关闭事件,以测试关闭行为的扩展处理。
--skip-prepare-infra-
如果没有进行任何基础架构更改,则跳过准备阶段。使用
--hook-name选项。 --skip-pull-image-
指定 CLI 是否应跳过下拉最新 Docker 映像获取 Lambda 运行时的操作。
--ssl-cert-filePATH-
SSL 证书文件的路径(默认值:无)。使用此选项时,还必须使用
--ssl-key-file选项。 --ssl-key-filePATH-
SSL 密钥文件的路径(默认值:无)。使用此选项时,还必须使用
--ssl-cert-file选项。 --static-dir, -sTEXT-
位于此目录中的任何静态资产(例如CSS/JavaScript/HTML)文件都显示在
/。 --template, -tPATH-
Amazon SAM 模板文件。
注意
如果指定此选项,则仅 Amazon SAM 加载模板及其指向的本地资源。
--terraform-plan-file-
通往本地的相对或绝对路径 Terraform 使用时的计划文件 Amazon SAM CLI 替换为 Terraform Cloud。 此选项要求
--hook-name将其设置为terraform。 --warm-containers[EAGER | LAZY]-
可选。指定如何 Amazon SAM CLI 管理每个函数的容器。
有两个选项:
EAGER:在启动时加载所有函数的容器,且在两次调用之间保持不变。LAZY:仅在首次调用每个函数时加载容器。这些容器会持续存在,以便进行其他调用。
示例
以下示例启动本地服务器,允许您通过 API 测试应用程序。要使此命令起作用,必须安装应用程序且 Docker 必须正在运行。
$sam local start-api --port 3000