Wie der Titel schon sagt, ist ein Problem aufgetreten, bei dem die Erstellung fehlgeschlagen ist, als CI / CD von Python Function mit AWS Amplify.
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
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
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.
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