パイプライン・ステップ・アーティファクトの準備
パイプラインおよびパイプライン実行で使用するパイプライン・ステップ・アーティファクトを作成する方法について学習します。
パイプライン・ステップは、各ステップで実行するコードを含むアーティファクトです。このコードには、パイプライン・ステップの実行中に実行されるスクリプトが含まれ、パイプライン・ステップで単一のアーティファクトとして設定されます。
使用できるパイプライン・アーティファクトのタイプは次のとおりです:
Pythonファイル
このアーティファクトは、次のPythonファイルの例のように、パイプラインを実行するコードを含む単純で単一のPythonファイルにすることができます:
# simple pipeline step
import time
print(" This is a step in a pipeline.")
time.sleep(3)
print("Pipeline step done.")
このパイプライン・ステップでは、2つのメッセージが間に3秒のタイム・スリープで印刷されます。コードを単一のsimple_pipeline_step.py
ファイルに保存し、パイプラインにステップとして含めることができます。パイプライン実行にはすでにPythonがインストールされており、すべてのPythonシステム・ライブラリでコードを実行できます。
この例では、サードパーティのPythonライブラリを使用しません。インストールされているPythonライブラリおよび環境は、cda環境でのパイプラインの使用によって制御します。
Bashまたはシェル・スクリプト
この例のように単一のスクリプト・ファイルを使用したり、より複雑なスクリプト・ファイルを使用できます:
#!/bin/bash
var=$1
if [ -z "$var" ]
then
echo "no argument provided"
exit 100
else
while [ "$1" != "" ]; do
echo "Received: ${1}" && shift;
done
fi
Oracle LinuxではBashのみがサポートされています。
圧縮zipまたはTarファイル
多くの場合、プロジェクトはより複雑で、単一のファイルで実行できるよりも多くのコードを必要とします。複雑なPythonプロジェクトおよびシェル・スクリプトがある場合は、すべてのファイルを1つのzipファイルにアーカイブし、ステップ・アーティファクトとして使用できます。fat JARファイルを使用すると、Javaコードをパイプライン・ステップとして実行できます。
Pythonコードまたはシェル・スクリプトを記述してパイプラインとして実行する方法に関する特別な要件はありません。zipまたは圧縮tarアーティファクトをアップロードすると、PIPELINE_STEP_RUN_ENTRYPOINT
パラメータを使用してメイン・ファイルを指すことができます。
アーカイブ・ファイルの考慮事項:
-
すべてのコードを1つのディレクトリにアーカイブします。
-
ファイル名は、
PIPELINE_STEP_RUN_ENTRYPOINT
で設定したルート・ディレクトリ名と一致している必要があります。STEP_RUN_ENTRYPOINT
は、使用中のパイプライン実行の詳細ページに表示されます。
サンプルの使用を開始するには、zipped_python_job.zip
ファイルをダウンロードし、解凍して確認します。
"environmentVariables": {
"PIPELINE_STEP_RUN_ENTRYPOINT": "zipped_python_pipeline/entry.py"
}
複雑なパイプラインのエントリ・ポイントは異なることに注意してください。
パイプライン・アーティファクト・ファイルを作成するには、次のステップを実行します:
-
Javaコードの準備が完了したら、Javaメインを実行するシェル・スクリプトを含むプロジェクトのfat JARファイルを作成します。
-
プロジェクトのコードのルート・ディレクトリを作成します。
プロジェクト全体をアーカイブ・ファイルに圧縮するには、ルート・ディレクトリの下にある必要があります。
-
ルート・ディレクトリの下にパイプライン・コードを作成します。
パイプライン・コードは、全体がルート・ディレクトリの下にある必要があります。
-
ルート・ディレクトリをzipまたは圧縮tarファイルに圧縮します。
これで、パイプラインの作成時にアーカイブ・ファイルをパイプライン・アーティファクトとしてアップロードできます。パイプラインを作成する場合は、PIPELINE_STEP_RUN_ENTRYPOINT
をカスタム環境変数としてパイプライン構成に追加します。