"!Sub |" 是什么意思在具有 YAML 语法的 AWS UserData 字段中是什么意思?
What does "!Sub |" mean in AWS UserData field with YAML syntax?
在这个来自 AWS docs 的示例中,我们有一个允许多行字符串的 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 |
管道字符代表换行符吗,表示行必须由换行符连接?
在您的 UserData 部分,!Sub 函数将 UserData 字符串中的变量替换为您指定的值或伪参数,例如 AWS::StackName 和 AWS::Region。
此外,YAML 中一行末尾的竖线符号表示 !Sub |
之后的任何缩进文本都应解释为多行标量值。
有关更多详细信息,请参阅内部函数详细信息 documentation。
内部函数 Fn::Sub (YAML !Sub) 将输入字符串中的变量替换为您指定的值。在您的模板中,您可以使用此函数构建命令或输出,其中包含在您创建或更新堆栈之前不可用的值。
字符'|' (管道符号)表示 "Literal Style"。这使用更简单、更易读的标量样式。这意味着您可以输入正常的文本,而不必使用“\n”之类的东西来表示行尾。
在这个来自 AWS docs 的示例中,我们有一个允许多行字符串的 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 |
管道字符代表换行符吗,表示行必须由换行符连接?
在您的 UserData 部分,!Sub 函数将 UserData 字符串中的变量替换为您指定的值或伪参数,例如 AWS::StackName 和 AWS::Region。
此外,YAML 中一行末尾的竖线符号表示 !Sub |
之后的任何缩进文本都应解释为多行标量值。
有关更多详细信息,请参阅内部函数详细信息 documentation。
内部函数 Fn::Sub (YAML !Sub) 将输入字符串中的变量替换为您指定的值。在您的模板中,您可以使用此函数构建命令或输出,其中包含在您创建或更新堆栈之前不可用的值。
字符'|' (管道符号)表示 "Literal Style"。这使用更简单、更易读的标量样式。这意味着您可以输入正常的文本,而不必使用“\n”之类的东西来表示行尾。