7

Kann ich die mit AWS Elastic Beanstalk bereitgestellten Pip- und Setup-Tools aktualisieren oder entfernen?Kann ich die alten Versionen von pip und setuptools von Amazon aktualisieren?

Die Versionen von Pip und Setuptools mit meiner AWS Elastic Beanstalk Python-Umgebungen (in der virtuellen Umgebung 2.7 meine Anwendung ausgeführt wird, ami-d14608e1, in /opt/python/run/venv/lib/python2.7/site-packages) versehen sind sehr alt: wie

von

pip list --outdated 
berichtet sie sind

setuptools (Current: 2.2 Latest: 12.0.5) 
pip (Current: 1.5.4 Latest: 6.0.7) 

Kann ich diese (zB durch sie in meinem requirements.txt Auflistung) aktualisieren oder sind diese spezifischen Versionen voraussichtlich oder erforderlich für EB Python und Bereitstellungsprozesse arbeiten?

Antwort

10

Wenn Sie beispielsweise pip verwenden, bietet die Standardumgebung von AWS normalerweise eine alte Version. Derzeit ist es ein 6.1.1 auf einer Maschine, die ich verwende, während pip bei jedem Anruf wiederholt, dass 9.0.1 verfügbar ist.

Abhängigkeiten erfordern manchmal aktuelle Versionen von pip. Eine Möglichkeit, sie verfügbar zu machen, besteht darin, sich auf pip selbst zu stützen, da die von AWS bereitgestellten yum Quellen langsamer aufzurüsten sind (aufgrund der reinen Auswirkungen, die ... verursachen würden).

Verschiedene AWS-Dienste haben unterschiedliche Lösungen. Die Frage bezieht sich auf Bohnenstange. Unter der Annahme, Bereitstellung basierend auf eb zur Verfügung gestellt von AWS ist es möglich, Befehle in den Zielcontainer auszuführen:

  • erstellen .ebextensions/upgrade_pip.config Datei.
  • Geben Sie den auszuführenden Befehl ein.

pip zu aktualisieren, funktioniert ein Befehl wie folgt den Job:

commands: 
    pip_upgrade: 
    command: /opt/python/run/venv/bin/pip install --upgrade pip 
    ignoreErrors: false 

Beachten Sie, dass der Dateiname für .ebextensions/upgrade_pip.config die Reihenfolge der Ausführung definiert. Wenn es früher als jedes andere Skript in .ebextensions ausgeführt werden muss, ist ein Präfix wie 01_upgrade... erforderlich.