0

我创建使用cloudformation模板的opsworks栈,我在我的堆栈需要一个database RDS实例几个应用程序:错误的Opsworks:无法找到RDS实例与ARN

"WordpressApp": { 
     "Type": "AWS::OpsWorks::App", 
     "Properties": { 
     "AppSource" : { 
      "Type" : "git", 
      "Url" : "git://github.com:myproject/wordpress.git", 
      "Revision" : "master" 
     }, 
     "DataSources":[{ 
      "Arn" : { "Ref" : "RDSInstanceARN" }, 
      "DatabaseName" : "application", 
      "Type" : "RdsDbInstance" 
     }], 
     "Description": "website application", 
     "Name" : "app", 
     "Shortname" : "app", 
     "StackId" : {"Ref": "MyStack"}, 
     "Type" : "php" 
     } 
    }, 

这里在RDSInstancARN参数:

"RDSInstanceARN" : { 
    "Description" : "Arn of the RDS instance", 
    "Type" : "String", 
    "Default" : "arn:aws:rds:eu-west-1:454524154879:db:instanceappdb" 
} 

的ARN写得很好。 当我测试模板,我得到这个错误:

unable to find rds instance with ARN 

什么是这个错误的原因是什么?我不明白,arn是正确编写的,它存在于aws帐户中并正在运行。请任何想法吗?谢谢。

回答

0

你有registered your RDS instance with your OpsWorks stack吗?

根据Amazon RDS Service Layer文档部分,用于使用RDS实例与OpsWorks堆栈的过程如下:

  1. 使用Amazon RDS控制台,API,或CLI来创建实例。 一定要记录实例的ID,主用户名,主密码和数据库名称。
  2. 要将Amazon RDS图层添加到您的堆栈,请将Amazon RDS实例注册到堆栈。
  3. 将图层附加到应用程序,该应用程序将Amazon RDS实例的连接信息添加到应用程序的部署属性中。
  4. 使用语言特定的文件或deploy属性中的信息将应用程序连接到Amazon RDS实例。

我认为设置上AWS::OpsWorks::AppDataSources属性对应于#3以上,但#2将需要首先完成。

不幸的是,它看起来像第二步没有官方支持的CloudFormation - 看到我的回答你的其他问题,Create an RDS Opsworks Layer by a Cloudformation template关于该步骤的更多细节/讨论。