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

Lithops installieren

  1. Installieren Sie Lithops.

  2. Erstellen Sie die Lithops-Konfigurationsdatei.

  3. Installieren Sie Docker(Community Edition)Version.

  4. 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:

  1. Erstellen Sie ein IBM Cloud Object Storage-Konto.
  2. Erstellen Sie ein Bucket in der gewünschten Region.
  3. 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.
  4. 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

  1. Klicken Sie im Navigationsbereich von IBM Cloud Object Storage auf Serviceberechtigungsnachweise.

  2. Klicken Sie auf Neuer Berechtigungsnachweis +, geben Sie einen Namen an und wählen Sie eine Rolle aus.

  3. Klicken Sie auf Hinzufügen, um einen Serviceberechtigungsnachweis zu generieren.

  4. Klicken Sie auf Berechtigungsnachweise anzeigen und kopieren Sie den Wert für apikey.

  5. Bearbeiten Sie Ihre Konfigurationsdatei lithops und 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

  1. Klicken Sie im Navigationsbereich von IBM Cloud Object Storage auf Serviceberechtigungsnachweise.

  2. Klicken Sie auf Neuer Berechtigungsnachweis +, geben Sie einen Namen an und wählen Sie eine Rolle aus.

  3. Klicken Sie auf Erweiterte Optionen und aktivieren Sie die Option Include HMAC Credential.

  4. Klicken Sie auf Hinzufügen, um einen Serviceberechtigungsnachweis zu generieren.

  5. Klicken Sie auf Berechtigungsnachweise anzeigen und kopieren Sie die Werte access_key_id und secret_access_key.

  6. 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

  1. Wenn Sie über keinen IAM-API-Schlüssel verfügen, navigieren Sie zum IBM IAM-Dashboard.

  2. 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.

  3. 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).

  4. 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.