Я в конце концов пытаюсь решить эту проблему. Наша конечная цель — развернуть пользовательский док-контейнер Mautic. У меня нет проблем сделать это из интерфейса их сайта. Я решил все мои проблемы с конфигурацией, и это прекрасно работает. Но мне нужно сделать это автоматически из API. Клиенты собираются подписаться на наш сервис, и мы хотим развернуть для них Mautic мгновенно (или настолько быстро, насколько может работать AWS).
Я новичок в эластичных бобовых и AWS. Но я понимаю, что мне нужно создать среду и развернуть Dockerrun.aws.json
файл к нему. Но я не могу найти где-нибудь в API, что я могу указать файл для развертывания или даже корзину S3 для использования (как вы можете из интерфейса). Я надеялся, что сохранив шаблон и используя его, он будет работать, но я просто получаю пустой экземпляр Docker без запуска контейнера.
Вот пример моего вызова PHP API
$eb = new ElasticBeanstalkClient(array(
'version' => 'latest',
'region' => 'us-east-1',
'credentials' => array(
'key' => '...',
'secret' => '...'
)
));
$newEnvironment = $eb->createEnvironment(array(
'ApplicationName' => 'test',
'TemplateName' => 'foo2',
'EnvironmentName' => '...',
'EnvironmentTier' => array(
'Type' => 'Standard',
'Name' => 'WebServer'
),
'OptionSettings' => array(
[
'Namespace' => 'aws:autoscaling:launchconfiguration',
'OptionName' => 'EC2KeyName',
'Value' => '...'
],
[
'Namespace' => 'aws:rds:dbinstance',
'OptionName' => 'DBUser',
'Value' => '...'
],
[
'Namespace' => 'aws:rds:dbinstance',
'OptionName' => 'DBPassword',
'Value' => '...'
]
)
));
Шаблон foo2
был сохранен из среды, в которой есть полностью запущенный док-контейнер Mautic.
Проблема в том, что это создает среду и ресурс RDS, которые мне нужны, но не запускает мой док-контейнер.
Возможно ли то, что я хочу? Или я должен найти другой проспект?
Спасибо
Догадаться. То, что я искал, было $eb->createApplicationVersion(...)
который я могу использовать, чтобы указать ведро S3 с моим Dockerrun.aws.json
файл. Документация
Тогда я могу указать, что VersionLabel
в моем createEnvironment()
звони так.
$newEnvironment = $eb->createEnvironment(array(
'ApplicationName' => 'test',
'TemplateName' => 'foo2',
// Right here
'VersionLabel` => 'fooVersion',
'EnvironmentName' => '...',
'EnvironmentTier' => array(
'Type' => 'Standard',
'Name' => 'WebServer'
),
'OptionSettings' => array(
[
'Namespace' => 'aws:autoscaling:launchconfiguration',
'OptionName' => 'EC2KeyName',
'Value' => '...'
],
[
'Namespace' => 'aws:rds:dbinstance',
'OptionName' => 'DBUser',
'Value' => '...'
],
[
'Namespace' => 'aws:rds:dbinstance',
'OptionName' => 'DBPassword',
'Value' => '...'
]
)
));
Или я могу просто создать версию через панель инструментов. Документация
Других решений пока нет …