本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在本地调用 Lambda 函数
你可以调用你的Amazon Lambda使用在本地运行sam 本地调用 Amazon SAMCLI 命令并提供函数的逻辑 ID 和事件文件。或者,sam local invoke也接受stdin作为一项活动。有关事件的更多信息,请参阅Event在里面Amazon Lambda开发人员指南. 有关来自不同的事件消息格式的信息Amazon服务,请参阅使用Amazon Lambda将与其他服务一起使用在里面Amazon Lambda开发人员指南.
这些区域有:sam local invoke命令对应于Amazon Command Line Interface(Amazon CLI) 命令aws lambda invoke
您必须运行sam local invoke命令位于包含要调用的函数的项目目录中。
示例:
# Invoking function with event file $ sam local invoke "Ratings" -e event.json # Invoking function with event via stdin $ echo '{"message": "Hey, are you there?" }' | sam local invoke --event - "Ratings" # For more options $ sam local invoke --help
环境变量文件
要在本地声明覆盖模板中定义的值的环境变量,请执行以下操作:
-
创建一个 JSON 文件,其中包含要重写的环境变量。
-
使用
--env-vars参数用于覆盖模板中定义的值。
声明环境变量
要声明适用于所有资源的全局环境变量,请指定Parameters对象如下所示:
{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket", "STAGE": "dev" } }
要为每个资源声明不同的环境变量,请为每个资源指定对象,如下所示:
{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket", }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }
在为每种资源指定对象时,可以使用以下标识符,这些标识符按从高到低的优先级顺序列出:
-
logical_id -
function_id -
function_name -
完整路径标识符
您可以使用上述两种方法在单个文件中一起声明环境变量。这样做时,您为特定资源提供的环境变量优先于全局环境变量。
将您的环境变量保存在 JSON 文件中,例如env.json.
重写环境变量值
要使用 JSON 文件中定义的环境变量替换环境变量,请使用--env-vars与之argumentinvoke要么start-api命令。例如:
sam local invoke --env-vars env.json
层
如果您的应用程序包含层,有关如何调试本地主机上层问题的信息,请参阅使用图层.