Elastic Beanstalk развертывает докерскую среду из API

Я в конце концов пытаюсь решить эту проблему. Наша конечная цель — развернуть пользовательский док-контейнер 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, которые мне нужны, но не запускает мой док-контейнер.

Возможно ли то, что я хочу? Или я должен найти другой проспект?

Спасибо

0

Решение

Догадаться. То, что я искал, было $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' => '...'
]
)
));

Или я могу просто создать версию через панель инструментов. Документация

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]