繁体   English   中英

AWS:Cloud Formation:是否可以使用多个“DependsOn”?

[英]AWS: Cloud Formation: Is it possible to use multiple “DependsOn”?

鉴于我有这个示例模板:

{
    "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"]

正常方式是什么?

是的,

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

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

句法:

"DependsOn" : [ 字符串, ... ]

这个答案首先出现在谷歌中,所以我将包括如何在 YAML 中执行多个依赖属性,我在这个答案中找到了。

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

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

"DependsOn": [ "S3BucketAppElbLogs", "ElbLogAppBucketPolicy" ]

{
    "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"
                }
            }
        }
    }      
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM