Criando a tarefa por meio do código-fonte local com a CLI
É possível criar a tarefa diretamente por meio do código-fonte em sua estação de trabalho local com a CLI do IBM Cloud® Code Engine. Use o comando job create para construir uma imagem por meio da origem local e para
definir a configuração para sua tarefa para referenciar esta imagem construída.
Ao enviar uma construção que extrai código de um diretório local, seu código-fonte é empacotado em um archive. O Code Engine automaticamente transfere por upload a imagem para um namespace do IBM Cloud® Container Registry em sua conta e, em seguida,
cria a sua tarefa para referenciar esta imagem construída. Note que você só pode destinar o IBM Cloud Container Registry para suas construções locais. Para este cenário, é necessário fornecer apenas um nome para a tarefa e o caminho para a origem
local. Para obter uma listagem completa de opções, consulte o comando ibmcloud ce job create.
Para obter informações sobre permissões necessárias para acessar registros de imagens, consulte Configurando autoridades para registros de imagens.
É possível optar por ignorar certos padrões de arquivo de dentro do seu código-fonte usando o arquivo .ceignore, que se comporta de forma semelhante a um arquivo .gitignore. Por exemplo, entradas para um arquivo .ceignore para um aplicativo node.js podem incluir node_modules e .npm. Para ver mais exemplos de padrões de arquivos a serem ignorados, consulte o repositório .gitignore em GitHub.
O IBM Cloud® Container Registry é necessário para este cenário.
Antes de Iniciar
- Configure o seu ambiente da CLI do Code Engine.
- Criar e trabalhar com um projeto.
- A origem deve estar em um local acessível em sua estação de trabalho local.
Este exemplo usa as amostras https://github.com/IBM/CodeEngine; em particular, a amostra helloworld.
-
Faça download da origem de amostra
https://github.com/IBM/CodeEnginepara sua estação de trabalho local com o comando a seguir.git clone https://github.com/IBM/CodeEngine -
Mude para o diretório
CodeEngine\helloworld. -
No diretório
CodeEngine\helloworld, crie e a tarefamyjob-local, que usa uma imagem que é construída por meio da origemCodeEngine\helloworldem sua estação de trabalho local. Este comando automaticamente constrói e envia por push a imagem para um namespace do Container Registry em sua conta. Se você não tiver um namespace do Container Registry, o Code Engine criará automaticamente um para você. Ao incluir a opção--wait, isso especifica que a criação de tarefa espere a conclusão da construção da imagem.ibmcloud ce job create --name myjob-local --build-source . --waitO
.indica que a origem de construção está localizada em seu diretório atualmente em funcionamento.Saída de exemplo
Creating job 'myjob-local'... Packaging files to upload from source path '.'... Submitting build run 'myjob-local-run-220420-150457582'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' to check the build run status. OKComo especificamos a opção
--wait, a saída dojob createcomando fornece informações sobre o andamento da execução da compilação antes que o trabalho seja criado.Neste exemplo, a imagem construída é transferida por upload para o namespace do
ce--abcde-glxo4kabcdeno Container Registry.A tabela a seguir resume as opções que são usadas com o comando
job createneste exemplo. Consulte o comandoibmcloud ce job createpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO nome da tarefa. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
- O nome deve começar e terminar com um caractere alfanumérico minúscula.
- O nome deve ter 63 caracteres ou menos e pode conter letras, números e hifens (-).
--build-sourceO caminho para a origem local. --waitEspecifica esperar que a construção da imagem seja concluída antes da criação da tarefa. -
(opcional) Use o comando
job getpara exibir informações sobre a tarefa, incluindo informações sobre a construção.ibmcloud ce job get --name myjob-localSaída de exemplo
[...] Name: myjob-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local Resource Allocation: CPU: 1 Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 Build Information: Build Run Name: myjob-local-run-220420-150457582 Build Type: local Build Strategy: dockerfile-medium Timeout: 600 Source: . Dockerfile: Dockerfile Build Run Summary: Succeeded Build Run Status: Succeeded Build Run Reason: All Steps have completed executing Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' for details.. [...] -
Agora que a tarefa foi criada e sua imagem construída, execute a tarefa que referencia a imagem construída. Este comando de exemplo executa a execução de tarefa
myjobrun-localcom base na configuração de tarefamyjob-local.ibmcloud ce jobrun submit --name myjobrun-local --job myjob-local -
(opcional) Visualize os detalhes da execução de tarefa.
ibmcloud ce jobrun get --name myjobrun-localSaída de exemplo
Getting jobrun 'myjobrun-local'... Getting instances of jobrun 'myjobrun-local'... Getting events of jobrun 'myjobrun-local'... Run 'ibmcloud ce jobrun events -n myjobrun-local' to get the system events of the job run instances. Run 'ibmcloud ce jobrun logs -f -n myjobrun-local' to follow the logs of the job run instances. OK Name: myjobrun-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Job Ref: myjob-local Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 2m40s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 2m44s 2m44s Running True 2m40s 2m40s Complete True 2m40s 2m40s Events: Type Reason Age Source Messages Normal Updated 2m41s (x3 over 2m45s) batch-job-controller Updated JobRun "myjobrun-local" Normal Completed 2m41s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-local-0-0 0/1 Succeeded 0 2m45s
Agora que a tarefa foi criada e executada por meio do código-fonte do repositório, é possível atualizar a tarefa para atender às suas necessidades usando o comando ibmcloud ce job update.
Para obter mais informações sobre a atualização de tarefas, consulte Atualizando uma tarefa. Se você deseja atualizar a origem para usar com a tarefa, deve fornecer a opção --build-source no comando job update.
Em vez de construir sua imagem por meio da origem local e criar sua tarefa com um único comando, é possível optar por construir por meio da origem local primeiro antes de criar sua tarefa. Consulte Criando uma Configuração de Construção que Puxa a Origem de uma Estação de Trabalho Local
Quando o seu trabalho é criado a partir de origem local ou de código-fonte do repositório com a CLI, a execução de construção resultante não é baseada em uma configuração de construção. As execuções de construção que completam são finalmente excluídas automaticamente. As execuções de construção que não são baseadas em uma configuração de construção são excluídas após 1 hora se a execução da construção for bem-sucedida. Se a execução da construção não for bem-sucedida, esta execução de construção será excluída após 24 horas. Você só pode exibir informações sobre esse build run com a CLI. Não é possível visualizar esta construção executada no console.
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 os exemplos no repositório “ IBM Cloud Code Engine ” GitHub.