Я пишу свои первые стеки CF и, конечно же, сталкиваюсь с неудачным развертыванием с первой попытки, потому что я еще полностью не знаю синтаксис и доступные параметры. Я проверяю свой json и сам шаблон через интерфейс командной строки, но при развертывании он все еще может вызывать проблемы и вызывать откат или сбой. Теперь, когда это совершенно новый стек, а не обновление, развертывание просто не удается, и я не могу его обновить, мне нужно полностью уничтожить стек и заново развернуть его совершенно новым.
Мне было интересно, как решить эту проблему. Даже если удаленного стека нет в консоли, интерфейс командной строки все равно будет перечислять все стеки, которые были созданы и уничтожены ранее, и это просто не чисто. Конечно, я не могу обновить стек после исправления проблемы, которая привела к его сбою, потому что он находится в состоянии сбоя, мне нужно повторно развернуть все, как если бы это был полностью новый стек.
Есть мысли по этому поводу? Как вы начали создавать свои первые стопки?
Ваше первое «создание» стека должно быть успешным, в противном случае его необходимо удалить. Более поздние обновления могут завершиться ошибкой и откатиться без удаления стека. Я обычно удаляю в консоли, но вы, конечно, можете использовать «aws cloudformation delete-stack».
Я не беспокоюсь о перечислении стеков в CLI, я просто использую консоль, поэтому я не знаю, что она отображает. Как только стопка будет удалена, вы можете создать ее снова. Вы можете определить это состояние с помощью команды
aws cloudformation wait stack-delete-complete --profile profilename --stack-name stack-name
Ключевым моментом для вас может быть развертывание простого стека, который, как вы знаете, будет развернут, а затем добавление сложности позже. Вы можете сделать это, закомментировав все, кроме одного ресурса для развертывания, который вы можете скопировать и вставить из примера AWS. Visual Studio Code упрощает это с помощью комбинации «Control - Shift - /» для комментирования / раскомментирования больших блоков.
Вам следует подумать об использовании CloudFormation в формате YAML, я считаю это намного проще.