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 do 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

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?

Quer seu código esteja no formato de código-fonte em um arquivo local ou em um repositório do Git, quer seja uma imagem de contêiner armazenada em um registro público ou privado, o Code Engine oferece uma maneira simplificada de executar seu código como uma tarefa.

  • Se você tiver uma imagem de contêiner, de acordo com o padrão da Open Container Initiative(OCI), será necessário fornecer apenas uma referência à imagem, que aponte para o local do seu registro de contêineres ao criar sua tarefa. Você pode criar seu trabalho a partir de imagens em um registro público ou privado e, em seguida, acessar a imagem referenciada durante a execução do seu trabalho.

  • Se você estiver começando com um código-fonte localizado em um repositório do Git, pode optar por indicar o local do seu código-fonte, e o Code Engine se encarregará de compilar a imagem a partir do seu código-fonte e criar a tarefa em 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 você estiver começando com o código-fonte em uma estação de trabalho local, pode indicar o local onde ele está armazenado, e o Code Engine se encarregará de compilar a imagem a partir do seu código-fonte e criar a tarefa com um único comando de linha de comando. 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.

Ao trabalhar com tarefas, tenha em mente os seguintes pontos 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 encerrar 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 implantar seu trabalho, você pode especificar a quantidade de memória e de CPU que ele poderá 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, o seu job pode utilizar secrets e configmaps 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 o Code Engine, você paga apenas pelos recursos que utiliza. 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

Para obter mais informações sobre como trabalhar com tarefas, consulte