本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam 本地 start-lambda
使您能够使用 AWS CLI 或 SDKs 以编程方式在本地调用 Lambda 函数。 此命令启动模拟 AWS Lambda 的本地终端节点。您可以针对此本地 Lambda 终端节点运行自动测试。当您使用 AWS CLI 或开发工具包向此终端节点发送调用时,它会在本地执行在请求中指定的 Lambda 函数。
要在本地测试使用 Lambda 扩展的无服务器应用程序,请将 ENABLE_LAMBDA_EXTENSIONS_PREVIEW
环境变量设置为“1”。例如:
ENABLE_LAMBDA_EXTENSIONS_PREVIEW=1 sam local start-lambda
有关 Lambda 扩展的更多信息,请参阅 中的AWS Lambda使用 扩展。AWS Lambda Developer Guide
用量:
sam local start-lambda [OPTIONS]
示例:
# SETUP # ------ # Start the local Lambda endpoint by running this command in the directory that contains your AWS 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 |
模板文件 [default: template.[yaml|yml]]。AWS SAM |
-n, --env-vars PATH |
包含 Lambda 函数的环境变量值的 JSON 文件。 |
--parameter-overrides |
可选。包含编码为键值对的 AWS CloudFormation 参数的字符串覆盖。使用与 AWS CLI 相同的格式 — 例如,'ParameterKey=KeyPairName, ParameterValue=MyKey ParameterKey=InstanceType,ParameterValue=t1.micro'。 |
-d, --debug-port TEXT |
如果指定,则以调试模式启动 Lambda 函数容器,并在本地主机上公开此端口。 |
--debugger-path TEXT |
要挂载到 Lambda 容器中的调试程序的主机路径。 |
--debug-args TEXT |
要传递到调试程序的其他参数。 |
--warm-containers [EAGER | LAZY] |
可选。指定 AWS SAM CLI 如何管理每个函数的容器。 提供两个选项: |
--debug-function |
可选。指定在指定 Lambda 时要将调试选项应用到的 |
-v, --docker-volume-basedir TEXT |
文件所在基目录的位置。AWS SAM如果 Docker 正在远程计算机上运行,则必须挂载 Docker 计算机上 AWS 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 是否应跳过为 Lambda 运行时下拉最新的 Docker 映像。 |
--force-image-build |
指定 CLI 是否应重新生成用于通过层调用函数的图像。 |
--profile TEXT |
获取 AWS 凭证的凭证文件中的特定配置文件。 |
--region TEXT |
要部署到的 AWS 区域。例如,us-east-1。 |
--config-file PATH |
包含要使用的默认参数值的配置文件的路径和文件名。默认值为项目根目录中的“samconfig.toml”。有关配置文件的详细信息,请参阅 AWS SAM CLI 配置文件。 |
--config-env TEXT |
配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 AWS SAM CLI 配置文件。 |
--debug |
打开调试日志记录以输出由 AWS SAM CLI 生成的调试消息和显示时间戳。 |
--help |
显示此消息并退出。 |