Мне нужен сервер приложений, который представляет собой экземпляры 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. Если да - можете привести пример.