gpt4 book ai didi

amazon-web-services - 在 CloudFormation 中使用 Join 函数不断出现错误

转载 作者:行者123 更新时间:2023-12-03 07:17:52 25 4
gpt4 key购买 nike

使用Join CFN 中的功能让我抓狂。

它有时有效,有时无效,而且我使用的语法似乎没有任何问题,错误并不一致。模板的验证始终返回“Ok”,但在堆栈创建的最后一步,它会失败,有时会在创建资源时抛出错误(由于名称格式错误)或给我此错误消息 every Fn::Join object requires two parameters, (1) a string delimiter and (2) a list of strings to be joined or a function that returns a list of strings (such as Fn::GetAZs) to be joined. .

有没有一种好的方法可以调试这个而不是一路创建资源?

例如,这个语法有什么问题?

  BucketName: !Join 
- ''
- - !FindInMap
- Naming
- BasicPrefix
- Name
- '-'
- !Ref BusinessUnitName
- '-'
- !Ref EnvType

或者,为什么不能使用如下语法来获得相同的结果?

  BucketName: !Join 
- '-'
- - !FindInMap
- Naming
- BasicPrefix
- Name
- !Ref BusinessUnitName
- !Ref EnvType

或者这个简写:

BucketName: !Join ['-', [!FindInMap [Naming, BasicPrefix, Name], !Ref BusinessUnitName, !Ref EnvType]]

没有一个会起作用。我必须不断尝试不同的方法,直到 CFN 接受为止。真累。

请帮忙。

最佳答案

您的语法看起来正确,但需要完整的模板才能确定错误的原因。

但是,对于您的场景,与 Fn::Join 相比,Fn::Sub 是更好的选择,请尝试使用 Fn::Sub 并进行如下映射

BucketName: !Sub
- ${MapResult}-${BU}-${Env}
- { MapResult: !FindInMap [Naming, BasicPrefix, Name] }
- { BU: !Ref BusinessUnitName }
- { Env: !Ref EnvType }

关于amazon-web-services - 在 CloudFormation 中使用 Join 函数不断出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70520001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com