2016-12-11 4 views
0

Можно ли использовать DependsOn с Fn :: ImportValue следующим образом?Использование DependsOn с Fn :: ImportValue в облачной задаче

"DependsOn": {"Fn::ImportValue": { 
      "Fn::Sub": "${MyStack1}-VPCGatewayAttachment" 
     }} 

Чтобы быть конкретным, у меня есть VPC и InternetGatewayAttchment в одном стеке. Я импортирую этот стек в Stack2, где у меня есть ELB, и я пытаюсь использовать DependsOn, чтобы зависеть от этого приложения.

ответ

1

Чтобы расширить немного на вашем конкретном случае, если вы считаете, что нужно добавить атрибут DependsOn к AWS::EC2::VPCGatewayAttachment из-за рекомендации When a DependsOn attribute is required в отношении документации, в виду, что эти рекомендации применимы только для ресурсов, определенных в том же шаблоне:

Если ваш шаблон AWS CloudFormation определяет VPC, шлюз и вложение шлюза, любые ресурсы, требующие шлюза, зависят от привязки шлюза.

Когда вложение шлюза определено в отдельном шаблоне, вам не нужно явно объявлять какую-либо дополнительную зависимость. Пока стек приложения удаляется до сетевого стека, зависимый ресурс будет удален до присоединения VPC-шлюза.

В целом, как указано в George M Whitaker's answer, объявление DependsOn между стеками никогда не требуется. Поскольку вы не можете удалить стек, если другой стек ссылается на один из его выходов, использование Fn::ImportValue для создания ссылки на межсетевой столбец создает зависимость, которую стек, содержащий ссылку, должен быть удален до ссылки на стек.

2

Вы не должны использовать DependsOn вот так. Это необходимо только при создании зависимостей между ресурсами внутри шаблона. В частности, он используется для переопределения последовательности. Cloudformation создает ресурсы.

FN::ImportValue по своей сути является зависимой функцией, поскольку экспортируемое значение должно существовать до генерации стека. Поэтому просто укажите свое значение импорта в соответствующем ресурсе.

 Смежные вопросы

  • Нет связанных вопросов^_^