Jak zwiększyć limit czasu wdrożeń Elastic Beanstalk?

13

Jako część mojego wdrażania aplikacji, mam trochę commandsw moich .ebextensionsplikach konfiguracyjnych. Wykonanie wszystkich poleceń może potrwać 20 minut lub dłużej, przy pierwszym uruchomieniu poleceń (klonowanie dużych repozytoriów).

Niestety powoduje to przekroczenie limitu czasu podczas wdrażania:

INFO Deploying new version to instance(s).
WARN The following instances have not responded in the allowed command
     timeout time (they might still finish eventually on their own).
INFO Command execution completed. Summary: [Successful: 0, TimedOut: 1].

Czy można zwiększyć ten limit czasu? Nie mogę znaleźć tej opcji w ustawieniach środowiska.

Benzoes
źródło
1
GIYF, możesz użyć ebextensions: stackoverflow.com/questions/25557874/...
Lucas Carvalho
Dzięki za wskaźnik, jeśli dodasz podsumowanie połączonej odpowiedzi poniżej, oznaczę twoją odpowiedź jako zaakceptowaną!
Benjamin

Odpowiedzi:

11

Możesz dodać pliki konfiguracyjne AWS Elastic Beanstalk (.ebextensions) do kodu źródłowego aplikacji internetowej, aby skonfigurować środowisko i dostosować zawarte w nim zasoby AWS.

option_settingsSekcja pliku konfiguracyjnego określa wartości dla opcji konfiguracyjnych . Opcje konfiguracji pozwalają skonfigurować środowisko Elastic Beanstalk, zawarte w nim zasoby AWS oraz oprogramowanie, które uruchamia twoją aplikację.

Dodaj pliki konfiguracyjne do kodu źródłowego w folderze o nazwie .ebextensions i wdróż go w pakiecie źródłowym aplikacji.

Przykład:

option_settings:
    - namespace: aws:elasticbeanstalk:command
      option_name: Timeout
      value: 1000

* „wartość” oznacza czas do upływu limitu czasu w sekundach.

Odniesienia: Oficjalna konfiguracja środowiska elastycznych ziaren fasoli AWS i ogólne opcje dla wszystkich środowisk , ta odpowiedź na przepełnienie stosu i ten post na forum deweloperów AWS.

Lucas Carvalho
źródło
0

możesz upiec repo w AMI i użyć elastycznej łodygi fasoli. W ten sposób kasa nie jest tak długa.

Z drugiej strony, co robisz, klonując ogromne repozytoria w ramach wdrożenia ?

Alex
źródło
Zawsze niechętnie korzystałem z niestandardowego AMI, aby było to proste. Ostatnia uwaga jest jednak dobra. Moja aplikacja ma wbudowany generator logo, który wymaga obszernej listy czcionek, aby zaoferować użytkownikowi wybór. Nie chcę łączyć tych czcionek z moją aplikacją, aby utrzymać rozmiar w rozsądnych granicach, więc moje skrypty wdrażania klonują duże repozytorium, gdy aplikacja zostanie przekazana na serwery. To może nie być najlepsze podejście, ale jest to najlepsze, jakie do tej pory znalazłem.
Benjamin