在本地调用 函数 - AWS Serverless Application Model
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在本地调用 函数

您可以使用 sam 本地调用 命令并提供函数的逻辑 ID 和事件文件,以便在本地调用您的函数。或者,sam local invoke 也接受 stdin 作为事件。

注意

本节中描述的 sam local invoke 命令对应于 AWS CLI 命令 aws lambda invoke。 您可以使用此命令的任一版本来调用已上传到 AWS 云的 Lambda 函数。

您必须在包含要调用的函数的项目目录中执行 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

该动画显示使用 Microsoft Visual Studio 代码在本地调用 Lambda 函数:

环境变量文件

您可以将 --env-vars 参数与 invokestart-api 命令结合使用。您可以执行此操作以提供包含值的 JSON 文件,以覆盖已在函数模板中定义的环境变量。您可以按如下所示构造文件的结构:

{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket" }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }

或者,您的环境文件也可以包含一个 Parameters 条目,其中包含所有函数的环境变量。请注意,您不能将该格式与上述示例混合。

{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket", "STAGE": "dev" } }

将环境变量保存在名为 env.json 的文件中。 以下命令使用此文件覆盖包含的环境变量:

sam local invoke --env-vars env.json

Layers

如果您的应用程序包含层,请参阅处理层,以了解有关如何在本地主机上调试层问题的更多信息。