Не может быть развернута - ОШИБКА: у вас не может быть более 500 версий приложений
При развертывании в EB появляется следующая ошибка:
ОШИБКА. У вас не может быть более 500 версий приложений. Или удалите некоторые версии приложений или попросите увеличить лимит.
Я пошел вручную и удалил некоторые версии.
Я не хочу, чтобы развертывания не выполнялись из-за этого ограничения.
Есть ли способ в Elastic Beanstalk для автоматического выключения неиспользуемых версий?
Ответы
Ответ 1
Недавно была добавлена функция eb cli (v3.3) для очистки старых версий
https://m.reddit.com/r/aws/comments/340ce0/whats_the_thinking_behind_beanstalks_versioning/
Копирование команды из ссылки reddit
$ eb labs cleanup-versions --help
usage: eb labs cleanup-versions [options...]
Cleans up old application versions.
optional arguments:
--num-to-leave NUM number of versions to leave DEFAULT=10
--older-than DAYS delete only versions older than x days DEFAULT=60
--force don't prompt for confirmation
Ответ 2
Во время написания этого ответа eb labs cleanup-versions
не работает для меня: он возвратил No application versions to delete
, даже если у меня были версии приложений.
В качестве обходного пути я использовал этот однострочный интерфейс, вдохновленный этим ответом (измените название и имя приложения strong > соответственно):
aws elasticbeanstalk description-application-versions --output text --region = us-west-2 --query 'ApplicationVersions [*]. [ApplicationName, VersionLabel, DateCreated]' | grep my-app-name | при чтении даты приложения; do echo "удаление версии $app $ver $date"; aws elasticbeanstalk delete-application-version -region = us-west-2 --application-name $app --version-label $ver --delete-source-bundle; сделано
Ответ 3
Там нет встроенного способа сделать это, но следующий ruby script выполняет именно это. Просто назначьте его с помощью cron.
clearnup.rb:
application_name="myApp"
active_versions_shell_output = `aws elasticbeanstalk describe-environments --region=us-east-1 | grep git | awk '{gsub(/.*\:\ \"/,"",$0); print}'`
all_versions_shell_output = `aws elasticbeanstalk describe-applications --region=us-east-1 | grep git | awk '{gsub(/.*\ \"/,"",$0); print}'`
all_versions = all_versions_shell_output.split(/\n/).map{|x| x[0..57]}
active_versions = active_versions_shell_output.split(/\n/).map{|x| x[0..57]}
(all_versions - active_versions).each do |version_to_be_deleted|
puts "deleting #{version_to_be_deleted}"
`aws elasticbeanstalk delete-application-version --delete-source-bundle --application-name #{application_name} --version-label #{version_to_be_deleted}`
end
Ответ 4
Теперь вы можете управлять политиками жизненного цикла с консоли AWS.
- Найдите в своей среде меню Приложения версии:
![Меню версий приложений]()
- Нажмите кнопку Настройки в правом верхнем углу, и вы сможете настроить количество версий, которые вы хотите сохранить:
![Политики жизненного цикла]()
Ответ 5
Теперь они добавили страницу пользовательского интерфейса администратора, чтобы удалить все версии приложений:
Управление версиями приложений