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
- Instalar a CLI do Code Engine.
- Criar e trabalhar com um projeto do Code Engine.
- Localize e configure sua variável de ambiente
kubeconfig.
Instalando o Lithops
-
Instalar Lithops.
-
Instalar a versão Docker(edição comunitária).
-
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,
- Crie uma conta do IBM Cloud Object Storage.
- Crie um depósito na região que você deseja usar.
- 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.
- Crie as credenciais para acessar sua conta IBM Cloud Object Storage. Escolha uma opção
Opção 1 (chave de API) para o Lithops
-
Na navegação do IBM Cloud Object Storage, clique em Credenciais de serviço.
-
Clique em Nova credencial +, forneça um nome e selecione uma função.
-
Clique em Incluir para gerar a credencial de serviço.
-
Clique em Visualizar credenciais e copie o valor
apikey. -
Edite seu arquivo de configuração
lithopse 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
-
Na navegação do IBM Cloud Object Storage, clique em Credenciais de serviço.
-
Clique em Nova credencial +, forneça um nome e selecione uma função.
-
Clique em Opções avançadas e ative a opção
Include HMAC Credential. -
Clique em Incluir para gerar a credencial de serviço.
-
Clique em Visualizar credenciais e copie os valores
access_key_idesecret_access_key. -
Edite o seu arquivo de configuração
lithopse 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
-
Se você não tiver uma chave de API do IAM, navegue até o Painel do IBM IAM.
-
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.
-
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).
-
Edite o seu arquivo de configuração
lithopse 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.