Executando e atualizando tarefas
Com este tutorial, execute uma tarefa em lote usando o console do 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
Para obter mais informações sobre trabalhos em lote, consulte Carga de trabalho de trabalhos em lote.
Para usar o console do Code Engine, acesse Code Engine overview.
Todos os usuários do Code Engine são obrigados a ter uma conta pré-paga. Os tutoriais podem gerar custos adicionais. Use o Estimador de custos para gerar uma estimativa de custo com base em seu uso planejado. Para obter mais informações, consulte Code Engine pricing.
Criando uma tarefa
Crie uma tarefa Code Engine usando a imagem icr.io/codeengine/helloworld. Esta tarefa imprime Hello from helloworld! I'm a task job!.
- Abra a página Code Engine Visão geral.
- Selecione “Começar a criar ”.
- Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que deve-se ter um projeto selecionado para criar uma tarefa.
- Selecione Tarefa.
- Digite um nome para a tarefa e especifique
icr.io/codeengine/helloworldpara a imagem do contêiner. Use um nome para a sua tarefa que seja exclusivo dentro do projeto. Para este exemplo, não é necessário modificar os valores padrão para variáveis de ambiente ou configurações de tempo de execução. Para obter mais informações sobre o código que é usado para este exemplo, consultehelloworld. - Clique em Criar.
Executando uma tarefa
Depois de criar sua tarefa e especificar suas informações de configuração da carga de trabalho, você estará pronto para executar sua tarefa. É possível substituir algumas informações de configuração.
Note que ao executar a tarefa, a versão mais recente da imagem de contêiner referenciada é transferida por download e implementada, a menos que você tenha especificado uma tag para a imagem. Se uma tag for especificada para a imagem, a imagem identificada será usada para a tarefa.
-
Navegue para a sua página de tarefa.
- Na página “Projetos” do Code Engine, clique no nome do seu projeto.
- Clique em “Trabalhos” e, em seguida, clique na guia “Trabalhos ”.
- Clique no nome da tarefa que você deseja executar.
-
Na sua página de tarefa, clique em Enviar tarefa para enviar uma tarefa que é baseado na configuração atual.
-
No painel “Enviar tarefa”, aceite todos os valores padrão e clique em “Enviar tarefa ” novamente para executar sua tarefa.
No painel “Enviar tarefa”, você pode revisar e, se desejar, alterar os valores de configuração padrão, como instâncias, CPU, memória, número de tentativas de execução da tarefa e tempo limite da tarefa. Você pode especificar o tamanho da matriz ou os índices da matriz para as instâncias de trabalho paralelo a serem executadas. No campo “Tamanho da matriz ”, informe o número de instâncias a serem executadas em paralelo para este trabalho. Para índices de matriz,
forneça uma lista separada por vírgulas com seu conjunto personalizado de índices. Por exemplo, para executar esse trabalho com um conjunto personalizado de índices do tipo “ 5 ”, especifique 3,12-14,25. Também é
possível especificar um valor customizado para o tamanho da matriz de tarefa, que atualiza o valor da variável de ambiente JOB_ARRAY_SIZE injetada automaticamente. Depois de enviar esta tarefa, o sistema exibirá o status das instâncias de sua tarefa na página Detalhes da tarefa. Se você especificar o tamanho da matriz em vez dos índices da matriz no painel “Enviar tarefa”, na seção “ Configuration ” da página de detalhes da tarefa, essas informações serão apresentadas como índices da matriz.
Acessando detalhes da tarefa
Localize detalhes sobre sua tarefa.
Após enviar sua tarefa, os resultados da execução da tarefa específica estarão disponíveis no console na página de detalhes da execução da tarefa. No console, também é possível visualizar detalhes de sua tarefa e execuções de tarefas específicas na página Tarefas.
- Para visualizar detalhes da tarefa, clique na guia Tarefas e clique no nome da tarefa com a qual deseja trabalhar.
- Para visualizar detalhes de uma execução da tarefa específica, clique na guia Execuções da tarefa e clique no nome da execução da tarefa com a qual você deseja trabalhar..
Se alguma das instâncias do seu trabalho não tiver sido executada, você pode tomar as seguintes medidas:
- Clique em “Reexecutar índices com falha” para executar novamente a tarefa para os índices que apresentaram falha. No painel “Enviar tarefa”, verifique e, se desejar, altere os valores de configuração, incluindo os índices da matriz. A seção “Índices da matriz ” lista automaticamente os índices das instâncias de execução da tarefa que falharam.
Para solucionar erros comuns de índice de execução de trabalho, consulte Entendendo por que os índices de execução de trabalho podem falhar.
- Clique em “Enviar tarefa ” para enviar a tarefa relativa aos índices com falha.
É possível visualizar logs da tarefa após você incluir recursos de criação de log. Para obter mais informações, consulte Visualizando logs da tarefa por meio do console.
Atualizando uma tarefa
Você pode gerenciar seu trabalho ajustando sua configuração, o que inclui atualizar o código, a imagem do contêiner, os argumentos ou comandos do código, os recursos da instância de execução ou as variáveis de ambiente.
Quando o trabalho estiver no estado “pronto”, você poderá atualizá-lo. Vamos atualizar o trabalho que você criou anteriormente para alterar a saudação e a saída das variáveis de ambiente atualizando uma variável de ambiente. Quando uma solicitação
é enviada ao trabalho de exemplo “ icr.io/codeengine/helloworld ”, o trabalho lê a variável de ambiente “ TARGET ” e exibe “ "Hello ${TARGET}!" ”. Se essa variável de ambiente estiver vazia,
é retornado o valor “ "Hello World!" ”. Para obter mais informações sobre o código usado neste exemplo, consulte helloworld.
-
Navegue para a sua página de tarefa.
- Na página “Projetos” do Code Engine, clique no nome do seu projeto.
- Clique em “Trabalhos” e, em seguida, clique na guia “Trabalhos ”.
- Clique no nome da tarefa que você deseja atualizar.
-
Na guia Configuração> Variáveis de ambiente, clique em Incluir variável de ambiente. Inclua uma variável de ambiente literal com o nome de
TARGETcom o valorSunshine. Oicr.io/codeengine/helloworldemite como saída a mensagem,Hello <value_of_TARGET>!>. -
Clique em “Adicionar” para adicionar sua variável de ambiente.
-
Clique em Implementar.
-
Clique em Enviar tarefa.
-
Na área de janela Enviar tarefa, revise e, opcionalmente, mude os valores de configuração padrão, como instâncias, CPU, memória, número de novas tentativas de tarefa e tempo limite de tarefa. Você pode especificar o tamanho da matriz ou os índices da matriz para as instâncias de trabalho paralelo a serem executadas. No campo “Tamanho da matriz ”, informe o número de instâncias a serem executadas em paralelo para este trabalho. Para índices de matriz, forneça uma lista separada por vírgulas com seu conjunto personalizado de índices. Por exemplo, para executar esse trabalho com um conjunto personalizado de índices do tipo “
5”, especifique3,12-14,25. Clique em Enviar tarefa novamente para executar sua tarefa. O sistema exibe o status das instâncias de sua tarefa na página Detalhes da tarefa. -
Por visualização dos registros de tarefas no console para este trabalho, o resultado do trabalho é
Hello Sunshine!.
Próximas etapas
-
Depois de criar sua tarefa, envie-a para executá-la. Consulte Executar uma tarefa. É possível executar sua tarefa várias vezes.
-
Depois de executar sua tarefa, para visualizar detalhes da sua tarefa e das execuções de tarefa, consulte Acessar detalhes da tarefa.
-
Agora que sua tarefa foi criada, considere tornar suas tarefas orientadas para evento. Ao usar assinaturas de evento, é possível acionar suas tarefas por meio de planejamentos periódicos ou configurar sua tarefa para reagir a eventos como uploads de arquivo.
-
É possível atualizar sua tarefa e seu código referenciado de qualquer uma das maneiras a seguir, independentemente de como você criou ou atualizou previamente a sua tarefa.
-
Se você tiver uma imagem de contêiner, de acordo com o padrão da Open Container Initiative(OCI), basta fornecer apenas uma referência à imagem, que aponte para o local do seu registro de contêineres ao criar (ou atualizar) sua tarefa. Você pode criar (ou atualizar) 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ê criou o seu job usando o comando
job createe especificou a opção--build-sourcepara construir a imagem do container a partir de origem local ou repositório, e deseja alterar o seu job para apontar para uma imagem de container diferente, deve-se primeiro remover a associação da construção a partir do seu job. Por exemplo, executeibmcloud ce job update -n JOB_NAME --build-clear. Depois de remover a associação da construção a partir do seu trabalho, você pode atualizar o trabalho para referencia uma imagem diferente. -
Se você está começando com código-fonte que reside em um repositório Git, é possível optar por deixar que o Code Engine cuide da construção da imagem por meio de sua origem e implemente (ou atualize) o app com uma operação única. 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 (ou atualizar) sua tarefa e executá-la.
-
Se você está começando com código-fonte que reside em uma estação de trabalho local, é possível optar por deixar que o Code Engine cuide da construção da imagem por meio de sua origem e da criação da tarefa com um comando da CLI único. 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 (ou atualizar) sua tarefa e executá-la.
Por exemplo, você pode optar por deixar que o Code Engine cuide da construção de sua origem local enquanto você cuida do desenvolvimento de sua origem para a tarefa. Em seguida, após o amadurecimento da imagem, é possível atualizar a tarefa para referenciar a imagem específica que desejar. É possível repetir esse processo conforme necessário.
Ao executar sua tarefa atualizada, 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.
-
Procurando mais exemplos de código? Confira o repositório Samples for IBM Cloud Code Engine GitHub.