部署堆栈时在 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- 使用无服务器框架创建,您需要两件事:

  1. 使用您的种子数据调用 AWS DynamoDB SDK Client's PutItemBatchWriteItem 命令的脚本*。这就是 serverless-dynamodb-seed 插件的作用。您可以自己编写 node.js 脚本,不需要花哨的插件。
  2. 一种在堆栈创建后触发脚本的方法

哪个触发选项“最好”取决于您的用例。有几个选项,这里有两个:

  1. 运行 第一次部署后从终端手动设置种子脚本
  2. 使用 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