微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CloudFormation:用于创建数据库,表,用户或加载架构的模板RDS Mysql

使用CloudFormation,我试图弄清楚一些用例.

第一种情况是拥有现有的AWS RDS MySQL服务器,如何通过CloudFormation模板创建数据库,表和用户帐户.

在查看了Cloudformation文档之后,我想可能会有一个
AWS :: RDS :: DBInstance属性,允许我执行此操作;但是,虽然我找不到如何指定允许的数据库主机源(或者我可能误读了它).

AWS – 属性 – RDS数据库实例

然后,从AWS查看Cloudformation RDS模板,我看到一个突出的fn :: join命令.我的第一个案例是用fn :: join完成的吗?

"UserData": { "Fn::Base64": { "Fn::Join": ["",[....

接下来,在第二种情况下,我也很难找到如何使用现有的RDS MysqL服务器,从MysqL MysqLdump加载一个方案.

我已经查看了上面链接中的文档以获得答案,但不太确定.我注意到AWS模板主要允许您创建资源.

最后,为了解决上述两种情况,我一直在阅读它可以或应该(?)使用两种工具方法,通过使用AWS CloudFormation模板和调用Chef来完成.

思考?

最佳答案
简短的回答是:您现在不能在创建实例时自动运行SQL查询(将来,谁知道……).

我会用以下方法解决这个经典问题:

>使用EC2运行您需要的MysqL代码(不确定是否需要在EC2中放置“DependsOn”子句,因为您必须使用GetAtt引用RDS端点,这可能会隐藏DependsOn子句).只要您以某种方式传递RDS端点,就可以将其放在用户数据或任何所需的脚本中.当然,您需要在EC2上安装MysqL客户端软件包.

正如您所写,CloudFormation允许您创建AWS资源,但这些资源的人口由您决定.再一次,MysqL客户端将完成这一操作(因为MysqL转储只不过是文件中的sql代码,与初始要求相同).

使用Chef或Puppet不会单独解决您的问题,因为两者都需要在EC2上安装代理,您无法在RDS服务器中运行代理.因此,您可以使用Chef或Puppet代理来使用EC2,这将代替启动MysqL脚本,但这不会比以前的解决方案提供更多

原文地址:https://www.jb51.cc/mysql/433956.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐