Как передать UserData в экземпляр Beanstalk с помощью CloudFormation

Мне нужен сервер приложений, который представляет собой экземпляры beanstalk, для выполнения некоторых действий при запуске, и я подумал о запуске сценария bash, переданного экземпляру со свойством UserData, доступным для обычных экземпляров EC2.

Я нашел несколько примеров шаблонов CloudFormation, которые делают это с обычными экземплярами EC2, но не с Beanstalk. Я попытался добавить это в поле свойств приложения:

"MyApp" : {
  "Type" : "AWS::ElasticBeanstalk::Application",
  "Properties" : {
    "Description" : "MyApp description",
    "ApplicationVersions" : [{
      ...
    }],
    "UserData" : {
      "Fn::Base64" : { "Fn::Join" : ["", [
        "#!/bin/bash\n",
        "touch /tmp/userdata_sucess\n"
      ]]
    }},
    ...

Я также пробовал добавить в часть окружения:

"MyAppEnv" : {
  "Type" : "AWS::ElasticBeanstalk::Environment",
  "Properties" : {
    "ApplicationName" : { "Ref" : "MyApp" },
    "Description" :  "MyApp environment description",
    "UserData" : {
      "Fn::Base64" : { "Fn::Join" : ["", [
        "#!/bin/bash\n",
        "touch /tmp/userdata_sucess\n"
      ]]
    }},
    "TemplateName" : "MyAppConfiguration",
    "VersionLabel" : "First Cloud version"
  }
},

В обоих случаях это привело к сбою при попытке создать стек. Кто-нибудь знает, можно ли передать UserData в экземпляр Beanstalk с помощью CloudFormation. Если да - можете привести пример.




Ответы (2)


Если вы хотите иметь все преимущества, которые предлагает Beanstalk - например, не исправлять ОС, что Amazon делает для вас, - это невозможно. Один из вариантов - создать собственный AMI, в который вы включите необходимые сценарии, но тогда вы должны будете самостоятельно управлять ОС с помощью исправлений безопасности. Подробнее читайте здесь.

person tronda    schedule 14.12.2011
comment
@tronda, ты знаешь, осталось ли оно таким же спустя 6 лет? - person AlexanderF; 07.03.2018
comment
Извините, я не работал с Beanstalk с момента публикации этого поста. @AlexanderF. - person tronda; 08.03.2018