У меня есть шаблон CloudFormation, в котором я создаю проект CodeBuild и вложенный стек ресурсов, связанных с VPC.Вот выдержка:
Resources:
VpcStack:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: https://s3-eu-west-1.amazonaws.com/foo-bar/vpc/vpc.template.json
CustomCodeBuild:
Type: AWS::CodeBuild::Project
Properties:
... other properties
VpcConfig:
VpcId:
Fn::ImportValue: !Sub ${VpcStack}:VpcId
Шаблон VPC в TemplateURL выглядит следующим образом:
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
... various properties
Outputs:
VpcId:
Value: !Ref VPC
Export:
Name: !Sub ${AWS::StackName}:VpcId
Как видите, я пытаюсь импортировать VpcId из вложенного стека.
VpcConfig:
VpcId:
Fn::ImportValue: !Sub ${VpcStack}:VpcId
Однако это приводит к следующей ошибке:
Шаблон содержит ошибки .: Ошибка шаблона: атрибут в Fn :: ImportValue не должен зависеть от каких-либо ресурсов,импортированные значения, или Fn :: GetAZs
Имеет смысл, что это происходит ... VpcStack действительно ресурс.Но как мне избежать этого?
Это просто синтаксис или мне нужно по-другому структурировать свои шаблоны, чтобы это осуществить?