Подтвердить что ты не робот

Не может быть развернута - ОШИБКА: у вас не может быть более 500 версий приложений

При развертывании в EB появляется следующая ошибка:

ОШИБКА. У вас не может быть более 500 версий приложений. Или удалите некоторые версии приложений или попросите увеличить лимит.

Я пошел вручную и удалил некоторые версии. Я не хочу, чтобы развертывания не выполнялись из-за этого ограничения. Есть ли способ в Elastic Beanstalk для автоматического выключения неиспользуемых версий?

4b9b3361

Ответ 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.

  • Найдите в своей среде меню Приложения версии:

Меню версий приложений

  1. Нажмите кнопку Настройки в правом верхнем углу, и вы сможете настроить количество версий, которые вы хотите сохранить: Политики жизненного цикла