假设我有一个带有嵌套堆栈的cloudformation模板。
我从git中全部检查了它们,创建了一个S3存储桶和文件夹,并将Cloudformation指向主模板文件。
我希望它从“当前”存储桶/文件夹中导入嵌套堆栈(和其他资源)。
堆栈是否具有属性:它的“源”来自何处?
还是在用户创建堆栈时需要向用户请求s3 URL?因此,首先在S3中选择文件,然后按下一步复制URL,然后粘贴URL。似乎必须有一个更清洁的解决方案!
(出于政策原因,我不想引用带有可用于公共访问的嵌套堆栈的中央S3存储桶,并且我希望每次使用该堆栈时都会对其进行一点修改,但它并不总是完全嵌套的相同文件。)
答案 0 :(得分:0)
在“ AWS :: CloudFormation :: Stack”资源中,您应该使用“ TemplateURL”属性。
例如:
{
"Type" : "AWS::CloudFormation::Stack",
"Properties" : {
"NotificationARNs" : [ String, ... ],
"Parameters" : { AWS CloudFormation Stack Parameters },
"Tags" : [ Resource Tag, ... ],
"TemplateURL" : String,
"TimeoutInMinutes" : Integer
}
}
“ TemplateURL”- 模板的URL,它指定要创建为资源的堆栈。模板文件可以使用任何扩展名,例如.json,.yaml,.template或.txt。模板必须存储在Amazon S3存储桶中,因此URL的格式必须为:https://s3.amazonaws.com/.../TemplateName.extension
请让我知道是否需要更多帮助。
答案 1 :(得分:0)
对于您的解决方案,您可以做的只是使用通过“ Parameter”属性传递到嵌套堆栈的S3 URL。请在此处检查:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters “创建此嵌套堆栈时传递给AWS CloudFormation的参数集。”
其他说明:
在提供的S3 URL中,您刚刚映射到特定区域端点。另一个URL也是有效的,提供S3 URL的选项更多。根据文档https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#create-bucket-intro
否,堆栈不知道其来源,您可以在此处查看与堆栈相关的所有选项:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#aws-resource-cloudformation-stack-syntax