本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam local start-la
允许您使用Amazon CLI或 SDK 以编程方式在本地调用 Lambda 函数。此命令启动模拟的本地端点Amazon Lambda。
默认情况下,当您使用此命令时,Amazon SAMCLI 会假定您当前的工作目录是项目的根目录。CAmazon SAM LI 首先尝试查找使用山姆·布莱德命令生成的模板文件,该文件位于.aws-sam子文件夹中,命名为template.yaml或template.yml。接下来,Amazon SAMCLI 尝试在当前工作目录template.yml中找到名为template.yaml或的模板文件。如果您指定该--template选项,Amazon SAMCLI 的默认行为将被覆盖,并将仅加载该Amazon SAM模板及其指向的本地资源。
您可以针对此本地 Lambda 终端节点运行自动测试。当您使用Amazon CLI或 SDK 向此终端节点发送调用时,它将在本地执行请求中指定的 Lambda 函数。
用法:
sam local start-lambda [OPTIONS]
示例:
# SETUP # ------ # Start the local Lambda endpoint by running this command in the directory that contains your Amazon SAM template. sam local start-lambda # USING AWS CLI # ------------- # Then, you can invoke your Lambda function locally using the AWS CLI aws lambda invoke --function-name "HelloWorldFunction" --endpoint-url "http://127.0.0.1:3001" --no-verify-ssl out.txt # USING AWS SDK # ------------- # You can also use the AWS SDK in your automated tests to invoke your functions programatically. # Here is a Python example: # # self.lambda_client = boto3.client('lambda', # endpoint_url="http://127.0.0.1:3001", # use_ssl=False, # verify=False, # config=Config(signature_version=UNSIGNED, # read_timeout=0, # retries={'max_attempts': 0})) # self.lambda_client.invoke(FunctionName="HelloWorldFunction")
选项:
| 选项 | 描述 |
|---|---|
--hook-name TEXT |
用于扩展Amazon SAM CLI 功能的挂钩的名称。 可接受的值: |
--skip-prepare-infra |
如果没有对基础架构进行任何更改,则跳过准备阶段。与--hook-name选项一起使用。 |
--host TEXT |
要绑定的本地主机名或 IP 地址(默认值:'127.0.0.1')。 |
-p, --port INTEGER |
要监听的本地端口号(默认值:'3001')。 |
-t, --template PATH |
Amazon SAM模板文件。 注意:如果指定此选项,则仅Amazon SAM加载模板及其指向的本地资源。此选项与不兼容 |
-n, --env-vars PATH |
包含 Lambda 函数环境变量值的 JSON 文件。 |
--parameter-overrides |
可选。包含编码为键/值对的Amazon CloudFormation参数替代项的字符串。使用与Amazon CLI —for 相同的格式,例如 'ParameterKey=、= ParameterValueMyKey ParameterKey =KeyPairNameInstanceType、ParameterValue =t1.micro'。此选项与不兼容--hook-name。 |
-d, --debug-port TEXT |
指定后,以调试模式启动 Lambda 函数容器,并在本地主机上公开此端口。 |
--debugger-path TEXT |
要安装到 Lambda 容器中的调试器的主机路径。 |
--debug-args TEXT |
要传递给调试器的其他参数。 |
--warm-containers [EAGER | LAZY] |
可选。指定Amazon SAM CLI 如何管理每个函数的容器。 以下两个选项可用: |
--debug-function |
可选。指定 Lambda 函数以在指定时 |
-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 |
指定将模板使用的图层下载到的基准位置。 |
--invoke-image TEXT |
要用于本地函数调用的容器镜像的 URI。默认情况下,从 Amazon ECR Public 中Amazon SAM拉取镜像。使用此选项从其他位置拉取镜像。 例如, |
--skip-pull-image |
指定命令行界面是否应跳过下拉最新 Docker 镜像获取 Lambda 运行时的操作。 |
--force-image-build |
指定 CLI 是否应重建用于调用带图层的函数的映像。 |
--beta-features | --no-beta-features |
允许或拒绝测试版功能。 |
--profile TEXT |
您的凭证文件中获取Amazon证书的特定个人资料。 |
--region TEXT |
要部署到的Amazon区域。例如,us-east-1。 |
--config-file PATH |
包含要使用的默认参数值的配置文件的路径和文件名。默认值为项目目录根目录下的 “samconfig.toml”。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。 |
--config-env TEXT |
在配置文件中指定要使用的默认参数值的环境名称。默认值为 “默认”。有关配置文件的详细信息,请参阅 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 |
显示此消息并退出。 |