CloudFormation参数AllowedPattern正则配置报错问题咨询
CloudFormation YAML模板禁止参数字符串含&符号的正确写法
问题出在两个核心点:正则表达式的匹配范围错误,以及YAML对正则特殊符号的解析处理。
错误原因分析
- 正则匹配范围不对:你之前用的
[^&]只能匹配单个非&字符,但CloudFormation的AllowedPattern要求正则必须匹配整个输入字符串。哪怕输入不含&,只要长度大于1,就会因只匹配了单个字符触发校验错误。 - YAML解析干扰:正则里的
^、$属于YAML特殊符号,直接书写会被解析器误处理,导致格式报错。
正确解决方案
使用锚定整个字符串的正则表达式,并用单引号包裹避免YAML解析问题:
Parameters: YourParameterName: Type: String AllowedPattern: '^[^&]*$' Description: 输入字符串禁止包含&符号
正则规则说明
^:锚定字符串开头[^&]*:匹配零个或多个非&字符([^&]表示单个非&字符,*允许重复任意次数)$:锚定字符串结尾
这个正则会确保输入的每一个字符都不是&,同时单引号包裹后,YAML不会解析正则内的特殊符号,彻底解决格式和校验双重问题。
内容的提问来源于stack exchange,提问作者Alex Howard
相关产品推荐
相关产品推荐

