在具有 YAML 语法的 AWS 用户数据字段中"!Sub |"是什么意思?



在 AWS 文档中的此示例中,我们有一个 UserData 字段,该字段允许使用以下语法使用多行字符串:

UserData:
  Fn::Base64: !Sub |
     #!/bin/bash -xe
     yum update -y aws-cfn-bootstrap
     /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --region ${AWS::Region}
     /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerGroup --region ${AWS::Region}

!Sub |在这里是什么意思,尤其是管道字符?相应的 JSON 改用"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [,但在 YAML 中,使用!Sub |

管道字符是否代表换行符,说行必须由换行符连接?

内在函数 Fn::Sub (YAML !Sub( 将输入字符串中的变量(例如示例中的${AWS::StackName}变量(替换为您指定的值。在模板中,您可以使用此函数构造包含值的命令或输出,这些值在您创建或更新堆栈之前不可用。

字符"|"(管道符号(表示"文字样式"。这使用更简单、更易读的标量样式。这意味着您可以输入外观正常的文本,而不必使用""之类的内容来表示行尾。

fn::sub

亚姆尔规格

在您的用户数据部分中,!Sub 函数将 UserData 字符串中的变量替换为您指定的值或伪参数,如 AWS::StackName 和 AWS::Region。

此外,YAML 中行尾的管道符号表示!Sub |后面的任何缩进文本都应解释为多行标量值。

有关更多详细信息,请参阅内部函数详细信息文档。

相关内容

  • 没有找到相关文章

最新更新