Ejecución de trabajos con la infraestructura Lithops

Lithops es una infraestructura de código abierto que se ha diseñado para escalar las aplicaciones de Python de forma masiva. Lithops le lleva a vivir la experiencia de IBM Cloud® Code Engine para que pueda centrarse en el código Python, mientras que Lithops se centra en el despliegue de su código a gran escala mientras se supervisan las ejecuciones, obteniendo resultados y mucho más. Lithops permite la integración nativa de Python con Code Engine utilizando la API de Lithops. Para más información sobre Lithops, consulte la guía de inicio rápido de Lithops.

Ejecución del primer flujo a través de la infraestructura de Lithops

Para poder ejecutar trabajos que hagan referencia a la infraestructura de Lithops, primero debe instalar Lithops y configurar un programa de fondo de almacenamiento.

Antes de empezar

Instalación de Lithops

  1. Instale Lithops.

  2. Cree el archivo de configuración de Lithops.

  3. Instale Docker(edición de comunidad)versión.

  4. Inicie la sesión en Docker.

    docker login
    

Configuración de un programa de fondo de almacenamiento para Lithops

Seleccione un programa de fondo de almacenamiento soportado; por ejemplo, IBM Cloud Object Storage.

Para configurar IBM Cloud Object Storage,

  1. Cree una cuenta de IBM Cloud Object Storage.
  2. Cree un grupo en la región que desea utilizar.
  3. En la navegación lateral, pulse Puntos finales para hallar el punto final de la API. Debe copiar tanto los puntos finales públicos como los privados de la región en la que ha creado el grupo.
  4. Cree las credenciales para acceder a su cuenta de IBM Cloud Object Storage. Elija una opción

Opción 1 (clave de API) para Lithops

  1. Desde la navegación de IBM Cloud Object Storage, pulse Credenciales de servicio.

  2. Pulse Nueva credencial + y proporcione un nombre y seleccione un rol.

  3. Pulse Añadir para generar la credencial de servicio.

  4. Pulse Ver credenciales y copie el valor apikey.

  5. Edite el archivo de configuración de lithops y añada las claves siguientes.

    lithops:
        storage_backend: ibm_cos
    
    ibm_cos:
        endpoint   : <REGION_ENDPOINT>  
        private_endpoint : <PRIVATE_REGION_ENDPOINT>
        api_key    : <API_KEY>
    

Opción 2 (credenciales de HMAC de IBM Cloud Object Storage) para Lithops

  1. Desde la navegación de IBM Cloud Object Storage, pulse Credenciales de servicio.

  2. Pulse Nueva credencial + y proporcione un nombre y seleccione un rol.

  3. Pulse Opciones avanzadas y habilite la opción Include HMAC Credential.

  4. Pulse Añadir para generar la credencial de servicio.

  5. Pulse Ver credenciales y copie los valores access_key_id y secret_access_key.

  6. Edite el archivo de configuración de lithops y añada las claves siguientes:

    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>
    

Opción 3 (clave de API de IBM IAM) para Lithops

  1. Si no dispone de una clave de API de IAM, vaya al panel de control de IBM IAM.

  2. Pulse Crear una clave de API de IBM Cloud. Especifique un nombre y una descripción opcional para la clave de API y pulse Crear.

  3. Copie la clave de API de IAM generada (puede ver la clave sólo cuando se crea, así que asegúrese de copiarla).

  4. Edite el archivo de configuración de lithops y añada las claves siguientes:

    lithops:
        storage_backend: ibm_cos
    
    ibm:
        iam_api_key: <IAM_API_KEY>
    
    ibm_cos:
        endpoint   : <REGION_ENDPOINT>  
        private_endpoint : <PRIVATE_REGION_ENDPOINT>
    

Despliegue el primer trabajo de Code Engine utilizando Lithops

Ejecute el siguiente ejemplo de hello world,

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()

Pasos siguientes para Lithops

Puede encontrar más ejemplos y casos de uso, así como formular preguntas, en la página del proyecto Lithops.