You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决AWS CloudFormation模板触发的YAMLException报错问题

CloudFormation模板YAMLException报错修复方案

问题根因

该报错为嵌套引号未正确转义导致的解析失败:
<meta>标签的content属性外层使用双引号包裹,内部嵌入的JSON结构又直接使用了双引号,导致content的属性值到第一个内部双引号就提前截断,剩余内容不符合YAML语法规则,CloudFormation解析时直接抛出YAMLException。

修复方案

  • 方案1:转义内层JSON双引号
    把content内部的所有双引号统一加转义符,修改后的代码片段如下:
    <meta name="optimizely-datafile" content="{&quot;version&quot;: &quot;4&quot;, &quot;rollouts&quot;: [], &quot;typedAudiences&quot;: [], &quot;anonymizeIP&quot;: true, &quot;projectId&quot;: [你的项目ID]}">
    如果是在JSON格式的CloudFormation模板中写入该内容,需要对转义符额外再加一层转义,即使用\\"替换原有的"。

  • 方案2:替换外层引号为单引号
    无需严格符合XHTML规范的场景下,直接将content属性的外层包裹引号改为单引号即可,无需额外转义内部JSON的双引号:
    <meta name="optimizely-datafile" content='{"version": "4", "rollouts": [], "typedAudiences": [], "anonymizeIP": true, "projectId": [你的项目ID]}'>

  • 方案3:YAML模板使用多行字符串块
    如果使用YAML格式的CloudFormation模板,可以用|块标识符包裹整段HTML内容,从根源避免引号转义冲突:

UserData:
  Fn::Base64: |
    <html>
      <head>
        <meta name="optimizely-datafile" content='{"version": "4", "rollouts": [], "typedAudiences": [], "anonymizeIP": true, "projectId": "你的项目ID"}'>
      </head>
    </html>

内容的提问来源于stack exchange,提问作者William Hardison

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:57:00