0

我有一个用例在哪里。

我想从参数部分传递多个存储桶名称,并授予它们对资源中这些存储桶的只读访问权限。我能够在限制计数时实现,但在未定义计数时如何实现。

"Parameters": {
        "S3Bucket": {
            "Type": "CommaDelimitedList",
            "Description": "Select Bucket Names to Associate with the policy"
        },
"Resource": [{"Fn::Join": ["", ["arn:aws:s3:::","Fn::Select": ["0", {
                                            "Ref": "S3Bucket"
                                    }]]
                                }
4

1 回答 1

1

您不能动态传递值,因为云形成模板没有循环的概念。

如果您想使用 CommaDelimitedList 并从参数中传递例如 5 个值,您必须在模板中获取相同的值计数。

Fn::Select 不检查空值或索引是否超出数组范围。这两种情况都会导致堆栈错误,因此您应该确定您选择的索引是有效的,并且列表包含非空值。

来源 - https://docs.amazonaws.cn/en_us/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-select.html

于 2020-12-09T05:53:45.900 回答