SAM 无需重建即可运行

问题描述 投票:0回答:3

我已经开始使用 AWS SAM for python。在本地测试我的功能时,我运行:

sam build --use-container
sam local start-api 
You can now browse to the above endpoints to invoke your functions. You do **not** need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically.
sam local invoke ...

然后,如果我对代码进行了更改,当我再次调用我的函数时,它不会在没有重建的情况下反映出来。我在这里缺少什么技巧吗?这个提示我不是很清楚

python amazon-web-services aws-lambda serverless
3个回答
0
投票

您必须直接在 .aws-sam/build 文件夹下更新您的文件才能在不重建的情况下查看您的更改。


0
投票

根据https://github.com/aws/aws-sam-cli/issues/920 & https://github.com/aws/aws-sam-cli/issues/901,你应该打开两个控制台/终端。一个你运行

sam local start-api
而不管它的地方。另一个你重复运行
sam build
的地方(每当你需要更新时)。

如果你觉得这个 > 有点烦人,


0
投票

如果你全局安装了 npm 和 nodemon,你可以在你的应用程序根目录中创建一个 MakeFile 并添加以下命令。然后在两个单独的终端中,运行

make build-sam
make start-sam
。这将运行 build 命令并观察应用程序的更改,并在每次保存更改时运行 sam build 命令(您也可以在没有 Makefile 的情况下直接在终端中运行命令)。然后 api 将自动在第二个终端中获取更改(请注意,我在 python 中工作,但你可以将它用于任何语言,只需用你的语言更改 nodemon 命令)

build-sam:
    nodemon --watch './**/*.py' --signal SIGTERM --exec 'sam' build -e "py"
start-sam:
    sam local start-api
© www.soinside.com 2019 - 2024. All rights reserved.