本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam 本地 start-lambda
使您能够通过使用Amazon CLI或开发工具包。此命令启动模拟的本地终端节点Amazon Lambda.
默认情况下,当你使用此命令时,Amazon SAMCLI 假设你当前的工作目录是项目的根目录。这些区域有:Amazon SAMCLI 首先尝试查找使用sam build命令,位于.aws-sam子文件夹,并命名template.yaml要么template.yml. 下一步:Amazon SAMCLI 尝试找到名为的模板文件template.yaml要么template.yml在当前工作目录中。如果你指定--template选项,Amazon SAMCLI 的默认行为被覆盖,并且只会加载该行为Amazon SAM模板以及它指向的本地资源。
您可以针对此本地 Lambda 终端节点运行自动测试。当您使用向此终端节点发送调用时Amazon CLI或者开发工具包,它会在本地执行请求中指定的 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")
选项:
| 选项 | 描述 |
|---|---|
--host TEXT |
要绑定到的本地主机名或 IP 地址(默认值:'127.0.0.1')。 |
-p, --port INTEGER |
要监听的本地端口号(默认值:'3001')。 |
-t, --template PATH |
这些区域有:Amazon SAM模板文件。 注意:如果指定此选项,Amazon SAM仅加载模板及其指向的本地资源。 |
-n, --env-vars PATH |
JSON 文件,该文件包含 Lambda 函数环境变量的值。 |
--parameter-overrides |
可选。包含的字符串Amazon CloudFormation参数覆盖编码为键值对的。使用的格式与Amazon CLI— 例如,“参数键 = 密钥对名称,参数值 = myKey 参数键 = 实例类型,参数值 =T1.micro”。 |
-d, --debug-port TEXT |
指定后,以调试模式启动 Lambda 函数容器,然后在本地主机上公开此端口。 |
--debugger-path TEXT |
要挂载到 Lambda 容器中的调试器的主机路径。 |
--debug-args TEXT |
传递到调试器的其他参数。 |
--warm-containers [EAGER | LAZY] |
可选。指定如何Amazon SAMCLI 为每个函数管理容器。 有两个选项可供选择: |
--debug-function |
可选。指定要将调试选项应用于何时的 Lambda 函数 |
-v, --docker-volume-basedir TEXT |
基目录的位置Amazon SAM文件存在。如果 Docker 在远程计算机上运行,则必须将路径挂载到Amazon SAM文件存在于 Docker 计算机上,然后修改此值以匹配远程计算机。 |
--docker-network TEXT |
Lambda Docker 容器应连接到的现有 Docker 网络的名称或 ID,以及默认桥接网络。如果指定此项,Lambda 容器将仅连接到默认桥接 Docker 网络。 |
--container-env-vars |
可选。在本地调试时将环境变量传递给映像容器。 |
-l, --log-file TEXT |
要向其发送运行时日志的日志文件。 |
--layer-cache-basedir DIRECTORY |
指定您的模板使用的图层下载到的 base ir 位置。 |
--invoke-image TEXT |
要用于本地函数调用的容器镜像的 URI。默认情况下,Amazon SAM从 Amazon ECR Public 中提取容器镜像。使用此选项可以从另一个位置拉出图像。 例如: |
--skip-pull-image |
指定 CLI 是否应跳过下拉最新 Docker 镜像获取 Lambda 运行时的操作。 |
--force-image-build |
指定 CLI 是否应重建用于调用带图层的函数的映像。 |
--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。如果你想跑Amazon SAM在 macOS 上 Docker 容器中的 CLI,你可以指定host.docker.internal. 如果你想在不同的主机上运行容器Amazon SAMCLI,您可以指定远程主机的 IP 地址。 |
--container-host-interface TEXT |
容器端口应绑定到的主机网络接口的 IP 地址。默认值为 127.0.0.1。使用0.0.0.0绑定到所有接口。 |
--debug |
打开调试日志记录以打印由Amazon SAMCLI 并显示时间戳。 |
--help |
显示此消息并退出。 |