我们正在开始使用DynamoDB,并且需要用于dev/staging/production的单独环境。我们无法找到一种自然的方式来做到这一点---我们是否只创建单独的AWS账户?或者我们使用同一个帐户,但是在我们的表格中添加了愚蠢的前缀(“dev-products”,“staging-products”,“prod-products”)?在DynamoDB上管理dev/staging/production?
回答
使用任何亚马逊产品管理此标准方法是创建单独的帐户,然后使用合并结算,以便它不会使结算方面复杂化。我喜欢这个东西的是,你不会冒险错误地运行错误的命令来破坏生产代码。显然,如果你登录了错误的实例,它并没有帮助你,但它仍然有一点帮助。
多个帐户的其他用途可能是管理权限和更好的测试。分开帐户有助于测试,因为您可以将生产帐户重新生成100%,并在需要测试新功能时将其打开和关闭。我曾与亚马逊高级支持人员讨论过这个问题,他们表示这似乎是大公司的标准做法。一些大公司有很多帐户。在我的工作中,我们只有3个,我发现它每天都更有用。
我没有看到任何可以为每个实例(dev/staging/prod)创建的表格“上方”(例如关系数据库,其中所有表格都位于一个数据库下)。
在我正在处理的应用程序中,我们使用表的前缀。
不要忘记亚马逊的访问控制大大增强了IAM。它在很大程度上为您提供独立帐户的相同优势。 (如果您想要获得不同级别的付费支持,单独帐户仍然是一种选择。)
命名明智,我的首选项是name.environment.whatever。
亚马逊现在提供一个服务器,您可以在本地运行。你可以下载它here。
我不明白为什么没有AWS解决方案来处理数据库版本,如DynamoDB中的生产和测试!?拥有多个AWS账户是一件麻烦事。
它也成为一个很大的问题,如果你使用C#类属性[DynamoDBTable("Users")]
,并获取数据得到的物品前缀表名DynamoDBContext.Load<User>(userId);
在属性运行时我结束了在值不能改变这个解决方法使用条件编译符号并设置可以用作类属性值的常量。
public static class DynamoDbTablesConfiguration
{
#if Debug
public const string UserTable = "Users_Dev";
#endif
#if Release
public const string UserTable = "Users_Production";
#endif
}
[DynamoDBTable(DynamoDbTablesConfiguration.UserTable)]
public class User
{
}
确保您设置的项目>属性>生成>“conditonal编译符号”右击“conditonal编译符号”的价值。
不是一个完美的解决方案,但如果我不想创建另一个AWS账户,我不会在这里看到任何其他选项。
你可以看看这个链接:https://aws.amazon.com/blogs/developer/configuring-dynamodb-tables-for-development-and-production/类似的,但它是什么aws正式推荐的方式 – 2017-10-23 16:38:20
谢谢,但我正在研究的项目已经停产。然后,我发现了任何备份发电机数据库以保存数据的简单方法。不要以为我将来会用DynamoDb做任何事情,也不会推荐给其他人。 – 2017-10-24 08:08:47
- 1. dynamoDB事务管理
- 2. 如何在django管理页面的dynamodb上显示数据?
- 3. 在DynamoDB上管理dev/staging/production - 冲突的方法。是否将DynamoDB映射器用于一种方法?
- 4. 上DynamoDb
- 5. 如何在读取到Amazon DynamoDB表时管理读取容量?
- 6. 在CMS上并发管理
- 7. 在管理端口上公开Togglz管理控制台启动管理端口
- 8. 管理上休息
- 9. 在奏鸣曲管理器上创建批量操作管理
- 10. 如何在Xcode的窗口菜单上管理管理器上的设备?
- 11. Amazon S3 + Lambda + DynamoDB网站托管
- 12. 在多个“域名”上管理Cookie
- 13. 在大型网站上管理CSS
- 14. XNA - 在非管理员PC上安装
- 15. 在iPhone上管理数据库
- 16. 在FileUpload控件上管理编辑
- 17. 在Amazon S3上管理文件
- 18. Perl:在Windows上管理路径编码
- 19. 在成员函数上管理模板
- 20. 在GPS管理器上weired android错误
- 21. 在Zend Framework中管理图像上传
- 22. 在Excel上禁用管理按钮
- 23. 在Jython上使用Django管理manage.py runserver
- 24. 在ruby上管理setter和getters方法
- 25. FormatTime没有在DateTime上管理
- 26. 在Django上的图像管理
- 27. 如何在GitHub上管理储存库
- 28. __init__ vs __enter__在上下文管理器
- 29. 在Heroku上管理数据库索引
- 30. 在Drupal上实现组和管理员
这不再是“标准方式”。多个AWS账户的开销太大。使用标签和命名约定来分隔舞台和制作。 – 2014-01-03 20:06:08