4.2.20 Python実行部品
機能
任意のPythonスクリプトを実行できます。
注意事項
-
サポートするPythonのバージョンは3.xシリーズです。また,Pythonの仮想環境はサポートしていません。
-
Pythonスクリプトを実行するには,JP1/AOサーバにPythonインタプリタを事前にインストールする必要があります。クラスタ環境で使用するには,実行系および待機系ホストの両方にPythonインタプリタをインストールする必要があります。
バージョン
01.00.01
タグ
Execute Script
戻り値
戻り値 |
説明 |
---|---|
0 |
正常に終了した。 |
1 |
Pythonインタプリタの実行に失敗した。 |
2 |
Pythonスクリプトの実行に失敗した。 |
3 |
Pythonスクリプトがタイムアウトした。 |
80 |
タスクの実行を停止した。 |
127 |
そのほかのエラーが発生した。 |
プロパティ一覧
プロパティを次の表に示します。
プロパティキー |
プロパティ名 |
説明 |
デフォルト値 |
入出力種別 |
必須区分 |
---|---|---|---|---|---|
pythonInterpreterPath |
Pythonインタプリタパス |
スクリプトを実行するPythonインタプリタへのパスを指定します。 |
python |
入力 |
○ |
scriptBody |
スクリプト本体 |
Pythonコードを指定します。 |
− |
入力 |
○ |
importedScript |
インポートスクリプト |
同一サービステンプレート上に配置したほかのPython実行部品と共通で使用するメソッドや定数(Pythonのコード文字列)を指定します。 |
− |
入力 |
△ |
webServiceConnectionCategory |
Webサービス接続カテゴリ |
Webサービス接続カテゴリを指定します。 |
− |
入力 |
△ |
webServiceConnectionName |
Webサービス接続名 |
Webサービス接続名を指定します。 |
− |
入力 |
△ |
timeout |
タイムアウト |
指定したスクリプトに対するタイムアウト時間(秒単位)を指定します。 |
300 |
入力 |
△ |
inN※ |
スクリプト入力 (N※) |
スクリプトに渡す引数を指定します。 |
− |
入力 |
△ |
standardOutput |
標準出力 |
指定したスクリプトの標準出力を文字列として出力します。 |
− |
出力 |
△ |
standardErrorOutput |
標準エラー出力 |
指定したスクリプトの標準エラー出力を文字列として出力します。 |
− |
出力 |
△ |
outN※ |
スクリプト出力 (N※) |
指定したスクリプトのoutN※関数の引数に,指定した値を出力します。 |
− |
出力 |
△ |
- 注※
-
Nは0から9の整数を示します。
プロパティリストで部品の入力/出力プロパティを指定します。入力プロパティには,サービスプロパティの値,予約プロパティの値,およびリテラル文字の組み合わせを使用できます。
スクリプト本体で使用できる変数および関数
次の変数および関数をスクリプト本体で使用できます。
カテゴリ |
名前 |
説明 |
||
---|---|---|---|---|
変数 |
inN※ |
入力プロパティ(inN※)に指定した値が設定されます。値が配列型やJSON形式で指定されていた場合も文字列型として解釈されます。 |
||
関数 |
outN※(文字列値) |
関数の引数に渡された値が部品の出力プロパティ(outN※)に出力されます。 |
||
関数 |
log(文字列値) |
任意の文字列をタスクログに出力できます。特定のプレフィックスを文字列の先頭に追加することで,ログレベルを選択できます。 |
||
プレフィックス |
[Severe] |
ログレベル0として出力します。 |
||
[Information] |
ログレベル10として出力します。 |
|||
[Fine] |
ログレベル20として出力します。 |
|||
[Finer] |
ログレベル30として出力します。 |
|||
[Debug] |
ログレベル40として出力します。 |
|||
(プレフィックスなし) |
ログレベル10として出力します([Information]と同じ)。 |
- 注※
-
Nは0から9の整数を示します。
ただし,デフォルトで定義された次のimport文をスクリプトから削除すると,これらの変数および関数を使用できません。
from dnaplugin import in0, in1, in2, in3, in4, in5, in6, in7, in8, in9 from dnaplugin import out0, out1, out2, out3, out4, out5, out6, out7, out8, out9 from dnaplugin import log
スクリプト本体から参照できる環境変数
スクリプト実行時に環境変数に値を設定します。os.environ[キー名]またはos.environ.get(キー名)の形式で,次の環境変数の値を取得できます。
環境変数 |
説明 |
フォーマット |
---|---|---|
PLUGIN_PROPERTIES |
Python実行部品のプロパティ |
JSON形式 {プロパティ名:値...} |
SERVICE_TEMPLATE_ID |
Python実行部品が属するサービステンプレートのID |
数値 |
SERVICE_ID |
Python実行部品を実行するサービスのID |
数値 |
SERVICE_TEMPLATE |
Python実行部品が属するサービステンプレートの情報 |
JSON形式 {サービステンプレート属性:値... } |
SERVICE |
Python実行部品を実行するサービスの情報 |
JSON形式 {サービス属性:値...} |
WEB_SERVICE_CONNECTIONS |
Webサービス接続の設定情報※ |
JSON形式 [{Web サービス接続属性:値...}, ...] |
- 注※
-
入力プロパティに指定された「Webサービス接続カテゴリ」および「Webサービス接続名」に対応した情報が取得されます。入力プロパティの指定状況に応じて取得される情報を次の表に示します。
入力プロパティの指定状況
取得情報
Webサービス接続カテゴリ
Webサービス接続名
指定あり
指定あり
指定したカテゴリと名前に一致するWebサービス接続情報
指定あり
指定なし
指定したカテゴリに一致するWebサービス接続情報
指定なし
指定あり
なし
指定なし
指定なし
なし
インポートスクリプトについて
同一サービステンプレート上に配置したほかのPython実行部品と共通で使用したいメソッドや定数がある場合,プロパティ「importedScript」に定義します。
プロパティ「importedScript」をサービス入力プロパティにマッピングし,ほかのPython実行部品のプロパティ「importedScript」を同じサービス入力プロパティにマッピングすることにより,インポートスクリプトに定義したメソッドや定数を各Python実行部品のスクリプト本体で共通に使用することができます。
-
スクリプト本体からの参照
インポートスクリプトに定義したメソッドや定数は,スクリプト本体からは,モジュール名「dnaplugin_imported_script」で参照できます。
import文をスクリプト本体にデフォルトで記述しています。
-
インポートスクリプトで利用可能な関数と環境変数
関数:log()関数が利用可能です。詳細はスクリプト本体で使用できる変数および関数の表のlog()関数を参照してください。
環境変数:スクリプト本体で利用可能な環境変数と同じです。詳細はスクリプト本体から参照できる環境変数の表を参照してください。
インポートスクリプトのサンプル
- スクリプト本体
# -*- coding: utf-8 -*- import os from dnaplugin import in0, in1, in2, in3, in4, in5, in6, in7, in8, in9 from dnaplugin import out0, out1, out2, out3, out4, out5, out6, out7, out8, out9 from dnaplugin import log from dnaplugin_imported_script import * hoge(CNST)
- インポートスクリプト
from dnaplugin import log def hoge(a): log(a + ' from common py!') CNST = 'hoge'