Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon cloudformation AWS CloudFormation模板-如何启动_Amazon Cloudformation - Fatal编程技术网

Amazon cloudformation AWS CloudFormation模板-如何启动

Amazon cloudformation AWS CloudFormation模板-如何启动,amazon-cloudformation,Amazon Cloudformation,我正在尝试为AWS CloudFormation编写模板,但不知道如何开始。我在AWS上管理两个不同的域,并希望使用单个CNF模板为这两个域创建Windows服务器 例如,模板中的第一个问题应要求您为“域”参数选择域: “abc.com”或 “123.com” “WSUSGroup”参数模板中的第二个问题应该根据前面的答案为您提供不同的列表选项。我想根据我选择的域选择不同的WSUS组。例如: 若我为“域”参数选择“abc.com”,则列表应提供: WSUS-ABC-US WSUS-ABC-EU

我正在尝试为AWS CloudFormation编写模板,但不知道如何开始。我在AWS上管理两个不同的域,并希望使用单个CNF模板为这两个域创建Windows服务器

例如,模板中的第一个问题应要求您为“域”参数选择域:

  • “abc.com”或
  • “123.com”
  • “WSUSGroup”参数模板中的第二个问题应该根据前面的答案为您提供不同的列表选项。我想根据我选择的域选择不同的WSUS组。例如:

    • 若我为“域”参数选择“abc.com”,则列表应提供:

    • WSUS-ABC-US
    • WSUS-ABC-EU
    • 若我选择“123.com”作为“域名”,列表应提供:

    • 123-US
    • 123-亚太地区
    这完全可行吗?我想根据域名选择拆分多个选项


    提前谢谢。

    您有两个具体问题,我会尽力回答

    首先,CF支持

    如果希望用户从有限的选项列表中选择域,可以使用
    AllowedValues
    。大致如下:

      Domain:
        Type: String
        Default: abc.com
        AllowedValues:
          - abc.com
          - 123.com
    
    其次,您似乎希望根据第一个参数选择另一个参数

    我认为这是不可能的

    但是,可能有一些解决办法

    例如,如果不同域的
    WSUSGroup
    的值可以说是“并行的”(即
    123-US
    对应于
    WSUS-ABC-US
    ,而
    123-APAC
    对应于
    WSUS-ABC-EU
    ),则可以根据
    域的值来选择实际的
    WSUSGroup
    值。这可能如下所示

    让我们定义一个参数
    WSUSGroupKey
    ,该参数具有抽象值
    US
    EU
    ,对应于特定值
    WSUS-ABC-US
    /
    WSUS-ABC-EU
    123-US
    /
    123-APAC

      WSUSGroupKey:
        Type: String
        Default: US
        AllowedValues:
          - US
          - EU
    
    然后我们定义一个
    +
    WSUSGroupKey
    WSUSGroup
    映射:

    Mappings:
      WSUSGroupMapping:
        abc.com:
          US: 'WSUS-ABC-US'
          EU: 'WSUS-ABC-EU'
        123.com:
          US: '123-US'
          EU: '123-APAC'
    
    完成后,我们现在可以使用
    FindInMap
    根据
    Domain
    WSUSGroupKey
    参数查找
    WSUSGroup
    值:

          SomeProperty: !FindInMap
            - WSUSGroupMapping
            - !Ref 'Domain'
            - !Ref 'WSUSGroupKey'
    

    首先,Cloudformation对模板使用JSON/YAML格式。你可以在模板中加入一些“逻辑”,难度从简单到困难再到不,不能这样做。你所要求的也许能够实现。我可以想出几种可能的方法,但你要求的是有人为你做这项工作。这就是为什么你会被否决。我会看一下文档,学习YAML或JASON(我建议初学者使用YAML),至少在你提问之前尝试一下。搜索一些样本,然后从那里开始。如果我有时间,我会试试看。我看了一下,但我不确定今天是否有时间完成这项工作,但我想从这里开始:你是对的。我很抱歉。我将尝试发布更详细的问题,稍后还有我的试用。再次感谢。没关系,每个人都需要时间学习。我还在琢磨这个问题,但我希望我发送的链接能有所帮助。稍后我会尽量抽出时间来帮助你。