パブリック・レジストリー内のイメージからのジョブの作成

ジョブを作成するときには、ジョブの実行時に毎回使用するワークロードの構成情報を指定できます。 ジョブはコンソールから、または CLI を使用して作成できます。

コンソールでのジョブの作成

icr.io/codeengine/helloworldイメージを使用してCode Engineジョブを作成します。 このジョブはHello from helloworld! I'm a task job!を印刷します。

  1. Code Engineを開きます。
  2. 作成を開始 」を選択します。
  3. 選択可能なプロジェクトのリストからプロジェクトを選択します。 新規作成することもできます。 ジョブを作成するには、選択したプロジェクトがなければならないことに注意してください。
  4. **「ジョブ」**を選択します。
  5. ジョブの名前を入力します (例: myjob)。
  6. ジョブのコンテナー・イメージを指定します (例: icr.io/codeengine/helloworld)。 既存のソース・コードをコンテナー・イメージに変換してジョブで使用したい場合は、コンテナー・イメージのビルドを参照してください。 この例で使用されるコードについて詳しくは、 helloworldを参照してください。
  7. 環境変数やランタイム設定のデフォルト値を変更します。 これらのオプションについて詳しくは、ジョブを作成および実行する際のオプションを参照してください。
  8. 「作成」 をクリックします。
  9. ジョブ・ページで、ジョブがready状況になったら、ジョブの実行依頼をクリックして、現在の構成に基づいてジョブをサブミットします。
  10. 「ジョブの実行依頼」ペインで、すべてのデフォルト値を受け入れ、ジョブの実行依頼を再度クリックしてジョブを実行します。

「ジョブの送信」ペインでは、インスタンス、CPU、メモリ、ジョブの再試行回数、ジョブのタイムアウトなどのデフォルト設定値を確認し、必要に応じて変更することができます。 実行する並列ジョブ・インスタンスには、 アレイ・サイズまたはアレイ・インデックスのいずれかを指定できます。 「 配列サイズ 」には、このジョブで並列実行するインスタンス数を指定してください。 配列のインデックスについては、カスタムインデックスのリストをカンマ区切りで指定してください。 たとえば、 5 のインデックスを独自に設定してこのジョブを実行するには、 3,12-14,25 と指定します。 ジョブ配列サイズのカスタム値を指定 することもできます。これにより、自動的に注入された JOB_ARRAY_SIZE 環境変数の値が更新されます。 このジョブを実行依頼した後、「ジョブの詳細 (job details)」ページに、ジョブのインスタンスの状況が表示されます。 「ジョブの送信」ペインの「 Configuration 」セクションで、 配列のインデックスの 代わりに配列のサイズを指定した場合、 この情報は配列のインデックスとして表示されます。

ジョブ実行について詳しくは、「ジョブ状況 (Job status)」ページを参照してください。

CLI でのジョブの作成

CLI でジョブ構成を作成するには、job create コマンドを使用します。 このコマンドには名前とイメージが必須です。また、オプションの他の引数を指定することもできます。 オプションの完全なリストについては、ibmcloud ce job create コマンドを参照してください。

開始前に

以下の**job create**コマンドは、myjobという名前のジョブ構成を作成し、コンテナー・イメージ icr.io/codeengine/firstjobを使用します。

ibmcloud ce job create --name myjob  --image icr.io/codeengine/firstjob

出力例

Creating job 'myjob'...
OK

以下の表は、この例の中で job create コマンドと共に使用されるオプションを要約しています。 コマンドとそのオプションについて詳しくは、ibmcloud ce job create コマンドを参照してください。

コマンド・オプション
オプション 説明
--image ジョブの実行に使用するイメージの名前。 この値は必須です。 形式は REGISTRY/NAMESPACE/REPOSITORY:TAG です。REGISTRYTAG はオプションです。 TAG を指定しない場合、そのデフォルトは latest です。 Docker Hub 内の画像については、 NAMESPACE/REPOSITORY で画像を指定できます。 REGISTRY のデフォルト値は docker.io です。 その他のレジストリーの場合は、REGISTRY/NAMESPACE/REPOSITORY または REGISTRY/NAMESPACE/REPOSITORY:TAG を使用します。
--name

ジョブの名前。 プロジェクト内で固有の名前を使用します。 この値は必須です。

  • 名前の先頭と末尾は小文字の英数字でなければなりません。
  • 名前は 63 文字以下でなければならず、小文字、数字、およびハイフン (-) を使用できます。

次のステップ

  • ジョブを作成した後、そのジョブを実行するためにジョブをサブミットします。 ジョブの実行を参照してください。 ジョブは複数回実行できます。

  • ジョブの実行後に、ジョブおよびジョブ実行の詳細を表示するには、アクセス・ジョブの詳細を参照してください。

  • ジョブが作成されたので、ジョブをイベント・ドリブンにすることを検討してください。 イベント・サブスクリプションを使用すると、定期的なスケジュールによってジョブをトリガーしたり、ファイルのアップロードなどのイベントに反応するようにジョブを設定したりすることができます。

  • ジョブの作成方法や以前の更新方法に関係なく、以下の任意の方法でジョブの更新および参照されるコードの更新を行うことができます。

    • 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 を使用してイメージのビルドを選択することができます。

    • ローカル・ワークステーションにあるソース・コードから開始する場合は、単一 CLI コマンドを使用して、ソースからのイメージのビルドとジョブの作成を Code Engine に処理させることができます。 このシナリオでは、Code Engine はイメージを IBM Cloud® Container Registry にアップロードします。 詳しくは、CLI を使用したローカル・ソース・コードからのジョブの作成を参照してください。 イメージのビルドをさらに制御したい場合は、ジョブを作成 (または更新) してジョブを実行する前に、Code Engine を使用してイメージのビルドを選択することができます。

    例えば、ジョブのソースの開発を進化させながら、ローカル・ソースのビルドを Code Engine に処理させることができます。 その後、イメージが成熟すると、目的の特定のイメージを参照するようにジョブを更新できます。 必要に応じて、このプロセスを繰り返すことができます。

    更新されたジョブを実行すると、イメージにタグが指定されていない限り、参照されたコンテナー・イメージの最新バージョンがジョブ実行に使用されます。 イメージにタグが指定されている場合、タグ付けされたイメージがジョブ実行に使用されます。

コード・サンプルがさらに必要ですか? 「 IBM Cloud Code Engine 」のサンプルについては、 GitHub リポジトリをご覧ください。