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

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

在本地调用函数

您可以在本地调用函数,方法是使用SAM 本地调用命令并提供其函数逻辑 ID 和事件文件。或者,sam local invoke同时也接受stdin作为事件。有关事件的更多信息,请参阅 。Event中的Amazon Lambda开发人员指南。有关来自不同的事件消息格式的详细信息Amazon服务,请参阅使用其他服务中的Amazon Lambda开发人员指南

注意

这些区域有:sam local invoke命令对应于Amazon CLI命令 aws lambda invoke。您可以使用此命令的任一版本来调用已上传到Amazon云。

您必须执行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

环境变量文件

您可以使用--env-vars参数,其中包含invoke或者start-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

如果您的应用程序包含图层,请参阅使用图层,了解有关如何调试本地主机上的图层问题的详细信息。