Trabalhando com tarefas e execuções de tarefas
Saiba como executar tarefas no IBM Cloud® Code Engine. Um trabalho executa uma ou mais instâncias de seu código executável em paralelo. Ao contrário dos aplicativos, que manipulam solicitações de HTTP, as tarefas são projetadas para executar uma vez e encerrar. Ao criar uma tarefa, é possível especificar informações de configuração de carga de trabalho que são usadas cada vez que a tarefa é executada.
Antes de Iniciar
- Entenda os conceitos de cargas de trabalho de trabalho em lote em Code Engine. Para obter mais informações sobre trabalhos em lote, consulte Carga de trabalho de trabalhos em lote.
- Planeje e escolha a sua abordagem para fazer o seu código executar como um componente de tarefa do Code Engine. Para obter mais informações sobre os tipos de carga de trabalho Code Engine a serem criados, consulte Planejamento para Code Engine.
- Você pode trabalhar com trabalhos e execuções de trabalhos de duas maneiras:
- Se quiser usar o console Code Engine, vá para Code Engine overview(Visão geral).
- Se você quiser usar a CLI, configure o seu ambiente da CLI do Code Engine.
O Code Engine fornece métodos de definição de recurso customizado (CRD). Para obter mais informações, consulte os métodos CRD em lote.
Como fazer para que meu código seja executado como um componente de tarefa do Code Engine?
Não importa se o seu código existe como código-fonte em um arquivo local ou em um repositório Git, ou se o seu código é uma imagem de contêiner existente em um registro público ou privado, o Code Engine oferece uma maneira simplificada de executar seu código como um trabalho.
-
Se você tiver uma imagem de contêiner, de acordo com o padrão Open Container Initiative(OCI), precisará fornecer apenas uma referência à imagem, que aponta para o local do registro do contêiner ao criar o trabalho. Você pode criar seu trabalho a partir de imagens em um registro público ou privado e, em seguida, acessar a imagem referenciada na execução do trabalho.
-
Se estiver começando com um código-fonte localizado em um repositório Git, você poderá optar por apontar para o local do código-fonte, e o Code Engine se encarregará de criar a imagem a partir do código-fonte e de criar o trabalho com uma única operação. Neste cenário, o Code Engine faz upload da sua imagem para o IBM Cloud® Container Registry. Para saber mais, consulte Criando uma tarefa por meio do código-fonte do repositório. Se você quiser mais controle sobre a construção da sua imagem, poderá optar por construir a imagem com o Code Engine antes de criar sua tarefa e executá-la.
-
Se estiver começando com o código-fonte em uma estação de trabalho local, você poderá optar por apontar para o local do código-fonte, e o Code Engine cuidará da criação da imagem a partir do código-fonte e da criação do trabalho com um único comando da CLI. Neste cenário, o Code Engine faz upload da sua imagem para o IBM Cloud® Container Registry. Para saber mais, consulte Criando sua tarefa por meio do código-fonte local com a CLI. Se você quiser mais controle sobre a construção da sua imagem, poderá optar por construir a imagem com o Code Engine antes de criar sua tarefa e executá-la.
Depois de criar e executar sua tarefa, também é possível atualizá-la usando qualquer uma das maneiras anteriores, independentemente de como você criou ou atualizou previamente sua tarefa.
Quando você trabalhar com empregos, tenha em mente os seguintes aspectos importantes.
- Ao contrário das imagens do aplicativo, as imagens da tarefa não têm um servidor HTTP.
- O programa executável na imagem deve sair com um código zero para ser considerado bem-sucedido.
- A sua imagem pode ser transferida por download por meio de um registro de imagem público ou privado. Para obter mais informações, consulte Acessando registros de contêiner.
Ao executar sua tarefa, a versão mais recente de sua imagem de contêiner referenciada é usada para a execução da tarefa, a menos que uma tag seja especificada para a imagem. Se uma tag for especificada para a imagem, a imagem marcada será usada para a execução da tarefa.
Considerações para manipulação de HTTP
Quando você está trabalhando com tarefas (ou apps), é útil estar ciente do tratamento HTTP básico no Code Engine. Veja Considerações para manipulação HTTP
Opções para criar e executar uma tarefa
Saiba mais sobre as opções que você pode especificar ao criar ou executar a sua tarefa. Observe que as opções podem variar entre o console e a CLI.
Memória e CPU para tarefas
Ao implementar o trabalho, você pode especificar a quantidade de memória e CPU que o trabalho pode consumir. Essas quantidades podem variar, dependendo se a sua tarefa faz processamento intensivo de informações, faz uso intensivo de memória ou é balanceada.
Por padrão, sua tarefa recebe 4 G de memória e 1 vCPU. Para obter mais informações sobre a seleção de memória e CPU, consulte Combinações de memória e CPU suportadas.
Criando e executando uma tarefa com comandos e argumentos
É possível definir comandos e argumentos que podem ser usados pela sua tarefa no tempo de execução ao criar ou executar sua tarefa.
É possível incluir comandos e argumentos na sua tarefa usando a CLI ou o console.
Para incluir comandos e argumentos por meio do console, use os campos Command e Arguments.
Para incluir comandos e argumentos usando a CLI, inclua as opções --cmd e --args em seu comando job create ou jobrun submit.
Para obter mais informações sobre como definir comandos e argumentos, consulte Definindo comandos e argumentos para as suas cargas de trabalho do Code Engine.
Criando e executando uma tarefa com variáveis de ambiente
É possível definir e configurar variáveis de ambiente como pares chave-valor que podem ser usados pela sua tarefa no tempo de execução.
É possível definir variáveis de ambiente quando você cria sua tarefa ou atualiza uma tarefa existente por meio do console ou com a CLI. É possível criar variáveis de ambiente para suas tarefas que referenciem totalmente um configmap (ou segredo) ou que referenciem chaves individuais em um configmap (ou segredo).
Para obter mais informações sobre a definição de variáveis de ambiente, consulte Trabalhando com variáveis de ambiente.
Criando e executando uma tarefa com segredos e configmaps
Em Code Engine, os segredos e configmaps podem ser usados por seu trabalho por meio de variáveis de ambiente.
Os segredos e configmaps são pares chave-valor. Quando mapeados para variáveis de ambiente, os relacionamentos NAME=VALUE são configurados de tal forma que o nome da variável de ambiente corresponde à "key" de cada entrada
nesses mapas, e o valor da variável de ambiente é o "value" dessa chave.
Sua tarefa pode usar variáveis de ambiente para referenciar totalmente um configmap (ou segredo) ou para referenciar chaves individuais em um configmap (ou segredo).
Para obter mais informações, consulte Referenciando segredos usando variáveis de ambiente e Referenciando configmaps usando variáveis de ambiente.
E se eu quiser que meu trabalho corra indefinidamente?
Geralmente, os empregos são projetados para executar uma única vez e sair com um tempo máximo de execução.
No entanto, suponhamos que você queira constantemente pesquisar uma loja de dados de terceiros. É possível escolher criar um aplicativo; no entanto, a porta do aplicativo deve permanecer aberta para manipular solicitações HTTP. Em vez disso, se você não desejar atender às solicitações de HTTP, será possível optar por criar uma tarefa que seja executada sem um tempo máximo de execução e não atingir o tempo limite.
Com Code Engine, você pode escolher o mode do seu trabalho. Para trabalhos onde se aplica um tempo máximo de execução, use o modo task para seus empregos. As instâncias falhadas são reiniciadas por limite de novas tentativas
de emprego. Esse modo é o comportamento padrão para empregos.
Se você deseja criar um trabalho que pode executar indefinidamente e não tempo fora, use o modo daemon para seus empregos. As instâncias falhadas são automaticamente reiniciadas indefinidamente.
Com Code Engine, você paga por apenas os recursos que você usa. Quando o seu job for executado no modo daemon, esteja ciente de que o job está sempre em execução até que você exclua o job.
Para obter mais informações, consulte Criando e executando um job que executa indefinidamente comandos.
Considerações sobre cotas de emprego
Ao trabalhar com aplicativos, funções e tarefas em lote, esses recursos são executados no contexto de um projeto do Code Engine. As cotas de recursos são definidas por projeto e os limites se aplicam a aplicativos, funções e tarefas em lote.
Para obter mais informações sobre limites do Code Engine, consulte Limites e cotas para o Code Engine.
Limpeza de execuções de trabalho concluídas
As execuções de trabalho concluídas são automaticamente excluídas após uma semana.
Próximas etapas
Agora que você está familiarizado com os principais conceitos de trabalho com tarefas do Code Engine, você está pronto para criar e executar tarefas? Consulte
- Criando uma tarefa a partir de imagens em um registro público
- Criando uma tarefa de imagens no IBM Cloud Container Registry.
- Criando uma tarefa de imagens em um registro privado.
- Criando uma tarefa a partir do código-fonte do repositório.
- Executando uma tarefa
Para obter mais informações sobre como trabalhar com empregos, consulte