无服务器部署因 stackTags 变量中的 + 字符而失败

Serverless deploy failing with + character in stackTags variable

在我的 serverless.yml 文件中,我有一个定义如下的 StackTag 变量

 stackTags:
    Name: My Service
    Category: Environment:${opt:stage}+Role:Application

所以当我 运行 sls deploy --stage dev 收到以下错误并且部署失败时

无效的阶段变量值:类别:环境:${opt:stage}+Role:Application。请使用带有字母数字字符和符号 ' '、-'、'.'、'_'、':'、'/'、'?'、'&'、'=' 和 ',' 的值。

这是无服务器框架的限制吗?能够通过 AWS UI 控制台使用相同的标签。

当我将“+”替换为“.”等任何其他字符时或“:”然后部署工作,“+”字符失败

这不是一个很好的答案,但您遇到了一个已知和已报告的错误:

https://github.com/serverless/serverless/issues/6133

API Gateway tags setting Stage Variables not Tags

阶段变量对标签有不同的限制(特别是对于您的情况,它们不支持 +)。

查看版本,恢复到版本 1.14.1 可能是解决此问题的方法。