Wie man mit dem Problem umgeht, dass die Erstellung fehlschlägt, wenn CI / CD von Python Function mit AWS Amplify

Wie der Titel schon sagt, ist ein Problem aufgetreten, bei dem die Erstellung fehlgeschlagen ist, als CI / CD von Python Function mit AWS Amplify.

Fazit (wie man damit umgeht)

Ich konnte den Build übergeben, indem ich in den Build-Einstellungen Folgendes zu amplify.yml hinzufügte.

version: 1
backend:
  phases:
    build:
      commands:
        #Ergänzung von hier>>>
        - export BASE_PATH=$(pwd)
        - yum install -y gcc openssl-devel bzip2-devel libffi-devel python3.8-pip
        - cd /opt && wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz
        - cd /opt && tar xzf Python-3.8.2.tgz 
        - cd /opt/Python-3.8.2 && ./configure --enable-optimizations
        - cd /opt/Python-3.8.2 && make altinstall
        - pip3.8 install --user pipenv
        - ln -fs /usr/local/bin/python3.8 /usr/bin/python3
        - ln -fs /usr/local/bin/pip3.8 /usr/bin/pip3
        - cd $BASE_PATH
        # <<<Bis hierher addiert
        - '# Execute Amplify CLI with the helper script'
        - amplifyPush --simple

Probleme, die aufgetreten sind

In der CI / CD-Erstellungsphase wird ausgegeben, dass Python 3.8 oder höher erforderlich ist (siehe unten).

2020-10-27T19:21:49.678Z [INFO]: python3 found but version Python 3.7.4 is less than the minimum required version.
                                 You must have python >= 3.8 installed and available on your PATH as "python3". It can be installed from https://www.python.org/downloads
                                 You must have pipenv installed and available on your PATH as "pipenv". It can be installed by running "pip3 install --user pipenv".
2020-10-27T19:21:49.679Z [WARNING]: ✖ An error occurred when pushing the resources to the cloud
                                    ✖ There was an error initializing your environment.
2020-10-27T19:21:49.687Z [INFO]: init failed
2020-10-27T19:21:49.688Z [INFO]: Error: Missing required dependencies to package tatamifmmusiclibrary7312699f
                                 at buildResource (/root/.nvm/versions/node/v10.16.0/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/build-resources.js:30:11)
                                 at process._tickCallback (internal/process/next_tick.js:68:7)
2020-10-27T19:21:49.699Z [ERROR]: !!! Build failed
2020-10-27T19:21:49.699Z [ERROR]: !!! Non-Zero Exit Code detected
2020-10-27T19:21:49.699Z [INFO]: # Starting environment caching...
2020-10-27T19:21:49.700Z [INFO]: # Environment caching completed

Ursache

Wenn ich in der CLI "Amplify" die Funktion "Amplify Add" ausführe und zur Laufzeit Python auswähle, scheint Python 3.8 intern ausgewählt zu sein. Auf der anderen Seite ist Python, das unter Amazon Linux 2 für CI / CD installiert ist, 3.7.4, sodass es zu einer Nichtübereinstimmung der Version kommt.

Lösungstipps

Nach meiner Erfahrung werden Amplify-Probleme häufig in GitHub Issue angesprochen. Diese Angelegenheit wurde bereits in der folgenden Ausgabe erörtert.

Amplify can't find Python3.8 on build phase of CI/CD #595

Es scheint, dass einige Leute benutzerdefinierte Images erstellt haben, aber ich möchte keine inoffiziellen Images verwenden, daher habe ich beschlossen, dass es besser ist, Python 3.8 zu installieren, selbst wenn das Erstellen einige Zeit in Anspruch genommen hat. Ich denke, dass die unter Amazon Linux 2 installierte Version von Python irgendwann zunehmen wird, daher ist es eine gute Idee, eine vorübergehende Maßnahme zu ergreifen.

Recommended Posts

Wie man mit dem Problem umgeht, dass die Erstellung fehlschlägt, wenn CI / CD von Python Function mit AWS Amplify
Problemumgehung für Pandas 1.1.0 und höher Build-Fehler unter Alpine Linux
Umgang mit SSL-Fehlern beim Herstellen einer Verbindung zu S3 mit Python boto
Umgang mit dem Problem, dass japanische Zeichen bei der Ausgabe von Protokollen mit dem JSON-Protokollformatierer verstümmelt sind
[systemd] Wie gehe ich mit dem Problem um, dass fancontrol nach dem Anhalten nicht funktioniert?
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Eine Geschichte über den Umgang mit dem CORS-Problem
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
Wie man mit dem Phänomen umgeht, dass Python (Jupyter Notebook) auf WSL ausgeführt wird, wird abgebrochen
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
So gehen Sie mit dem Fehler um, dass der MySQL-Container von Docker in der Docker Toolbox nicht gestartet werden kann
So erhalten Sie Informationen von Organisationen, Cost Explorer eines anderen AWS-Kontos bei Lambda (Python)
[VLC] Wie man mit dem Problem umgeht, dass es während der Wiedergabe nicht im Vordergrund steht
Wie man mit Python-Installationsfehlern in pyenv umgeht (BUILD FAILED)
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
[Python] Erklärt anhand eines Beispiels, wie die Formatierungsfunktion verwendet wird
Umgang mit Fehlern bei der Installation von Python und Pip mit Choco
Umgang mit dem Fehler "Fehler beim Laden des Moduls" canberra-gtk-module ", der beim Ausführen von OpenCV auftritt
Das 16. Offline-Echtzeit-Schreibproblem wurde mit Python gelöst
So schneiden Sie den unteren rechten Teil des Bildes mit Python OpenCV
[Python] Erklärt anhand eines konkreten Beispiels, wie die Bereichsfunktion verwendet wird
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Das 16. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
So erstellen Sie einen Wrapper, der die Signatur der zu umschließenden Funktion beibehält
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Das 19. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
Das 15. Offline-Problem beim Schreiben in Echtzeit wurde mit Python gelöst
[AWS] Umgang mit WordPress "Beim Zuschneiden eines Bildes ist ein Fehler aufgetreten."
Umgang mit Fehlern beim Auftreffen auf pip pip
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy
So lösen Sie das Problem, dass nur der Prozess übrig bleibt, wenn Sie auf dem Imshow-Bildschirm von OpenCV auf Kreuz drücken
Beachten Sie bei der Verwendung von PyQtGraph mit Python Pyside die Reihenfolge des Imports
Lösung für das Problem, dass der Build bei der Installation von OpenCV (PEP517) nicht beendet wird
So legen Sie Attribute mit Mock of Python fest
So ermitteln Sie den Koeffizienten der ungefähren Kurve, die in Python durch die Scheitelpunkte verläuft
[Python] Lösung für das Problem, dass Elemente beim Kopieren einer Liste verknüpft werden
So aktualisieren Sie die Software beim Erstellen von Linux (CentOS) mit Vagrant ~ Am Beispiel eines Upgrades von Python 2.7 auf Python 3.6 ~
Hinweis: So erhalten Sie den letzten Tag des Monats mit Python (hinzugefügt am ersten Tag des Monats)
[AWS] Umgang mit Wordpress "Die Antwort ist nicht die richtige JSON-Antwort."
[Python] Umgang mit dem is-Instanzfehler "is instance () arg 2 muss ein Typ oder ein Tupel von Typen sein"
Umgang mit "^ [[A ^ [[B ^ [[C ^ [[D"]] beim Drücken der Richtungstaste beim Ausführen von Python auf dem Mac
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Ein Memo darüber, wie man das schwierige Problem der Erfassung von FX mit AI überwinden kann
Ein Hinweis auf Missverständnisse beim Versuch, das gesamte selbst erstellte Modul mit Python3 zu laden
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
So ermitteln Sie die Anzahl der Stellen in Python
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
So lösen Sie die rekursive Funktion, die abc115-D gelöst hat
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
[Python] Umgang mit Pandas read_html Lesefehler
Python Gibt die Funktion an, die ausgeführt werden soll, wenn das Programm endet
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
Wie man das Dokument der magischen Funktion (Linienmagie) trifft
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
[Python] So schreiben Sie den Tabellenstil mit python-pptx um [python-pptx]
Ich habe nach dem Problem der Tribonatch-Sequenz in C ++ und der Anzahl der Funktionsaufrufe beim Schreiben mit einer Wiederholungsfunktion gefragt (Python ist ebenfalls verfügbar).