Executando tarefas com a estrutura do Lithops

O Lithops é uma estrutura de software livre projetada para escalar maciçamente os seus aplicativos Python. O Lithops fornece um impulso simples para a experiência do IBM Cloud® Code Engine para que seja possível se concentrar em seu código do Python, enquanto o Lithops se concentra na implementação de seu código em grande escala ao monitorar execuções, obtendo resultados e muito mais. O Lithops permite a integração nativa do Python com o Code Engine usando a API do Lithops. Para obter mais informações sobre o Lithops, consulte o guia de início rápido do Lithops.

Executando o seu primeiro fluxo usando a estrutura do Lithops

Antes de você poder executar tarefas que referenciem a estrutura do Lithops, será necessário primeiro instalar o Lithops e configurar um back-end de armazenamento.

Antes de Iniciar

Instalando o Lithops

  1. Instalar Lithops.

  2. Crie o arquivo de configuração do Lithops.

  3. Instalar a versão Docker(edição comunitária).

  4. Efetue login no Docker.

    docker login
    

Configurando um back-end de armazenamento para o Lithops

Selecione um back-end de armazenamento suportado; por exemplo, IBM Cloud Object Storage.

Para configurar o IBM Cloud Object Storage,

  1. Crie uma conta do IBM Cloud Object Storage.
  2. Crie um depósito na região que você deseja usar.
  3. Na navegação lateral, clique em Terminais para localizar o seu terminal de API. Deve-se copiar os terminais público e privado da região na qual você criou o seu depósito.
  4. Crie as credenciais para acessar sua conta IBM Cloud Object Storage. Escolha uma opção

Opção 1 (chave de API) para o Lithops

  1. Na navegação do IBM Cloud Object Storage, clique em Credenciais de serviço.

  2. Clique em Nova credencial +, forneça um nome e selecione uma função.

  3. Clique em Incluir para gerar a credencial de serviço.

  4. Clique em Visualizar credenciais e copie o valor apikey.

  5. Edite seu arquivo de configuração lithops e inclua as chaves a seguir.

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

Opção 2 (credenciais HMAC do IBM Cloud Object Storage) para o Lithops

  1. Na navegação do IBM Cloud Object Storage, clique em Credenciais de serviço.

  2. Clique em Nova credencial +, forneça um nome e selecione uma função.

  3. Clique em Opções avançadas e ative a opção Include HMAC Credential.

  4. Clique em Incluir para gerar a credencial de serviço.

  5. Clique em Visualizar credenciais e copie os valores access_key_id e secret_access_key.

  6. Edite o seu arquivo de configuração lithops e inclua as chaves a seguir:

    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>
    

Opção 3 (chave de API do IBM IAM) para o Lithops

  1. Se você não tiver uma chave de API do IAM, navegue até o Painel do IBM IAM.

  2. Clique em Criar uma chave de API da IBM Cloud. Insira um nome e uma descrição opcional para a sua chave de API e clique em Criar.

  3. Copie a chave de API do IAM gerada (Será possível ver a chave apenas quando você a criar. Então, certifique-se de copiá-la).

  4. Edite o seu arquivo de configuração lithops e inclua as chaves a seguir:

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

Implementar a sua primeira tarefa do Code Engine usando o Lithops

Execute o exemplo hello world a seguir,

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

Próximas etapas para o Lithops

Você pode encontrar mais exemplos e casos de uso, além de fazer perguntas, na página do projeto Lithops.