当前位置:  开发笔记 > 编程语言 > 正文

Cloudformation模板格式错误:每个DeletionPolicy成员必须是一个字符串

如何解决《Cloudformation模板格式错误:每个DeletionPolicy成员必须是一个字符串》经验,为你挑选了1个好方法。

嗨,我正在尝试使用"IF"函数,就像在RDS DeletionPolicy的云形成文档中提到的那样,但由于某种原因,它说我的函数不返回字符串.

关于条件语句的AWS文档

这是条件:

 "DeletionPolicy" : {
    "Fn::If" : [
      "CreateProdResources",
      "Snapshot",
      "Delete"
    ]}

错误是标题中的错误:

Template validation error: Template format error: Every DeletionPolicy member must be a string.

其他尝试不起作用:

有了地图:

 "RdsDeletionPolicyMap" :{
      "production" : {
          "policy" : "Snapshot"
      },
      "staging" : {
          "policy" : "Delete"
      }
   }

然后:

   "DeletionPolicy" : {
      "Fn::FindInMap" : [ "RdsDeletionPolicyMap", {"Ref": "RailsEnvironment"}, "policy" ]
   }

和Simple "Ref": ...一样也不行.我非常怀疑这是一个关于cloudformation的错误



1> Josh Edwards..:

问题是DeletionPolicy必须设置为三个字符串之一.而且,虽然你的If检查将返回其中一个,从系统的角度来看,它只知道它返回一个String - 但不保证是一个有效的字符串(与你的map和参数检查相同),因此它只接受字符串文字,而不是解析为字符串的东西.

我相信此限制已经提交给AWS工程团队,因为这是一个令人讨厌的问题.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有