작업 업데이트
콘솔 또는 CLI에서 정의된 작업을 변경하고 업데이트된 작업을 실행할 수 있습니다. 작업의 변경사항에는 코드 컨테이너 이미지, 코드 인수 또는 명령, 런타임 인스턴스 리소스 또는 환경 변수의 업데이트가 포함될 수 있습니다.
작업이 실행될 때마다 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 작업 실행에 사용됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 작업 실행에 사용됩니다.
제출된 일괄처리 작업은 가능한 경우 병렬로 실행됩니다. 제출된 작업의 수 또는 크기가 구성된 할당량 한계(예: 실행 중인 인스턴스의 최대 수)를 초과하는 경우 Code Engine은(는) 작업을 큐에 대기시키고 충분한 작업이 완료될 때까지 실행을 연기합니다. 메모리와 CPU를 포함한 작업의 할당량 및 한계에 대한 자세한 정보는 Code Engine의 한계 및 할당량을 참조하십시오.
작업 작성 방식이나 이전의 업데이트 방식에 관계없이 다음 방법 중 하나로 작업을 업데이트하고 참조 코드를 업데이트할 수 있습니다.
-
Open Container Initiative(OCI)표준에 따라 컨테이너 이미지가 있는 경우, 작업을 생성(또는 업데이트)할 때 해당 이미지의 위치로 연결되는 컨테이너 레지스트리 경로를 참조로만 제공하면 됩니다. 공개 레지스트리나 비공개 레지스트리에 있는 이미지를 사용하여 작업을 생성(또는 업데이트)한 다음, 작업 실행 시 참조된 이미지에 액세스할 수 있습니다.
job create명령을 사용하여 작업을 작성하고 로컬 또는 저장소 소스에서 컨테이너 이미지를 빌드하도록--build-source옵션을 지정했으며 다른 컨테이너 이미지를 가리키도록 작업을 변경하려는 경우 먼저 작업에서 빌드의 연관을 제거해야 합니다. 예를 들어,ibmcloud ce job update -n JOB_NAME --build-clear를 실행하십시오. 작업에서 빌드의 연관을 제거한 후 다른 이미지를 참조하도록 작업을 업데이트할 수 있습니다. -
Git 저장소에 있는 소스 코드로 시작하는 경우, Code Engine에서 한 번의 오퍼레이션으로 소스에서 이미지를 빌드하고 작업을 작성하거나 업데이트하도록 선택할 수 있습니다. 이 경우 Code Engine은 이미지를 IBM Cloud® Container Registry에 업로드합니다. 자세한 정보는 저장소 소스 코드에서 작업 작성을 참조하십시오. 이미지 빌드를 더 많이 제어하려면 작업을 작성 또는 업데이트하고 작업을 실행하기 전에 Code Engine을 사용하여 이미지를 빌드하도록 선택할 수 있습니다.
-
로컬 워크스테이션에 있는 소스 코드로 시작하는 경우, Code Engine에서 하나의 CLI 명령으로 소스에서 이미지를 빌드하고 작업을 작성하도록 선택할 수 있습니다. 이 경우 Code Engine은 이미지를 IBM Cloud® Container Registry에 업로드합니다. 자세한 정보는 CLI를 사용하여 로컬 소스 코드에서 작업 작성을 참조하십시오. 이미지 빌드를 더 많이 제어하려면 작업을 작성 또는 업데이트하고 작업을 실행하기 전에 Code Engine을 사용하여 이미지를 빌드하도록 선택할 수 있습니다.
예를 들어, 사용자가 작업에 대한 소스 개발을 진행하는 동안 Code Engine에서 로컬 소스의 빌드를 처리하도록 선택할 수 있습니다. 그런 다음 이미지가 만기되면 원하는 특정 이미지를 참조하도록 작업을 업데이트할 수 있습니다. 이 프로세스는 필요에 따라 반복할 수 있습니다.
업데이트된 작업을 실행할 때 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 작업 실행에 사용됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 작업 실행에 사용됩니다.
콘솔에서 작업 업데이트
작업이 준비 상태가 되면 작업을 업데이트할 수 있습니다. 이전에 만든 myjob 작업을 업데이트하여 환경 변수를 업데이트하여 인사말과 환경 변수 출력을 변경해 보겠습니다. 이 icr.io/codeengine/helloworld 샘플 작업에 요청이 전송되면, 해당 작업은 환경 변수 TARGET 를 읽어들이고 "Hello ${TARGET}!" 를 출력합니다. 이 환경 변수가 비어 있으면 "Hello World!"가 리턴됩니다. 이 예제에 사용된 코드에 대한 자세한 내용은 helloworld.
-
작업 페이지로 이동하십시오.
- Code Engine 의 ‘프로젝트’ 페이지에서 해당 프로젝트의 이름을 클릭하세요.
- ‘작업’을 클릭한 다음 ‘작업 ’ 탭을 클릭합니다.
- 업데이트하려는 작업의 이름을 클릭하세요.
-
구성 > 환경 변수 탭에서 환경 변수 추가를 클릭합니다.
TARGET값과 함께Sunshine이름으로 리터럴 환경 변수를 추가하십시오.icr.io/codeengine/helloworld이Hello <value_of_TARGET>!>메시지를 출력합니다. -
‘추가’를 클릭하여 환경 변수를 추가하세요.
-
배치를 클릭하십시오.
-
작업 제출을 클릭하십시오.
-
이번에는 작업 제출 분할창에서 CPU 값을 지정된 메모리에 적합한 CPU 선택사항 중 하나로 변경하십시오. 올바른 메모리 및 CPU 조합을 사용해야 합니다. 이 작업을 실행하려면 작업 제출을 다시 클릭하십시오. 시스템의 작업 세부사항 페이지에는 작업 상태가 표시됩니다. 작업 세부사항의
Configuration섹션에 있는 업데이트된 CPU 값에 유의하십시오. -
이 작업에 대해 콘솔에서 작업 로그를 보면, 업데이트된 작업의 출력은
Hello Sunshine!입니다.
CLI를 사용하여 작업 업데이트
CLI를 사용하여 기존 작업 구성을 업데이트하거나 새 작업 실행에 대한 변경사항을 지정할 수 있습니다.
CLI를 사용하여 작업 구성 업데이트
ibmcloud ce job update 명령을 사용하여 기존 작업 구성을 업데이트할 수 있습니다.
-
job update명령을 사용하여 다른 이미지를 참조하도록myjob작업을 업데이트하십시오.ibmcloud ce job update --name myjob --image icr.io/codeengine/testjobibmcloud ce job get -n myjob명령을 실행하여 업데이트된 작업의 세부사항을 표시하십시오.출력 예
Name: myjob ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-04T11:56:22-04:00 Last Job Run: Name: myjob-jobrun-abcde Age: 32d Created: 2021-08-06T13:50:02-04:00 Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 [...] -
ibmcloud ce jobrun submit명령을 실행하여 이 업데이트된 작업 구성을 참조하는 작업을 실행하십시오.jobrun submit명령의 경우--job옵션을 사용하여 정의된 작업 구성을 참조하십시오.--name옵션은--job옵션이 지정된 경우에는 필요하지 않지만, 다음 명령 예에서는 이 작업 실행의 이름을 제공하도록--name옵션을 지정합니다.ibmcloud ce jobrun submit --name myjobrun1 --job myjob -
**
ibmcloud ce jobrun get -n myjobrun1**을 실행하여 이 작업 실행의 세부사항을 확인하십시오. 참조된 이미지는 업데이트된 작업 구성을 기반으로 하는icr.io/codeengine/testjob입니다.출력 예
Getting jobrun 'myjobrun1'... Getting instances of jobrun 'myjobrun1'... Getting events of jobrun 'myjobrun1'... [...] Name: myjobrun1 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-15T11:56:22-04:00 Job Ref: myjob Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 11s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 15s 15s Running True 11s 11s Complete True 11s 11s Events: Type Reason Age Source Messages Normal Updated 16s (x3 over 20s) batch-job-controller Updated JobRun "myjobrun1" Normal Completed 16s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun1-0-0 0/1 Succeeded 0 20s
CLI를 사용하여 작업 실행 업데이트
ibmcloud ce jobrun resubmit 명령을 사용하여 작업 실행에 대한 변경사항을 지정할 수 있습니다. jobrun submit 명령은 이전 작업 실행을 참조하는 작업 실행을 다시 제출합니다.
-
jobrun resubmit명령을 사용하여myjobrun1작업 실행을 다시 제출하고 배열 인덱스를0에서1-4로 변경하십시오.--name옵션은jobrun resubmit명령에 필요하지 않지만, 다음 명령 예에서는 이 작업 실행의 이름을 제공하도록--name옵션을 지정합니다.ibmcloud ce jobrun resubmit -jobrun myjobrun1 --array-indices "1-4" --name myjobrunresubmit -
ibmcloud ce jobrun get -n myjobrunresubmit명령을 실행하여 업데이트된 작업 실행의 세부사항을 표시하십시오. 배열 인덱스의 값은 이 작업 실행에 대해 업데이트됩니다.출력 예
Getting jobrun 'myjobrunresubmit'... Getting instances of jobrun 'myjobrunresubmit'... Getting events of jobrun 'myjobrunresubmit'... [...] Name: myjobrunresubmit2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-04T11:56:22-04:00 Job Ref: myjob Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 1-4 Array Size: 4 JOP_ARRAY_SIZE Value: 4 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 34s Instance Statuses: Succeeded: 4 Conditions: Type Status Last Probe Last Transition Pending True 38s 38s Running True 36s 36s Complete True 34s 34s Events: Type Reason Age Source Messages Normal Updated 36s (x7 over 40s) batch-job-controller Updated JobRun "myjobrunresubmit" Normal Completed 36s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrunresubmit-1-0 0/1 Succeeded 0 40s myjobrunresubmit-2-0 0/1 Succeeded 0 40s myjobrunresubmit-3-0 0/1 Succeeded 0 40s myjobrunresubmit-4-0 0/1 Succeeded 0 40s
정의된 작업 구성을 참조하지 않는 CLI를 사용하여 제출된(또는 다시 제출된) 작업 실행은 콘솔에서 볼 수 없습니다.