【问题标题】:AWS: Cloud Formation: Is it possible to use multiple "DependsOn"?AWS:Cloud Formation:是否可以使用多个“DependsOn”?
【发布时间】:2014-03-26 00:16:17
【问题描述】:

鉴于我有这个示例模板:

{
    "AWSTemplateFormatVersion" : "2010-09-09",
    "Mappings" : {
        "RegionMap" : {
            "us-west-1" : { "AMI" : "ami-655a0a20" },
            ...
        }
    },
    "Resources" : {
        "Ec2Instance" : {
            "Type" : "AWS::EC2::Instance",
            "Properties" : {
                ...
            },
            "DependsOn" : "myDB"
        },
        "myDB" : {
            "Type" : "AWS::RDS::DBInstance",
            "Properties" : {
               ...
            }
        },
        "myDB2" : {
            "Type" : "AWS::RDS::DBInstance",
            "Properties" : {
               ...
            }
        }
    }
}

是否可以以任何方式指定多个 DependsOn? 有这样的想法会很棒:

"DependsOn" : ["myDB", "myDB2"]

正常的方式是什么?

【问题讨论】:

    标签: json templates amazon-web-services amazon-cloudformation


    【解决方案1】:

    这个答案首先出现在 Google 中,所以我将介绍如何在 YAML 中执行多个依赖属性,我在 this answer 中找到了这些属性。

    AnotherProductionResource:
      Type: AWS::CloudFormation::Stack
       Condition: ISProduction
       DependsOn:
       - AResource
       - MyProductionResource
       Properties:
         [...]
    

    【讨论】:

      【解决方案2】:
      {
          "Description": "Create a variable number of EC2 instance resources.",
          "Parameters": {
              "InstanceCount": {
                  "Description": "Number of EC2 instances (must be between 1 and 5).",
                  "Type": "Number",
                  "Default": 1,
                  "MinValue": 1,
                  "MaxValue": 5,
                  "ConstraintDescription": "Must be a number between 1 and 5."
              },
              "ImageId": {
                  "Description": "Image ID to launch EC2 instances.",
                  "Type": "AWS::EC2::Image::Id",
                  "Default": "ami-31c9924e"
              },
              "InstanceType": {
                  "Description": "Instance type to launch EC2 instances.",
                  "Type": "String",
                  "Default": "m3.medium",
                  "AllowedValues": [
                      "m3.medium",
                      "m3.large",
                      "m3.xlarge",
                      "m3.2xlarge"
                  ]
              }
          },
          "Conditions": {
              "Launch1" : {"Fn::Equals" : [{"Ref" : "InstanceCount"}, "1"]},
              "Launch2" : {"Fn::Equals" : [{"Ref" : "InstanceCount"}, "2"]}       
          },
          "Resources": {
              "Instance2": {
                  "Condition": "Launch2",
                  "Type": "AWS::EC2::Instance",
                  "Properties": {
                      "ImageId": {
                          "Ref": "ImageId"
                      },
                      "InstanceType": {
                          "Ref": "InstanceType"
                      }
                  },
                  "DependsOn": "Instance1"
              },
              "Instance1": {
                  "Condition": "Launch1",
                  "Type": "AWS::EC2::Instance",
                  "Properties": {
                      "ImageId": {
                          "Ref": "ImageId"
                      },
                      "InstanceType": {
                          "Ref": "InstanceType"
                      }
                  }
              }
          }      
      }
      

      【讨论】:

        【解决方案3】:

        是的, “DependsOn”可以采用多个字符串。我在下面列出了一个示例:

        “DependsOn”:[“S3BucketAppElbLogs”,“ElbLogAppBucketPolicy”]

        【讨论】:

          【解决方案4】:

          是的,

          DependsOn 属性可以采用单个字符串或字符串列表

          http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html

          语法:

          “取决于”:[字符串,...]

          【讨论】:

          • 这有效,在 yml 的情况下 >> DependsOn: ConfigA,ConfigB
          • @Forhad 在 yaml 中为您提供单个 ConfigA,ConfigB 字符串而不是列表
          猜你喜欢
          • 2015-01-03
          • 2018-08-20
          • 2016-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-21
          • 2017-03-28
          • 2017-03-10
          相关资源
          最近更新 更多