Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
Windows 云形成初始->;创建';文件';基于内容->;无法创建包含多行内容的文件_Windows_Amazon Web Services_Amazon Cloudformation_Bootstrapping - Fatal编程技术网

Windows 云形成初始->;创建';文件';基于内容->;无法创建包含多行内容的文件

Windows 云形成初始->;创建';文件';基于内容->;无法创建包含多行内容的文件,windows,amazon-web-services,amazon-cloudformation,bootstrapping,Windows,Amazon Web Services,Amazon Cloudformation,Bootstrapping,我正在使用cfn init通过CloudFormation元数据引导EC2 Windows 2016实例 我的目标是在实例上创建一个.properties文件,其中每个属性行必须位于单独的一行上。我尝试了以下两种方法。但每次,不是创建多行,而是将所有行连接起来 我正在尝试创建的示例文件: 安装程序\u UI=静默 控制器\u端口=\“8080” 侦听\u端口=“7070” 但每次创建的文件: 安装程序\u UI=SILENTCONTROLLER\u PORT=“8130”侦听\u端口=\“791

我正在使用cfn init通过CloudFormation元数据引导EC2 Windows 2016实例

我的目标是在实例上创建一个.properties文件,其中每个属性行必须位于单独的一行上。我尝试了以下两种方法。但每次,不是创建多行,而是将所有行连接起来

我正在尝试创建的示例文件:

安装程序\u UI=静默

控制器\u端口=\“8080”

侦听\u端口=“7070”

但每次创建的文件:

安装程序\u UI=SILENTCONTROLLER\u PORT=“8130”侦听\u端口=\“7913”

Cloudformation模板代码使用!潜艇

Metadata:
  AWS::CloudFormation::Init:
    config
      - 01InstallMyAgent
    01_InstallMyAgent:
      files:
        "D:\\installers\\Agent\\agent.properties":
           content: !Sub |+
             INSTALLER_UI=SILENT
             CONTROLLER_PORT="8130"
             LISTEN_PORT=\"7913\"
Cloudformation模板代码使用!加入

Metadata:
  AWS::CloudFormation::Init:
    config
      - 01InstallMyAgent
    01_InstallMyAgent:
      files:
        "D:\\installers\\Agent\\agent.properties":
          content: !Join ["\n",
            [
              "INSTALLER_UI=SILENT",
              'CONTROLLER_PORT=\"8130\"',
              'LISTEN_PORT=\"7913\"',
            ],
          ]
我还尝试使用“”作为分隔符进行联接,并在每行末尾添加“\n”,但绝对没有成功

问题2:也请。建议一种在本地测试上述代码的方法。现在我只需要在EC2实例中执行堆栈、RDP并检查文件内容,就可以看到我的小更改失败了。无需实际创建实例即可进行测试的任何方法。谢谢

问题3:是否有Windows cloudformation示例的存储库。因为这很难找到。我找到的几乎所有示例都是针对linux的

非常感谢

您可以使用由
|
指示器表示的。 下面是我们其中一个模板的示例:

        UserData:
          Fn::Base64: !Sub |
            Content-Type: multipart/mixed; boundary="==BOUNDARY==" 
            MIME-Version: 1.0 

            --==BOUNDARY== 
            MIME-Version: 1.0 
            Content-Type: text/x-shellscript; charset="us-ascii"

            #!/bin/bash
            yum install -y aws-cli
            AUTH_DATA=$(aws secretsmanager get-secret-value --secret-id stk-docker-repository-stage --region ${AWS::Region} --query SecretString --output text)
            cat <<EOT >> /etc/ecs/ecs.config
            ECS_DISABLE_IMAGE_CLEANUP=false
            ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION=2m
            ECS_IMAGE_CLEANUP_INTERVAL=10m
            ECS_IMAGE_MINIMUM_CLEANUP_AGE=10m
            ECS_NUM_IMAGES_DELETE_PER_CYCLE=5
            ECS_RESERVED_MEMORY=32
            ECS_ENGINE_AUTH_TYPE=docker
            ECS_ENGINE_AUTH_DATA={"stk40-docker-stage-dev-local.bahnhub.tech.rz.db.de":$AUTH_DATA}
            EOT

            --==BOUNDARY==
            Content-Type: text/x-shellscript; charset="us-ascii"

            #!/bin/bash
            #upgrade der EC2
            yum upgrade -y
            yum install -y wget
            yum install -y git
            yum install -y aws-cli
            yum install -y jq

            <cut>            
            --==BOUNDARY==--
UserData:
Fn::Base64:!潜艇|
内容类型:多部分/混合;boundary=“==边界==”
MIME版本:1.0
--==边界==
MIME版本:1.0
内容类型:text/x-shell脚本;charset=“us ascii”
#!/bin/bash
yum安装-y aws-cli
AUTH_DATA=$(aws secretsmanager获取秘密值--秘密id stk docker存储库阶段--区域${aws::region}--查询秘密字符串--输出文本)
cat/etc/ecs/ecs.config
ECS\u禁用\u映像\u清理=错误
ECS\u引擎\u任务\u清理\u等待\u持续时间=2m
ECS\u图像\u清理\u间隔=10m
ECS\u图像\u最小\u清理\u年龄=10m
ECS_NUM_IMAGES_DELETE_/_CYCLE=5
ECS_保留_内存=32
ECS\u引擎\u验证\u类型=docker
ECS_ENGINE_AUTH_DATA={“stk40 docker stage dev local.bahnhub.tech.rz.db.de”:$AUTH_DATA}
EOT
--==边界==
内容类型:text/x-shell脚本;charset=“us ascii”
#!/bin/bash
#升级der EC2
yum升级-y
yum安装-y wget
yum安装-y git
yum安装-y aws-cli
yum安装-y jq
--==边界==--

此链接将有助于理解yaml格式。