작업 실행
작업을 작성한 후 작업 정의에 따라 작업을 실행하거나, 특성을 대체하여 작업을 실행할 수 있습니다. 콘솔 또는 CLI에서 작업을 실행하십시오.
작업이 실행될 때마다 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 작업 실행에 사용됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 작업 실행에 사용됩니다.
제출된 일괄처리 작업은 가능한 경우 병렬로 실행됩니다. 제출된 작업의 수 또는 크기가 구성된 할당량 한계(예: 실행 중인 인스턴스의 최대 수)를 초과하는 경우 Code Engine은(는) 작업을 큐에 대기시키고 충분한 작업이 완료될 때까지 실행을 연기합니다. 배치 작업에 대한 자세한 내용은 배치 작업 워크로드를 참조하세요. 메모리와 CPU를 포함한 작업의 할당량 및 한계에 대한 자세한 정보는 Code Engine의 한계 및 할당량을 참조하십시오.
구독으로 생성된 작업은 10분 후에 삭제됩니다. 구독에 대한 자세한 정보는 구독 시작하기를 참조하십시오.
완료된 작업은 일주일 후에 자동으로 삭제됩니다.
콘솔에서 작업 실행
작업을 작성할 때 이를 즉시 실행할 수 있습니다. 그러나 언제든지 작업을 제출하고 다시 제출할 수 있습니다. 또한 이전에 작성한 작업을 제출하거나 다시 제출할 수도 있습니다.
- Code Engine 콘솔을 여십시오.
- 탐색 메뉴에서 프로젝트를 선택하십시오. 프로젝트를 현재 컨텍스트로 선택합니다.
- 개요 페이지의 요약 섹션에서 작업을 선택하거나 탐색 메뉴에서 작업을 선택하십시오.
- 작업 탭을 클릭하고 실행하고자 하는 작업의 이름을 클릭합니다.
- 작업 제출을 클릭하여 작업 제출 대화 상자를 여십시오. 인스턴스, CPU, 메모리, 작업 재시도 횟수, 작업 제한시간과 같은 기본 구성 값을 검토하고 선택적으로 변경하십시오. 이러한 옵션에 대한 자세한 정보는 작업 작성 및 실행 옵션을 참조하십시오.
- 작업 제출을 클릭하여 작업을 실행하십시오. 작업 인스턴스의 상태가 작업 세부사항 페이지에 표시됩니다.
- 작업의 인스턴스 중 하나라도 실행되지 않으면 오류를 해결한 다음, 실패한 인덱스를 다시 실행을 클릭하여 실패한 인덱스에 대해 작업을 다시 실행합니다. "작업 제출" 창에서 구성 값을 검토하고, 필요에 따라 변경합니다. 배열 인덱스 섹션 은 실패한 작업 실행 인스턴스의 인덱스를 자동으로 나열합니다. 구성 값을 검토하고 선택적으로 변경한 후 작업 제출을 클릭하여 작업을 실행하십시오.
작업 실행 인덱스 오류에 대한 문제 해결 방법은 작업 실행 인덱스가 실패하는 이유 이해하기를 참고하세요.
기존 작업 실행을 다시 실행할 수도 있습니다. 특정 작업 실행을 다시 실행하려면 작업 실행 탭을 클릭한 후 작업할 작업 실행의 이름을 클릭하십시오. 이 작업 실행을 다시 실행하려면 재실행 을 클릭하십시오.
로깅 기능을 추가한 후에는 작업 로그를 볼 수 있습니다. 자세한 정보는 로그 보기를 참조하십시오.
JOB_INDEX
환경 변수는 작업을 실행할 때마다 작업의 각 인스턴스에 자동으로 삽입됩니다. Code Engine에서 설정하는 환경 변수에 대한 자세한 정보는 작성하지 않은 configmap이 표시됩니다. 삭제할 수 있습니까?를 참조하십시오.
CLI를 사용하여 작업 실행
시작하기 전에
- Code Engine 환경을 설정하십시오.
- 작업을 작성하십시오.
CLI를 사용하여 작업을 실행하려면 jobrun submit
명령을 사용하십시오. 전체 옵션 목록은 ibmcloud ce jobrun submit
명령을 참조하십시오.
CLI를 사용하여 작업 구성을 기반으로 작업을 실행하거나 먼저 작업 구성을 작성하지 않고 작업을 실행할 수 있습니다.
CLI를 사용하여 작업 구성을 기반으로 작업 실행
작업 구성을 작성하면 작업을 더욱 쉽게 여러 번 실행할 수 있습니다.
예를 들어, 다음 jobrun submit
명령은 정의된 myjob
작업 구성에 지정된 컨테이너 이미지를 실행하도록 다섯 개의 새 인스턴스를 작성합니다. 정의된 작업 구성을 참조하려면 --job
옵션을 사용하십시오. --name
옵션은 --job
옵션이 지정된 경우에는 필요하지 않지만,
다음 명령 예에서는 이 작업 실행의 이름을 제공하도록 --name
옵션을 지정합니다. 작업의 경우 cpu
의 기본값은 1
이고 memory
의 기본값은 4G
입니다. 리소스 한계 및 요청은 인스턴스별로 적용되므로 각 인스턴스는 4G 메모리와 1개의 vCPU를 보유합니다. 이 작업은 5 * 4G = 20G 메모리와
5 * 1vCPU = 5vCPU를 할당합니다.
ibmcloud ce jobrun submit --name testjobrun --job myjob --array-indices "1 - 5"
다음 표에는 이 예에서 jobrun submit
명령과 함께 사용되는 옵션이 요약되어 있습니다. 명령 및 해당 옵션에 대한 자세한 정보는 ibmcloud ce jobrun submit
명령을 참조하십시오.
옵션 | 설명 |
---|---|
--name |
이 작업 실행의 이름입니다.
|
--job |
실행할 작업의 이름입니다. --name 및 --image 값을 지정하지 않은 경우 이 값은 필수입니다. |
--array-indices |
작업을 실행하는 데 사용되는 인스턴스의 인덱스를 지정합니다. 하이픈(-) 또는 쉼표(,)로 구분된 색인 목록 또는 범위를 지정하십시오. 예를 들어, 1,3,6,9 또는 1-5,7-8,10 . 최대값은 999999 입니다. 이 값은 선택사항입니다. 기본값은 0 입니다. |
JOB_INDEX
환경 변수는 작업을 실행할 때마다 작업의 각 인스턴스에 자동으로 삽입됩니다. Code Engine에서 설정하는 환경 변수에 대한 자세한 정보는 작성하지 않은 configmap이 표시됩니다. 삭제할 수 있습니까?를 참조하십시오.
CLI를 사용하여 먼저 작업 구성을 작성하지 않고 작업 실행
CLI를 사용하여 먼저 작업 구성을 작성하지 않고 작업 실행을 제출할 수 있습니다. jobrun submit
명령과 함께 사용할 수 있는 jobrun resubmit
및 job create
명령에 동일한 구성 옵션을 지정할 수 있습니다.
예를 들어, 다음 ibmcloud ce jobrun submit
명령은 us.icr.io/mynamespace/myhello_bld
액세스 정보를 사용하여 myregistry
이미지를 참조하도록 작업 실행을
제출합니다. 이 작업 실행은 정의된 작업 구성을 참조하지 않으므로 --name
및 image
옵션의 값을 지정해야 합니다. --name
을 사용하여 이 작업 실행의 이름을 지정하고 --image
를 사용하여 이 작업 실행에 사용되는 이미지의 이름을 제공하십시오. --array-indices
옵션은 다섯 개의 새
인스턴스를 작성하여 컨테이너 이미지를 실행합니다. 작업 실행의 경우 cpu
의 기본값은 1
이고 memory
의 기본값은 4G
입니다. 리소스 한계 및 요청은 인스턴스별로 적용되므로 각 인스턴스는 4G 메모리와 1개의 vCPU를 보유합니다. 이 작업 실행은 5* 4 G = 20G 메모리 및 5 * 1 vCPU = 5 vCPU를 할당합니다.
ibmcloud ce jobrun submit --name myhellojob-jobruna --image us.icr.io/mynamespace/myhello_bld --registry-secret myregistry --array-indices "1 - 5"
작업 실행 상태를 확인하려면 jobrun get -n myhellojob-jobruna
명령을 실행하십시오.
출력 예
[...]
Name: myhellojob-jobruna
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
Image: us.icr.io/mynamespace/myhello_bld
Resource Allocation:
CPU: 1
Ephemeral Storage: 400M
Memory: 4G
Registry Secrets:
myregistry
Runtime:
Mode: task
Array Indices: 1 - 5
Array Size: 5
JOP_ARRAY_SIZE Value: 5
Max Execution Time: 7200
Retry Limit: 3
Status:
Completed: 9s
Instance Statuses:
Succeeded: 5
Conditions:
Type Status Last Probe Last Transition
Pending True 16s 16s
Running True 13s 13s
Complete True 9s 9s
Events:
Type Reason Age Source Messages
Normal Updated 11s (x8 over 18s) batch-job-controller Updated JobRun "myhellojob-jobruna"
Normal Completed 11s batch-job-controller JobRun completed successfully
Instances:
Name Running Status Restarts Age
myhellojob-jobruna-1-0 0/1 Succeeded 0 18s
myhellojob-jobruna-2-0 0/1 Succeeded 0 18s
myhellojob-jobruna-3-0 0/1 Succeeded 0 18s
myhellojob-jobruna-4-0 0/1 Succeeded 0 18s
myhellojob-jobruna-5-0 0/1 Succeeded 0 18s
정의된 작업 구성을 참조하지 않는 CLI를 사용하여 제출된(또는 다시 제출된) 작업 실행은 콘솔에서 볼 수 없습니다.
CLI에서 작업 다시 제출
이전 작업 실행의 구성을 기반으로 작업 실행을 다시 제출하려는 경우 jobrun resubmit
명령을 사용하십시오. 이 명령에는 이전 작업 실행의 이름이 필요하며 다른 선택적 인수도 사용할 수 있습니다. 전체 옵션 목록은 ibmcloud ce jobrun resubmit
명령을 참조하십시오.
예를 들어, 다음 jobrun resubmit
명령은 testjobrun
작업 실행을 다시 제출합니다.
ibmcloud ce jobrun resubmit --jobrun testjobrun
출력 예
Getting job run 'testjobrun'...
Getting job 'myjob'...
Rerunning job run 'myjob-jobrun-fji48'...
Run 'ibmcloud ce jobrun get -n myjob-jobrun-fji48' to check the job run status.
예를 들어, 다음 jobrun resubmit
명령은 먼저 작업 구성을 작성하지 않고 실행된 myhellojob-jobruna
작업 실행을 다시 제출합니다. 참조된 작업 실행에 관련 작업 구성이 없으므로, 이 작업 실행의 이름을 지정하도록 --name
옵션을 지정해야 합니다.
ibmcloud ce jobrun resubmit --jobrun myhellojob-jobruna --name myhellojob-jobrunb
작업 실행 상태를 확인하려면 jobrun get -n myhellojob-jobrunb
명령을 실행하십시오.
출력 예
Getting jobrun 'myhellojob-jobrunb'...
[...]
Name: myhellojob-jobrunb
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
Image: us.icr.io/mynamespace/myhello_bld
Resource Allocation:
CPU: 1
Ephemeral Storage: 400M
Memory: 4G
Registry Secrets:
myregistry
Runtime:
Mode: task
Array Indices: 1 - 5
Array Size: 5
JOP_ARRAY_SIZE Value: 5
Max Execution Time: 7200
Retry Limit: 3
Status:
Completed: 91s
Instance Statuses:
Succeeded: 5
Conditions:
Type Status Last Probe Last Transition
Pending True 96s 96s
Running True 92s 92s
Complete True 91s 91s
Events:
Type Reason Age Source Messages
Normal Updated 93s (x7 over 97s) batch-job-controller Updated JobRun "myhellojob-jobrunb"
Normal Completed 93s batch-job-controller JobRun completed successfully
Instances:
Name Running Status Restarts Age
myhellojob-jobrunb-1-0 0/1 Succeeded 0 97s
myhellojob-jobrunb-2-0 0/1 Succeeded 0 97s
myhellojob-jobrunb-3-0 0/1 Succeeded 0 97s
myhellojob-jobrunb-4-0 0/1 Succeeded 0 97s
myhellojob-jobrunb-5-0 0/1 Succeeded 0 97s
정의된 작업 구성을 참조하지 않는 CLI를 사용하여 제출된(또는 다시 제출된) 작업 실행은 콘솔에서 볼 수 없습니다.
다음 단계
-
작업을 실행한 후 작업 및 작업 실행의 세부사항을 보려면 작업 세부사항 액세스를 참조하십시오.
-
작업이 작성되었으므로 작업을 이벤트 기반 작업으로 설정하십시오. 이벤트 구독을 사용하여 정기적인 스케줄에 따라 작업을 트리거하거나 파일 업로드 등의 이벤트에 대응하도록 작업을 설정할 수 있습니다.
-
작업 작성 방식이나 이전의 업데이트 방식에 관계없이 다음 방법 중 하나로 작업을 업데이트하고 참조 코드를 업데이트할 수 있습니다.
-
컨테이너 이미지(container image)가 있다면, OCI(Open Container Initiative)표준 에 따라, 이미지를 참조하는 것만 제공하면 됩니다. 이때, 작업 생성(또는 업데이트) 시 컨테이너 레지스트리의 위치를 가리키는 참조를 제공해야 합니다. 공개 레지스트리 또는 개인 레지스트리의 이미지에서 작업을 생성(또는 업데이트)한 다음, 작업 실행 시 참조된 이미지에 액세스할 수 있습니다.
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에서 로컬 소스의 빌드를 처리하도록 선택할 수 있습니다. 그런 다음 이미지가 만기되면 원하는 특정 이미지를 참조하도록 작업을 업데이트할 수 있습니다. 이 프로세스는 필요에 따라 반복할 수 있습니다.
업데이트된 작업을 실행할 때 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 작업 실행에 사용됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 작업 실행에 사용됩니다.
-
더 많은 코드 예를 찾고 계십니까? Samples for IBM Cloud Code Engine GitHub 저장소를 확인하십시오.