我不断收到 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显示相同的错误)
以下内容应该可以解决该问题。
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"