我正在使用表达式enableTracing: true
将作为字符串的STRING输入参数!Select [5, !Split [':', !Ref ResourceARN]]
转换为相应的ResourceARN
,以将其传递给子堆栈。 / p>
示例:从S3 bucket name
开始创建arn:aws:s3:::tests3bucket-1a3o2v3wr375g
相反,当我得到tests3bucket-1a3o2v3wr375g
时,它的计算结果为空字符串。
我该如何进行这项工作?
这是主堆栈模板:
Parameters: [S3BucketName] must have values
这是子模板:
AWSTemplateFormatVersion: 2010-09-09
Parameters:
ResourceARN:
Description: 'The AWS ARN associated with S3 resource, example arn:aws:s3:::tests3bucket-1a3o2v3wr375g'
ConstraintDescription: The ARN of the resource
Type: String
:
:
Resources:
ChildStack:
Type: 'AWS::CloudFormation::Stack'
Properties:
TemplateURL: !Sub >-
https://${QSS3BucketName}.s3.amazonaws.com/${QSS3KeyPrefix}/templates/child.template
Parameters:
S3BucketName: !Select [5, !Split [':', !Ref ResourceARN]] # Expecting to evaluate to tests3bucket-1a3o2v3wr375g
:
:
答案 0 :(得分:1)
谢谢@berenbums看看-我也意识到我自己也行得通。还有另一个问题掩盖了问题。
因此,毕竟,表达式!Select [5, !Split [':', !Ref ResourceARN]]
可用于将ResourceARN转换为相应的S3存储桶名称。