Ich habe eine schwere App auf AWS gehostet. Ich verwende CodeDeploy & Code Pipeline (Aktualisierung von Github), um die Server zu aktualisieren, wenn ein neues Release bereit ist (derzeit 6 ec2-Instanzen in der Produktionsumgebung ausgeführt).Verwenden von CodeDeploy ValidateService Hook mit Python-Anwendung
Ich habe die codedeploy so eingerichtet, dass sie einzeln ausgeführt werden kann, und habe außerdem eine 300-Sekunden-Verbindung definiert, die den Load Balancer löscht.
Noch ist meine Anwendung schwer (es lädt große Dicleus Pickle-Dateien von der Festplatte in den Speicher), dauert der Prozess der Zündung etwa ~ 60 Sekunden. In diesen 60 Sekunden markiert CodeDeploy den Prozess der Bereitstellung einer Instanz als abgeschlossen und veranlasst sie, sich als fehlerfreie Instanz dem Load Balancer anzuschließen - dies könnte zu Fehlern bei Benutzern führen, die versuchen, die Anwendung zu erreichen.
Ich dachte über die ValidateService
Haken verwenden, aber ich bin nicht sicher, wie in meinem Fall ..
Alle Ideen, wie für eine volle Beladung und Bereitschaft der Anwendung zu warten, bevor er zur nächsten Instanz fortfahren ?
Dies ist mein aktueller AppSpec.yml version: 0.0 os: linux files: - source: /deployment destination: /deployment - source: /webserver/src destination: /vagrant/webserver/src permissions: - object: /deployment pattern: "**" owner: root mode: 644 type: - directory - object: /webserver/src owner: root mode: 644 except: [/webserver/src/dictionaries] type: - directory hooks: ApplicationStop: - location: /deployment/aws_application_stop.sh BeforeInstall: - location: /deployment/aws_before_install.sh AfterInstall: - location: /deployment/aws_after_install.sh ApplicationStart: - location: /deployment/aws_application_start.sh