Dies ist besonders häufig der Fall, wenn Bibliotheken verwendet werden, die C-Erweiterungen verwenden. Unterschiedliche Optionen für die Erstellungszeit können jedoch Probleme und Fehler verursachen.
Insbesondere der Zeichencode ... In dem beobachteten Bereich verwendet die CircleCI-Umgebung "UCS2" und der Lambda-Standard (Amazon Linux) "UCS4", sodass ein Fehler auftreten kann.
Ich erinnere mich nicht, was für ein Fehler es war, weil es eine Zeit verschiedener Versuche und Irrtümer war, aber ich habe erfahren, dass der Code, der in Python funktionierte und den ich mit pyenv
in die Ubuntu-Umgebung gestellt habe, auf Lambda nicht funktionierte. ..
Erstens gibt es eine Methode zum Installieren und Bereitstellen der Pypi-Bibliothek usw. in einer von virtualenv unabhängigen Umgebung unter Amazon Linux. Am einfachsten und zuverlässigsten. Es ist jedoch nicht gut, einen EC2 nur für diesen Zweck einzurichten, und Sie werden wahrscheinlich Jenkins usw. verwenden, aber die Bedienung ist auch mühsam.
Sie können dies überall verwenden. Es ist jedoch mühsam, darauf zu achten, dass die vorhandene Umgebung nicht verschmutzt wird, und CI as a Service wird jedes Mal weggeworfen, sodass die Erstellung bei jeder Bereitstellung einige Zeit in Anspruch nimmt. Es gibt eine Möglichkeit, das Image mithilfe eines Dienstes zu brennen, mit dem Sie ein Docker-Image einfügen können, der sich jedoch etwas übertrieben anfühlt.
Dies ist diesmal mein Favorit. Wenn Sie "rpm", "deb" usw. haben, die mit den gleichen Optionen wie Amazon Linux erstellt wurden und eine unabhängige Python-Laufzeit bieten, können Sie diese einfach, schnell und sicher verwenden.
** Also ja. Ich machte. ** **. http://qiita.com/marcy-terui/items/9b3610bed4e5fcafd9b9 Es gibt einige Optionen, die ich entfernt habe, weil ich mich nicht auf einige systemglobale Bibliotheken verlassen kann, aber es sollte kein Problem geben, da ich sie normalerweise nicht verwendet habe.
yum
① Repository hinzufügen
echo "
[bintraybintray-willyworks-rpm]
name=bintray-willyworks-rpm
baseurl=https://dl.bintray.com/willyworks/rpm/centos/\$releaserver/\$basearch/
gpgcheck=0
enabled=1
" | sudo tee -a /etc/yum.repos.d/bintray-willyworks-rpm.repo
② Installation
sudo yum install lamvery
apt
① Repository hinzufügen
echo "deb https://dl.bintray.com/willyworks/deb trusty main" | sudo tee -a /etc/apt/sources.list
② Installation
sudo apt-get update
sudo apt-get install install lamvery
Die folgenden Ausführungs-Binärdateien (Skripte) sind unter "/ opt / lamvery / bin" verfügbar. Verwenden Sie sie daher, indem Sie sie gegebenenfalls durch Ihren PATH führen.
Als Referenz finden Sie hier ein Beschreibungsbeispiel für die Verwendung mit CircleCI.
circle.yml
---
machine:
environment:
PATH: /opt/lamvery/bin:$PATH
dependencies:
pre:
- |
echo "deb https://dl.bintray.com/willyworks/deb trusty main" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install lamvery
Die Verwendung von "Lamvery" in "virtualenv" macht es sehr einfach, Lambda für Python-Funktionen bereitzustellen. Wenn Sie interessiert sind, lesen Sie bitte auch dies. Natürlich können Sie damit nur Python verwenden.
Über "Lamvery", ein Bereitstellungs- und Verwaltungstool für AWS Lambda http://qiita.com/marcy-terui/items/1617ab4e20e3339d1930
Die Lambda-Funktion bietet Best Practice mit CircleCI + Lamvery http://qiita.com/marcy-terui/items/900b72efb38f9b26e8f0
Das war Stemmer.
Recommended Posts