Cloudformation:访问堆栈文件夹中的其他资源,该文件夹在哪里?

时间:2018-10-08 11:17:57

标签: amazon-web-services amazon-cloudformation

假设我有一个带有嵌套堆栈的cloudformation模板。

我从git中全部检查了它们,创建了一个S3存储桶和文件夹,并将Cloudformation指向主模板文件。

我希望它从“当前”存储桶/文件夹中导入嵌套堆栈(和其他资源)。

堆栈是否具有属性:它的“源”来自何处?

还是在用户创建堆栈时需要向用户请求s3 URL?因此,首先在S3中选择文件,然后按下一步复制URL,然后粘贴URL。似乎必须有一个更清洁的解决方案!

(出于政策原因,我不想引用带有可用于公共访问的嵌套堆栈的中央S3存储桶,并且我希望每次使用该堆栈时都会对其进行一点修改,但它并不总是完全嵌套的相同文件。)

2 个答案:

答案 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

有关更多详细信息: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl

请让我知道是否需要更多帮助。

答案 1 :(得分:0)

对于您的解决方案,您可以做的只是使用通过“ Parameter”属性传递到嵌套堆栈的S3 URL。请在此处检查:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters “创建此嵌套堆栈时传递给AWS CloudFormation的参数集。”

其他说明:

  1. 在提供的S3 URL中,您刚刚映射到特定区域端点。另一个URL也是有效的,提供S3 URL的选项更多。根据文档https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#create-bucket-intro

  2. 否,堆栈不知道其来源,您可以在此处查看与堆栈相关的所有选项:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#aws-resource-cloudformation-stack-syntax