gpt4 book ai didi

amazon-web-services - 如何 Fn::Split 追加现有数组?

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

我有一个具有现有托管策略的 IAM 角色,我需要通过参数添加更多托管策略,因为它们每个堆栈都是动态的。

这是我尝试/想要的,但它不起作用。 cloudformation 事件错误是“属性 ManagedPolicyArns 的值必须是字符串列表类型”。我认为这意味着 Split 不会追加数组,而是将一项添加到本身就是数组的数组中。

Parameters:
StackManagedPolicyArns:
Description: Comma separated, dynamic list of ARNs passed in when deploying
Type: String

Resources:
MyRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub "${AWS::StackName}"
ManagedPolicyArns:
- Fn::ImportValue: !Sub "${Namespace}-common-policy"
- Fn::Split:
- ','
- !Ref StackManagedPolicyArns

我怎样才能做到这一点?

最佳答案

CFN 中的此类事情有点棘手。但是您可以首先将所有内容连接到一个大字符串中,然后将其拆分为数组。这需要 JoinSplit 函数的组合:

Resources:
MyRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub "${AWS::StackName}"
ManagedPolicyArns:
Fn::Split:
- ','
- Fn::Join:
- ","
- - Fn::ImportValue: !Sub "${Namespace}-common-policy"
- Fn::Join:
- ","
- !Split [',', !Ref StackManagedPolicyArns]

关于amazon-web-services - 如何 Fn::Split 追加现有数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73941352/

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