通过 Cloudformation 模板创建 RDS Opsworks 层

Posted

技术标签:

【中文标题】通过 Cloudformation 模板创建 RDS Opsworks 层【英文标题】:Create an RDS Opsworks Layer by a Cloudformation template 【发布时间】:2017-05-12 13:49:36 【问题描述】:

我正在制作一个 CloudFormation 模板,用于创建 opsworks 堆栈、层和一些应用程序。在我的层中,我有 opsworks 层和 RDS 层。在AWS文档中,只有如何创建Opsworks::Layer,但我不知道如何制作Amazon RDS服务层:


  "Type": "AWS::OpsWorks::Layer",
  "Properties": 
    "Attributes" :  String:String ,
    "AutoAssignElasticIps" : Boolean,
    "AutoAssignPublicIps" : Boolean,
    "CustomInstanceProfileArn" : String,
    "CustomJson" : JSON object,
    "CustomRecipes" : Recipes,
    "CustomSecurityGroupIds" :  [ String, ... ],
    "EnableAutoHealing" : Boolean,
    "InstallUpdatesOnBoot" : Boolean,
    "LifecycleEventConfiguration" : LifeCycleEventConfiguration,
    "LoadBasedAutoScaling" : LoadBasedAutoScaling,
    "Name" : String,
    "Packages" : [ String, ... ],
    "Shortname" : String,
    "StackId" : String,
    "Type" : String,
    "VolumeConfigurations" : [ VolumeConfiguration, ... ]
  

我的目标是通过 cloudformation 自动创建我的 opsworks 资源。 知道怎么做吗? 谢谢

【问题讨论】:

【参考方案1】:

了解有关 cfn-init 的更多信息是我最好的选择。希望this能帮到你

【讨论】:

【参考方案2】:

很遗憾,根据Richard@AWS as of Dec 9 2015 的说法,将 RDS 实例注册为 OpsWorks 服务层的RegisterRdsDbInstance API 并未通过官方 CloudFormation 资源实现,也没有计划这样做。

您可以联系 AWS 请求将其添加到他们的路线图中,但与此同时,您可以尝试以下一些替代方案:

    从 CloudFormation 模板创建您的 RDS 实例和 OpsWorks 堆栈的其余部分,然后使用 AWS 控制台、AWS CLI 或任何其他平台的 AWS 开发工具包手动将 RDS 服务层附加到 OpsWorks 堆栈。 使用在 EC2 实例上运行的自我管理数据库实例层,使用 AWS::OpsWorks::Layerdb-masterType,如 AWS OpsWorks Template Snippet 中所述。 创建一个执行 RegisterRdsDbInstance API 调用的 Custom CloudFormation Resource,例如,使用 Lambda 函数和 NodeJS AWS 开发工具包。

【讨论】:

我尝试使用自定义资源,但收到错误无效服务令牌。知道为什么我会得到那个吗?一直被这个问题困扰一个月了,找不到任何帮助

以上是关于通过 Cloudformation 模板创建 RDS Opsworks 层的主要内容,如果未能解决你的问题,请参考以下文章

无法通过自定义 cloudformation 资源调用 lambda 函数

无法通过 cloudformation 创建具有自动缩放功能的 AWS EMR

Cloudformation Cloudwatch 输入模板格式

通过 cloudformation 为 fargate 启动类型任务创建 cloudwatch 事件规则的“目标”

AWS CloudFormation入门实践

无法使用 CloudFormation 模板通过 SSH 连接到 EC2 实例