メインコンテンツへ移動

コードブロックの実行環境を拡張する方法

HAP では、デフォルトでコードブロックの実行環境として Node.js(10.18)および Python(3.6)を利用しています。v5.1 以降では、さらに多くの実行環境を拡張できるようになります。

利用可能なイメージ​

以下のコードブロック実行環境イメージを利用できます。イメージの完全なアドレスは registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-command:<イメージタグ> です。

イメージタグNode.js バージョンPython バージョン
node1018-python36(デフォルト)10.183.6
node2011-python31220.113.12
node24-python315243.15

互換性の観点から、複数バージョン間での切り替えや新バージョンへの完全な移行がサポートされています。

依存ライブラリの拡張​

コードブロックの依存関係拡張については、コードブロックの依存関係を拡張する方法 を参照し、選択したイメージに合わせてパスを調整してください。

イメージタグPython のコンテナ内依存ライブラリパスNode.js のコンテナ内依存ライブラリパス
node1018-python36/usr/local/lib/python3.6/site-packages//usr/local/node-10.18.0/lib/node_modules/
node2011-python312/usr/local/lib/python3.12/site-packages//usr/local/node-20.11/lib/node_modules/
node24-python315/usr/local/lib/python3.15/site-packages//usr/local/node-24/lib/node_modules/

インストールコマンド内の実行環境パスも調整してください。バージョンごとに依存ライブラリ用のホスト側マウントディレクトリを分けてください。

実行環境の設定​

node2011-python312 と node24-python315 の設定手順は同じで、どちらも以下の 2 つのモードに対応しています。

  • 複数バージョン共存モード:デフォルト環境を保持し、必要に応じて他のバージョンを追加します。3 つのバージョンを同時に利用できます。
  • 新バージョンへの切り替えモード:command サービスのイメージを置き換え、選択したバージョンに統一します。

複数バージョン共存時のサービスと拡張設定の対応は以下のとおりです。

サービス名イメージタグ拡張設定インデックスnodeVersionpythonVersion
command(デフォルト)node1018-python36設定不要——
commandv2node2011-python312[0]20.113.12
commandv3node24-python315[1]243.15

拡張設定のサービスアドレスには static://<サービス名>:9098 を使用し、インデックスは重複しないようにしてください。

以下では node2011-python312 イメージを例に説明します。

  1. イメージをダウンロードします(オフラインパッケージ)。

    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-command:node2011-python312
  2. 設定ファイルに下記の内容を追加します。

    commandv2:
    image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-command:node2011-python312
  3. コードブロックサービス拡張用の設定ファイルを作成します。例:/data/mingdao/script/volume/workflow/application-www-ext.properties 内容は以下の通りです。

    md.grpc.client.MDCommandService[0].address=static://commandv2:9098
    md.grpc.client.MDCommandService[0].nodeVersion=20.11
    md.grpc.client.MDCommandService[0].pythonVersion=3.12
  4. アプリケーションサービスの volumes に、下記設定を追加して設定ファイルをマウントします。

    volumes:
    - ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflow/application-www-ext.properties
    - ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflowconsumer/application-www-ext.properties
    - ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflowintegration/application-www-ext.properties
    - ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflowplugin/application-www-ext.properties
  5. サービスを再起動すると、コードブロックで Node.js 20.11、Python 3.12 の実行環境を選択できます。以下の画面を参照してください。