" Rails App Server"的类型是什么?在云形成?

时间:2016-04-27 08:31:25

标签: ruby-on-rails amazon-web-services amazon-cloudformation aws-opsworks

我正在使用云形成创建AWS OpsWorks堆栈。

文档说要设置" AWS :: OpsWorks :: Layer"财产"类型"图层类型的值。

来自AWS::OpsWorks::Layer

  

类型   图层类型。除自定义类型外,堆栈不能包含多个相同类型的图层。您可以拥有任意数量的自定义类型。有关更多信息,请参阅AWS OpsWorks API Reference中的CreateLayer。

     

重要   如果更新需要替换图层的属性,则必须指定新类型,除非您具有自定义类型。您可以拥有任意数量的自定义类型。

     

必填:是

     

类型:字符串

但是,这并没有列出任何名称。

在教程中我看到:

MySQL: "db-master"
PHP App Server: "php-app"

是否有完整的清单?

用于配置它们的属性列表?

1 个答案:

答案 0 :(得分:1)

我找到了答案,我建议这对任何类型的OpsWorks堆栈都是一个很好的解决方案:

首先在OpsWorks中创建所需的堆栈类型。设置它,完全按照您的需要部署您的应用程序,然后使用AWS CLI工具以JSON格式描述堆栈,图层,实例和应用程序。

例如:

$ aws opsworks --region us-east-1 describe-stacks
$ aws opsworks --region us-east-1 describe-layers --stack-id <stack-id>
$ aws opsworks --region us-east-1 describe-instances --stack-id <stack-id>
$ aws opsworks --region us-east-1 describe-apps --stack-id <stack-id>

值将在JSON中,您可以将其用作您自己的Cloudformation OpsWorks模板的基础。

特别是关于Rails的问题,这是我的rails应用层的样子:

"RailsLayer": {
  "Type": "AWS::OpsWorks::Layer",
  "DependsOn": "App",
  "Properties": {
    "StackId": {"Ref": "Stack"},
    "Type": "rails-app",
    "Name": "Rails App Server", 
    "Shortname": "rails-app", 
    "Packages": [
        "imagemagick"
    ], 
    "EnableAutoHealing": true, 
    "AutoAssignElasticIps": false, 
    "AutoAssignPublicIps": true,
    "Attributes": {
        "RailsStack": "apache_passenger", 
        "RubyVersion": "2.1", 
        "BundlerVersion": "1.5.3", 
        "PassengerVersion": "4.0.46", 
        "ManageBundler": "true", 
        "RubygemsVersion": "2.3.0"
    }, 
  }