离线构建无服务器应用程序的最佳方式是什么?
What is the best way to build serverless app offline?
我正在尝试使用 aws (Nodejs) 和 dynamodb 创建 REST API。大多数时候,我无法访问 AWS,我需要让所有内容 运行 离线进行测试,并且只有在我完成大量工作后才进行部署。是否有任何指南或良好做法可以帮助我进行开发?
提前致谢!
您可以在您的本地主机上 运行 dynamodb 的离线版本。最简单的方法是将它放在 docker 的容器中。然后你根本不需要管理它,它可以在每个安装了 docker 的环境中工作。
这就是我们在 package.json 无服务器应用程序脚本中所拥有的
"start": "sls offline start",
"start-local": "npm run force-dynamo sls offline start --stage=localhost",
"force-dynamo": "npm run stop-dynamo && npm run start-dynamo",
"start-dynamo": "docker run -d -p 8000:8000 dwmkerr/dynamodb -sharedDb",
"stop-dynamo": "docker stop $(docker ps -a -q --filter ancestor=dwmkerr/dynamodb --format=\"{{.ID}}\")",
但是,如果您不太关心 CI/CD 管道或在多个设备上的可重用性 -> 您可以安装 dynamoDB,运行 它并根据配置只针对您的 offline/online dynamodb.
AWS localstack 是本地开发无服务器应用程序的不错选择
对 DynamoDB 部分使用 Sam Local for the lambda part and DynamoDB Local。我推荐 运行 DynamoDB local 使用像 libik 提到的 docker 容器。
我正在尝试使用 aws (Nodejs) 和 dynamodb 创建 REST API。大多数时候,我无法访问 AWS,我需要让所有内容 运行 离线进行测试,并且只有在我完成大量工作后才进行部署。是否有任何指南或良好做法可以帮助我进行开发?
提前致谢!
您可以在您的本地主机上 运行 dynamodb 的离线版本。最简单的方法是将它放在 docker 的容器中。然后你根本不需要管理它,它可以在每个安装了 docker 的环境中工作。
这就是我们在 package.json 无服务器应用程序脚本中所拥有的
"start": "sls offline start",
"start-local": "npm run force-dynamo sls offline start --stage=localhost",
"force-dynamo": "npm run stop-dynamo && npm run start-dynamo",
"start-dynamo": "docker run -d -p 8000:8000 dwmkerr/dynamodb -sharedDb",
"stop-dynamo": "docker stop $(docker ps -a -q --filter ancestor=dwmkerr/dynamodb --format=\"{{.ID}}\")",
但是,如果您不太关心 CI/CD 管道或在多个设备上的可重用性 -> 您可以安装 dynamoDB,运行 它并根据配置只针对您的 offline/online dynamodb.
AWS localstack 是本地开发无服务器应用程序的不错选择
对 DynamoDB 部分使用 Sam Local for the lambda part and DynamoDB Local。我推荐 运行 DynamoDB local 使用像 libik 提到的 docker 容器。