部署堆栈时在 DynamoDB table 中添加默认行的最佳方式
Best way to add default rows in DynamoDB table when the stack is deployed
第一次部署堆栈时,我想将一些应用程序默认添加到每个微服务的 DynamoDB table。
我正在使用无服务器框架。最好的方法是什么?
我遇到了这个 https://www.npmjs.com/package/serverless-dynamodb-seed,但由于可能会覆盖 table 中的数据,我想使用更安全的选项。
要播种 DynamoDB 数据 post- 使用无服务器框架创建,您需要两件事:
- 使用您的种子数据调用 AWS DynamoDB SDK Client's
PutItem
或 BatchWriteItem
命令的脚本*。这就是 serverless-dynamodb-seed
插件的作用。您可以自己编写 node.js 脚本,不需要花哨的插件。
- 一种在堆栈创建后触发脚本的方法
哪个触发选项“最好”取决于您的用例。有几个选项,这里有两个:
- 运行 第一次部署后从终端手动设置种子脚本
- 使用 serverless-scriptable-plugin,“在任何构建阶段支持 运行ning node.js 脚本”,到 运行创建堆栈后自动执行脚本(但不更新后)
# https://github.com/weixu365/serverless-scriptable-plugin
plugins:
- serverless-scriptable-plugin
custom:
scriptable:
hooks:
after:aws:deploy:deploy:createStack: path/to/seed-script.js
* PutItem writes a single record, optionally with a condition to prevent overwriting. BatchWriteItem 一次放置多个项目,但没有条件检查。
serverless-dynamodb-seed
插件警告可能的覆盖,因为它在后台调用 BatchWriteItem
。
第一次部署堆栈时,我想将一些应用程序默认添加到每个微服务的 DynamoDB table。
我正在使用无服务器框架。最好的方法是什么?
我遇到了这个 https://www.npmjs.com/package/serverless-dynamodb-seed,但由于可能会覆盖 table 中的数据,我想使用更安全的选项。
要播种 DynamoDB 数据 post- 使用无服务器框架创建,您需要两件事:
- 使用您的种子数据调用 AWS DynamoDB SDK Client's
PutItem
或BatchWriteItem
命令的脚本*。这就是serverless-dynamodb-seed
插件的作用。您可以自己编写 node.js 脚本,不需要花哨的插件。 - 一种在堆栈创建后触发脚本的方法
哪个触发选项“最好”取决于您的用例。有几个选项,这里有两个:
- 运行 第一次部署后从终端手动设置种子脚本
- 使用 serverless-scriptable-plugin,“在任何构建阶段支持 运行ning node.js 脚本”,到 运行创建堆栈后自动执行脚本(但不更新后)
# https://github.com/weixu365/serverless-scriptable-plugin
plugins:
- serverless-scriptable-plugin
custom:
scriptable:
hooks:
after:aws:deploy:deploy:createStack: path/to/seed-script.js
* PutItem writes a single record, optionally with a condition to prevent overwriting. BatchWriteItem 一次放置多个项目,但没有条件检查。
serverless-dynamodb-seed
插件警告可能的覆盖,因为它在后台调用 BatchWriteItem
。