Jobs mit Lithops-Framework ausführen
Lithops ist ein Open-Source-Framework zur umfangreichen Skalierung Ihrer Python-Anwendungen. Lithops entwickelt die IBM Cloud® Code Engine-Funktionalität so weiter, dass Sie sich auf Ihren Python-Code konzentrieren können und Lithops die Bereitstellung Ihre Codes zur umfangreichen Skalierung mit Ausführungsüberwachung, Ergebnisabruf und Vielem mehr übernimmt. Lithops ermöglicht die native Python-Integration mit Code Engine unter Verwendung der Lithops-API. Weitere Informationen zu Lithops finden Sie in der Kurzanleitung zu Lithops.
Ersten Datenfluss mit dem Lithops-Framework ausführen
Bevor Sie Jobs ausführen können, die das Lithops-Framework referenzieren, müssen Sie zunächst Lithops installieren und ein Speicher-Back-End einrichten.
Vorbereitende Schritte
- Installieren Sie die Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Code Engine-Projekt und arbeiten Sie damit.
- Ihre Umgebungsvariable
kubeconfigfinden und setzen.
Lithops installieren
-
Installieren Sie Lithops.
-
Erstellen Sie die Lithops-Konfigurationsdatei.
-
Installieren Sie Docker(Community Edition)Version.
-
Melden Sie sich an Docker an.
docker login
Speicher-Back-End für Lithops einrichten
Wählen Sie ein unterstütztes Speicher-Back-End aus, z. B. IBM Cloud Object Storage.
Gehen Sie wie folgt vor, um IBM Cloud Object Storage einzurichten:
- Erstellen Sie ein IBM Cloud Object Storage-Konto.
- Erstellen Sie ein Bucket in der gewünschten Region.
- Klicken Sie im seitlichen Navigationsbereich auf Endpunkte, um nach dem API-Endpunkt zu suchen. Sie müssen sowohl den öffentlichen als auch den privaten Endpunkt der Region, in der Sie Ihr Bucket erstellt haben, kopieren.
- Erstellen Sie die Berechtigungsnachweise für den Zugang zu Ihrem IBM Cloud Object Storage-Konto. Option auswählen
Option 1 (API-Schlüssel) für Lithops
-
Klicken Sie im Navigationsbereich von IBM Cloud Object Storage auf Serviceberechtigungsnachweise.
-
Klicken Sie auf Neuer Berechtigungsnachweis +, geben Sie einen Namen an und wählen Sie eine Rolle aus.
-
Klicken Sie auf Hinzufügen, um einen Serviceberechtigungsnachweis zu generieren.
-
Klicken Sie auf Berechtigungsnachweise anzeigen und kopieren Sie den Wert für
apikey. -
Bearbeiten Sie Ihre Konfigurationsdatei
lithopsund fügen Sie die folgenden Schlüssel hinzu:lithops: storage_backend: ibm_cos ibm_cos: endpoint : <REGION_ENDPOINT> private_endpoint : <PRIVATE_REGION_ENDPOINT> api_key : <API_KEY>
Option 2 (IBM Cloud Object Storage HMAC-Berechtigungsnachweise) für Lithops
-
Klicken Sie im Navigationsbereich von IBM Cloud Object Storage auf Serviceberechtigungsnachweise.
-
Klicken Sie auf Neuer Berechtigungsnachweis +, geben Sie einen Namen an und wählen Sie eine Rolle aus.
-
Klicken Sie auf Erweiterte Optionen und aktivieren Sie die Option
Include HMAC Credential. -
Klicken Sie auf Hinzufügen, um einen Serviceberechtigungsnachweis zu generieren.
-
Klicken Sie auf Berechtigungsnachweise anzeigen und kopieren Sie die Werte
access_key_idundsecret_access_key. -
Bearbeiten Sie die
lithops-Konfigurationsdatei und fügen Sie die folgenden Schlüssel hinzu:lithops: storage_backend: ibm_cos ibm_cos: endpoint : <REGION_ENDPOINT> private_endpoint : <PRIVATE_REGION_ENDPOINT> access_key : <ACCESS_KEY_ID> secret_key : <SECRET_KEY_ID>
Option 3 (API-Schlüssel von IBM IAM) für Lithops
-
Wenn Sie über keinen IAM-API-Schlüssel verfügen, navigieren Sie zum IBM IAM-Dashboard.
-
Klicken Sie auf IBM Cloud-API-Schlüssel erstellen. Geben Sie einen Namen und eine optionale Beschreibung für den API-Schlüssel ein und klicken Sie auf Erstellen.
-
Kopieren Sie den generierten IAM-API-Schlüssel (Sie können den Schlüssel nur sehen, wenn Sie ihn erstellen; stellen Sie also sicher, dass er kopiert wird).
-
Bearbeiten Sie die
lithops-Konfigurationsdatei und fügen Sie die folgenden Schlüssel hinzu:lithops: storage_backend: ibm_cos ibm: iam_api_key: <IAM_API_KEY> ibm_cos: endpoint : <REGION_ENDPOINT> private_endpoint : <PRIVATE_REGION_ENDPOINT>
Ersten eigenen Code Engine-Job mit Lithops bereitstellen
Führen Sie das folgende Beispiel für hello world aus:
import lithops
iterdata = [1,2,3,4,5]
def my_map_function(data):
return data + 1
if __name__ == '__main__':
pw = lithops.function_executor(type = "serverless", backend='code_engine')
futures = pw.map(my_map_function, iterdata)
print (pw.get_result())
pw.clean()
Nächste Schritte für Lithops
Auf der Lithops-Projektseite finden Sie weitere Beispiele und Anwendungsfälle, und Sie können Fragen stellen.