Opsworks 错误:无法使用 ARN 找到 rds 实例

Error by Opsworks : unable to find rds instance with ARN

我正在使用 cloudformation 模板创建一个 opsworks 堆栈,我的堆栈中几乎没有需要 database RDS 实例的应用程序:

"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账户和运行。有什么想法吗?谢谢。

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. 使用特定语言的文件或部署属性中的信息将应用程序连接到 Amazon RDS 实例。

我认为设置 DataSources property on an AWS::OpsWorks::App 对应于上面的 #3,但需要先完成 #2。

不幸的是,CloudFormation 似乎并未正式支持第 2 步 - 请参阅我对您的其他问题的回答,Create an RDS Opsworks Layer by a Cloudformation template 以了解有关该步骤的更多 details/discussion。