작업 실행 및 업데이트
이 튜토리얼에서는 IBM Cloud® Code Engine 콘솔을 사용하여 일괄처리 작업을 실행합니다.
작업은 실행 가능 코드의 하나 이상의 인스턴스를 병렬로 실행합니다. HTTP 요청을 처리하는 애플리케이션과 달리 작업이 한 번 실행되고 종료되도록 설계되었습니다. 작업을 작성할 때 작업이 실행될 때마다 사용될 워크로드 구성 정보를 지정할 수 있습니다.
시작하기 전에
배치 작업에 대한 자세한 내용은 배치 작업 워크로드를 참조하세요.
Code Engine 콘솔을 사용하려면 Code Engine overview 로 이동하세요.
모든 Code Engine 사용자에게는 종량과금제 계정이 있어야 합니다. 튜토리얼은 비용이 부과될 수 있습니다. 비용 추정기를 사용하여 예상 사용량을 기반으로 한 비용 추정을 생성하십시오. 자세한 정보는 Code Engine 가격을 참조하십시오.
작업 작성
icr.io/codeengine/helloworld 이미지를 사용하여 Code Engine 작업을 작성하십시오. 이 작업은 Hello from helloworld! I'm a task job!을(를) 출력합니다.
- Code Engine 개요 페이지를 여십시오.
- '만들기 시작'을 선택하세요.
- 사용 가능한 프로젝트 목록에서 프로젝트를 선택하십시오. 프로젝트를 새로 작성할 수도 있습니다. 작업을 작성하려면 선택한 프로젝트가 있어야 합니다.
- 작업을 선택하십시오.
- 작업 이름을 입력하고 컨테이너 이미지로
icr.io/codeengine/helloworld을 지정하십시오. 프로젝트 내에서 고유한 작업 이름을 사용하십시오. 이 예에서는 환경 변수 또는 런타임 설정의 기본값을 수정할 필요가 없습니다. 이 예제에 사용되는 코드에 대한 자세한 정보는helloworld의 내용을 참조하십시오. - 작성을 클릭하십시오.
작업 실행
작업을 작성하고 워크로드 구성 정보를 지정한 후에는 작업을 실행할 준비가 되었습니다. 일부 구성 정보를 대체할 수 있습니다.
작업을 실행할 때 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 다운로드되어 배치됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 작업에 사용됩니다.
-
작업 페이지로 이동하십시오.
- Code Engine 의 ‘프로젝트’ 페이지에서 해당 프로젝트의 이름을 클릭하세요.
- ‘작업’을 클릭한 다음 ‘작업 ’ 탭을 클릭합니다.
- 실행하려는 작업의 이름을 클릭하세요.
-
작업 페이지에서 작업 제출을 클릭하여 현재 구성을 기반으로 하는 작업을 제출하십시오.
-
“작업 제출” 창에서 모든 기본값을 그대로 유지한 후, “작업 제출”을 다시 클릭하여 작업을 실행하십시오.
“작업 제출” 창에서 인스턴스, CPU, 메모리, 작업 재시도 횟수, 작업 시간 초과 등 기본 구성 값을 확인하고 필요에 따라 변경할 수 있습니다. 실행할 병렬 작업 인스턴스에 대해 배열 크기 또는 배열 인덱스를 지정할 수 있습니다. '배열 크기 '에는 이 작업에서 병렬로 실행할 인스턴스 수를 입력하십시오. 배열 인덱스의 경우, 사용자 정의 인덱스 집합을 쉼표로 구분하여 나열하십시오. 예를 들어, 사용자 정의된 ‘ 5 ’ 인덱스 세트를 사용하여 이 작업을 실행하려면 3,12-14,25 을 지정하십시오. 자동으로 삽입된 JOB_ARRAY_SIZE 환경 변수의 값을 업데이트하는 작업 배열 크기에 대한 사용자 정의 값을 지정 할 수도 있습니다. 이 작업을 제출하면 시스템은 작업 세부사항 페이지에 작업 인스턴스의 상태를 표시합니다. “작업 제출” 창에서 배열 인덱스 대신 배열 크기를 지정하면, 작업 세부 정보 페이지의 “ Configuration ” 섹션에서 이 정보가 배열 인덱스로 표시됩니다.
작업 세부사항에 액세스
작업에 대한 세부사항을 찾으십시오.
작업을 제출하면 특정 작업 실행의 결과를 작업 실행 세부사항 페이지의 콘솔에서 사용할 수 있습니다. 콘솔의 작업 페이지에서 작업 및 특정 작업 실행의 세부사항을 볼 수도 있습니다.
- 작업 세부사항을 보려면 작업 탭을 클릭하고 작업할 작업의 이름을 클릭하십시오.
- 특정 작업 실행에 대한 세부사항을 보려면 작업 실행 탭을 클릭하고 작업할 작업 실행의 이름을 클릭하십시오.
작업의 인스턴스 중 실행에 실패한 것이 있다면, 다음과 같은 조치를 취할 수 있습니다:
- “실패한 인덱스 다시 실행”을 클릭하여 실패한 인덱스에 대한 작업을 다시 실행하십시오. ‘작업 제출’ 창에서 배열 인덱스를 포함한 구성 값을 확인하고, 필요한 경우 변경하십시오. '배열 인덱스' 섹션에는 실패한 작업 실행 인스턴스의 인덱스가 자동으로 나열됩니다.
일반적인 작업 실행 인덱스 오류의 문제 해결에 대해서는 작업 실행 인덱스가 실패하는 이유 이해를 참조하세요.
- “작업 제출”을 클릭하여 오류가 발생한 인덱스에 대한 작업을 제출하십시오.
로깅 기능을 추가한 후에는 작업 로그를 볼 수 있습니다. 자세한 정보는 콘솔에서 작업 로그 보기를 참조하십시오.
작업 업데이트
코드, 컨테이너 이미지, 코드 인수 또는 명령어, 런타임 인스턴스 리소스, 환경 변수 등을 업데이트하는 등 작업 구성을 세부적으로 조정하여 작업을 관리할 수 있습니다.
작업이 준비 상태일 때, 해당 작업을 업데이트할 수 있습니다. 이전에 생성한 작업을 업데이트하여 환경 변수를 업데이트하여 인사말과 환경 변수 출력을 변경해 보겠습니다. icr.io/codeengine/helloworld 샘플 작업에 요청이 전송되면, 이 작업은 환경 변수 TARGET 를 읽어들이고 "Hello ${TARGET}!" 를 출력합니다.
이 환경 변수가 비어 있으면 "Hello World!"가 리턴됩니다. 이 예제에 사용된 코드에 대한 자세한 내용은 helloworld.
-
작업 페이지로 이동하십시오.
- Code Engine 의 ‘프로젝트’ 페이지에서 해당 프로젝트의 이름을 클릭하세요.
- ‘작업’을 클릭한 다음 ‘작업 ’ 탭을 클릭합니다.
- 업데이트하려는 작업의 이름을 클릭하세요.
-
구성 > 환경 변수 탭에서 환경 변수 추가를 클릭하십시오.
TARGET값과 함께Sunshine이름으로 리터럴 환경 변수를 추가하십시오.icr.io/codeengine/helloworld이Hello <value_of_TARGET>!>메시지를 출력합니다. -
‘추가’를 클릭하여 환경 변수를 추가하세요.
-
배치를 클릭하십시오.
-
작업 제출을 클릭하십시오.
-
작업 제출 분할창에서 인스턴스, CPU, 메모리, 작업 재시도 횟수, 작업 제한시간과 같은 기본 구성 값을 검토하고 선택적으로 변경하십시오. 실행할 병렬 작업 인스턴스에 대해 배열 크기 또는 배열 인덱스를 지정할 수 있습니다. '배열 크기 '에는 이 작업에서 병렬로 실행할 인스턴스 수를 입력하십시오. 배열 인덱스의 경우, 사용자 정의 인덱스 집합을 쉼표로 구분하여 나열하십시오. 예를 들어, 사용자 정의된 ‘
5’ 인덱스 세트를 사용하여 이 작업을 실행하려면3,12-14,25을 지정하십시오. 작업 제출을 다시 클릭하여 작업을 실행하십시오. 작업 인스턴스의 상태가 작업 세부사항 페이지에 표시됩니다. -
이 작업의 사용자 ID가 콘솔에서 작업 로그 확인하기 인 경우, 작업의 출력은
Hello Sunshine!입니다.
다음 단계
-
작업을 작성한 후 작업을 제출하여 실행하십시오. 작업 실행을 참조하십시오. 작업은 여러 번 실행할 수 있습니다.
-
작업을 실행한 후 작업 및 작업 실행의 세부사항을 보려면 작업 세부사항 액세스를 참조하십시오.
-
작업이 작성되었으므로 작업을 이벤트 기반 작업으로 설정하십시오. 이벤트 구독을 사용하여 정기적인 스케줄에 따라 작업을 트리거하거나 파일 업로드 등의 이벤트에 대응하도록 작업을 설정할 수 있습니다.
-
작업 작성 방식이나 이전의 업데이트 방식에 관계없이 다음 방법 중 하나로 작업을 업데이트하고 참조 코드를 업데이트할 수 있습니다.
-
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에서 로컬 소스의 빌드를 처리하도록 선택할 수 있습니다. 그런 다음 이미지가 만기되면 원하는 특정 이미지를 참조하도록 작업을 업데이트할 수 있습니다. 이 프로세스는 필요에 따라 반복할 수 있습니다.
업데이트된 작업을 실행할 때 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 작업 실행에 사용됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 작업 실행에 사용됩니다.
-
더 많은 코드 예를 찾고 계십니까? 샘플은 IBM Cloud Code Engine GitHub 리포지토리에서 확인하세요.