Контекст
Проект PHP настроен в облаке bitbucket. Код разрабатывается локально в XAMPP. Код работает в среде Amazon Web Service Elastic Beanstalk.
Проблема
Я фиксирую свои изменения локально, а затем отправляю их в Bitbucket. Теперь мне нужно выполнить развертывание из Bitbucket в экземпляре AWS Elastic Beanstalk.
Я не хочу, чтобы для этого использовались какие-либо другие инструменты, а также использовать zip-файл для загрузки в Elastic Beanstalk. Вместо этого выполняйте прямо из Bitbucket в Elastic Beanstalk. Как я могу это сделать?
У меня была аналогичная проблема, когда мне нужно было развернуть Elastic Beanstalk из Bitbucket. Хотя мое приложение является Python, следующее не зависит от языка.
Я использую этот метод уже некоторое время, и у меня не было с ним проблем. У нас есть другие разделы, которые относятся как к Bitbucket, так и к AWS Pipeline (тестирование и создание образов докеров), но этот метод должен работать нормально без фазы «сборки» в CodePipeline.
Используйте конвейеры bitbucket для создания процедуры, которая при передаче в ветвь устанавливает команды eb в конвейер, а затем использует командные подсказки eb для развертывания сайта в правильной среде.
Кажется, что не существует решения, которое позволяло бы выполнять развертывание непосредственно из Bitbucket в Elastic Beanstalk.
Однако, если вы используете репозиторий git на Bitbucket, вы можете развернуть его прямо из интерфейса командной строки в Elastic Beanstalk.
Это достигается за счет использования интерфейса командной строки EB вместе с Git.
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-cli-git.html
Может, два года назад это было невозможно, но сейчас это легко. Настройте среду Elastic Beanstalk (при необходимости используйте фиктивный или пример кода). Затем в BitBucket добавьте свои AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY и AWS_DEFAULT_REGION в качестве переменных репозитория и добавьте шаги eb cli в свой bitbucket-pipelines.yml для развертывания.
Точные шаги конвейера зависят от вашего приложения, переменных среды и т. Д., Но это может быть так же просто, как
image: php:7.2.11
pipelines:
branches:
master:
- step:
- eb init my-elastic-beanstalk-app -p php
- eb deploy my-elastic-beanstalk-environment
Есть еще один пример на https://github.com/loonpwn/harlanzw.com/blob/master/bitbucket-pipelines.sample.yml
Bitbucket команда была непреклонна, что они не предоставляют каких-либо решений. Скорее предложили сослаться на гугл. Я слышу от команды только отговорки, а не ответ. Это позор.
Ответ - решения нет!