Wie kann das Timeout von Elastic Beanstalk-Bereitstellungen erhöht werden?

13

Als Teil meiner Anwendungsbereitstellung habe ich einige commandsin meinen .ebextensionsKonfigurationsdateien. Es kann 20 Minuten oder länger dauern, bis alle Befehle ausgeführt sind, wenn die Befehle zum ersten Mal ausgeführt werden (Klonen großer Repositorys).

Leider löst dies während der Bereitstellung eine Zeitüberschreitung aus:

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].

Ist es möglich, dieses Zeitlimit zu erhöhen? Ich kann die Option in meinen Umgebungseinstellungen nicht finden.

Benjamin
quelle
1
GIYF, Sie können ebextensions verwenden: stackoverflow.com/questions/25557874/…
Lucas Carvalho
Vielen Dank für den Hinweis, wenn Sie eine Zusammenfassung der unten verlinkten Antwort hinzufügen, werde ich Ihre Antwort als akzeptiert markieren!
Benjamin

Antworten:

11

Sie können dem Quellcode Ihrer Webanwendung AWS Elastic Beanstalk-Konfigurationsdateien (.ebextensions) hinzufügen , um Ihre Umgebung zu konfigurieren und die darin enthaltenen AWS-Ressourcen anzupassen.

Der option_settingsAbschnitt einer Konfigurationsdatei definiert Werte für Konfigurationsoptionen . Mit den Konfigurationsoptionen können Sie Ihre Elastic Beanstalk-Umgebung, die darin enthaltenen AWS-Ressourcen und die Software konfigurieren, mit der Ihre Anwendung ausgeführt wird.

Fügen Sie Ihrem Quellcode Konfigurationsdateien in einem Ordner mit dem Namen .ebextensions hinzu und stellen Sie sie in Ihrem Anwendungsquellpaket bereit.

Beispiel:

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

* "Wert" steht für die Zeitspanne vor dem Timeout in Sekunden.

Referenzen: Offizielle Konfiguration der AWS Elastic Beanstalk- Umgebung und allgemeine Optionen für alle Umgebungen , diese Stackoverflow-Antwort und dieser Beitrag im AWS Developers Forum.

Lucas Carvalho
quelle
0

Sie können die Repos in ein AMI backen und elastische Bohnenstangen verwenden. Auf diese Weise ist die Kasse nicht so lang.

Was tun Sie, um massive Repos im Rahmen der Bereitstellung zu klonen ?

Alex
quelle
Ich habe es immer abgelehnt, ein benutzerdefiniertes AMI zu verwenden, um es einfach zu halten. Ihre letzte Notiz ist jedoch ein guter Punkt. Meine App verfügt über einen integrierten Logo-Generator, der eine umfangreiche Liste von Schriftarten benötigt, aus denen der Benutzer auswählen kann. Ich möchte diese Schriftarten nicht mit meiner App bündeln, um die Größe in einem angemessenen Rahmen zu halten. Daher klonen meine Bereitstellungsskripts ein großes Repository, sobald die App auf die Server übertragen wird. Dies ist vielleicht nicht der beste Ansatz, aber der beste, den ich bisher gefunden habe.
Benjamin