Exécution de travaux avec l'infrastructure Lithops
Lithops est une infrastructure open source qui a été conçue pour mettre massivement à l'échelle vos applications Python. Lithops fournit une simple connexion push vers l'expérience IBM Cloud® Code Engine pour que vous puissiez vous concentrer sur votre code Python, pendant que Lithops se charge du déploiement de ce code à grande échelle, tout en surveillant les exécutions, en réceptionnant les résultats, etc. Lithops permet l'intégration native de Python avec Code Engine en utilisant l'API Lithops. Pour plus d'informations sur Lithops, voir le guide de démarrage rapide de Lithops.
Exécution de votre premier flux en utilisant l'infrastructure Lithops
Avant de pouvoir exécuter des travaux se référant à l'infrastructure Lithops, vous devez d'abord installer Lithops et configurer un système de stockage de back end.
Avant de commencer
- Installez l'interface de ligne de commande Code Engine.
- Créez et utilisez un projet Code Engine.
- Recherchez et définissez votre variable d'environnement
kubeconfig
.
Installation de Lithops
-
Installez Lithops.
-
Créez le fichier de configuration Lithops.
-
Installez Docker(édition Community)version.
-
Connectez-vous à Docker.
docker login
Configuration d'un système de stockage de back end pour Lithops
Sélectionnez un système de stockage de back end pris en charge, IBM Cloud Object Storage, par exemple.
Pour configurer IBM Cloud Object Storage
- Créez un compte IBM Cloud Object Storage.
- Créez un compartiment dans la région que vous voulez utiliser.
- Dans la zone de navigation latérale, cliquez sur Noeuds finaux pour rechercher votre noeud final d'API. Vous devez copier à la fois les noeuds finaux publics et les noeuds finaux privés de la région où vous avez créé votre compartiment.
- Créez les données d'identification pour accéder à votre compte IBM Cloud Object Storage. Choisissez une option
Option 1 (clé d'API) pour Lithops
-
Dans la zone de navigation IBM Cloud Object Storage, cliquez sur Identifiants de service.
-
Cliquez sur Nouvel identifiant +, puis fournissez un nom et sélectionnez un rôle.
-
Cliquez sur Ajouter pour générer un identifiant de service.
-
Cliquez sur Afficher les données d'identification et copiez la valeur
apikey
. -
Éditez votre fichier de configuration
lithops
et ajoutez les clés suivantes.lithops: storage_backend: ibm_cos ibm_cos: endpoint : <REGION_ENDPOINT> private_endpoint : <PRIVATE_REGION_ENDPOINT> api_key : <API_KEY>
Option 2 (identifiants HMAC IBM Cloud Object Storage) pour Lithops
-
Dans la zone de navigation IBM Cloud Object Storage, cliquez sur Identifiants de service.
-
Cliquez sur Nouvel identifiant +, puis fournissez un nom et sélectionnez un rôle.
-
Cliquez sur Options avancées et activez l'option
Include HMAC Credential
. -
Cliquez sur Ajouter pour générer un identifiant de service.
-
Cliquez sur Afficher données d'identification et copiez les valeurs
access_key_id
etsecret_access_key
. -
Editez votre fichier de configuration
lithops
et ajoutez les clés suivantes :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 (clé d'API IBM IAM) pour Lithops
-
Si vous n'avez pas de clé d'API IAM, accédez au tableau de bord IBM IAM.
-
Cliquez sur Créer une clé d'API IBM Cloud. Entrez un nom et une description facultative pour votre clé d'API, puis cliquez sur Créer.
-
Copiez la clé d'API IAM générée (vous ne pouvez voir la clé qu'au moment où vous la créez, prenez donc bien soin de la copier).
-
Editez votre fichier de configuration
lithops
et ajoutez les clés suivantes :lithops: storage_backend: ibm_cos ibm: iam_api_key: <IAM_API_KEY> ibm_cos: endpoint : <REGION_ENDPOINT> private_endpoint : <PRIVATE_REGION_ENDPOINT>
Déploiement de votre premier travail Code Engine en utilisant Lithops
Exécutez l'exemple hello world suivant :
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()
Etapes suivantes pour Lithops
Vous pouvez trouver d'autres exemples et cas d'utilisation, et poser des questions, sur la page du projet Lithops.