yaml 验证,所有映射项必须从第 14 行第 1 列的同一列开始

问题描述 投票:0回答:1

我不断收到 yaml 验证错误,因为我的 yaml 的一部分不是 yaml,而是 linux bash 脚本,

(我正在尝试创建一个 CloudFront 模板来在 AWS 上启动 EC2 实例)

错误信息是:

所有映射项必须从第 14 行第 1 列的同一列开始

指的是

-y
之后的
yum update

Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-051f8a213df8bc089 
      InstanceType: t2.micro
      KeyName: mydockertestKP
      SecurityGroupIds:
        - sg-12345678 
      UserData:
        Fn::Base64:
          Fn::Sub |
            #!/bin/bash
            yum update -y
            yum install -y docker

            systemctl start docker

            curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
            chmod +x /usr/local/bin/docker-compose

有人知道我该怎么做才能使 aws yaml 验证器不将 bash 脚本视为 yaml 吗?

(VS2022和yamllint.com显示相同的错误)

amazon-web-services yaml aws-cloudformation
1个回答
0
投票

以下内容应该可以解决该问题。

Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-051f8a213df8bc089
      InstanceType: t2.micro
      KeyName: mydockertestKP
      SecurityGroupIds:
        - sg-12345678
      UserData:
        Fn::Base64:
          Fn::Sub: "#!/bin/bash yum update -y yum install -y docker systemctl start docker
            curl -L
            https://github.com/docker/compose/releases/latest/download/docker-c\
            ompose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
            chmod +x /usr/local/bin/docker-compose"
© www.soinside.com 2019 - 2024. All rights reserved.