Преимущества использования AWS :: CloudFormation :: Init - PullRequest
3 голосов
/ 29 апреля 2019

Я уже некоторое время пользуюсь шаблонами облачной информации и продолжаю задавать себе следующий вопрос:

Каковы преимущества использования AWS::CloudFormation::Init по сравнению с добавлением этих операторов непосредственно в блок UserData?

До сих пор я нашел AWS::CloudFormation::Init более многословным, особенно когда вам нужно несколько configSets, чтобы обеспечить некоторый порядок в ваших утверждениях.

Кроме того, некоторые AMI не поддерживают запуск этого блока инициализации из коробки и требуют дополнительных сценариев cfn-init, которые добавляют еще больше многословия.

1 Ответ

4 голосов
/ 29 апреля 2019

Преимущества, которые я могу себе представить:

  • простой декларативный DSL.
  • такие функции, как ведение журнала, предоставляемые cfn-init.
  • cfn-hupможет использоваться для обнаружения изменений в метаданных ресурса при запуске update-stack.

Если вам нравится простой декларативный DSL для вашей конфигурации, аналогичный Puppet & Chef, тогда используйте AWS :: CloudFormation:: Init.

И если вы находите это громоздким, возможно, что UserData лучше подходит.Слишком много configSets может указывать на то, что вы используете неправильный инструмент (или заказываете вещи, которые на самом деле не нужно заказывать!).

Кроме того, помните, что AWS :: CloudFormation :: Initстарый, и он предшествует поддержке CloudFormation шаблонов YAML.

До поддержки YAML размещение сценариев в UserData было затруднительным, поскольку каждую строку сценария оболочки необходимо было кодировать в массив JSON.Это затрудняло чтение и позволяло легко ошибаться.

Использование AWS :: CloudFormation :: Init, на мой взгляд, более целесообразно, учитывая только эти два варианта.

ЭтиВ наши дни я предпочитаю хранить сценарии оболочки вне CloudFormation, тестировать их внешне, а затем передавать в виде строки в кодировке base64 в качестве параметра.(Однако остерегайтесь ограничения в 4096 символов для параметров!).

Конечно, это также зависит от сложности вашей конфигурации.Вы не захотите делать слишком много в сценарии оболочки в UserData, поскольку он быстро станет недоступен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...