IBMiの用途は伝統的な基幹業務稼働だけではありません。小回りの利くオープン系の便利な仕組みも「そのまま」数多く利用可能です。その一つとして、IBMi内で稼働するJupyter Notebookをプログラム開発では定番のVSCodeから使った例をご紹介いたします。
Jupyter Notebookは主にPythonをWebブラウザ上で記述・実行できる統合開発環境です。このWebブラウザの部分をVSCodeに置き換え、プログラム開発に便利で豊富な開発ツールが用意されているVSCodeを使うのが目的です。
設定と接続手順
VSCodeからIBMiで稼働しているJupyter Notebookへの接続は以下手順となります。
- IBMi側でJupyter Notebook起動
- VSCodeに「Code For IBM i」の導入と設定
- IBMi上のJupyterサーバーへ接続
一度設定してしまうと次回からは下記手順で接続となります
- IBMi側でJupyter Notebook起動
- VSCodeの「Code For IBM i」でIBMiへ接続
- IBMi上のJupyterサーバーへ接続
PythonとJupyter NotebookのIBMiへの導入、VSCodeのWindows端末へ導入と設定は本筋ではありませんので割愛致しますが、下記サイトが参考になると思います。
IBMi側でJupyter Notebook起動
SSH端末からJupyter Notebookを起動します。IBM i に SSH で接続するためには、IBMi上でSSHD デーモンが稼働している必要がありますので、事前にSTRTCPSVR SERVER(*SSHD) コマンドで起動しておきます。
IBMiへSSH端末からログイン後「jupyter notebook」コマンドで起動します。QSECOFRでログインしている場合は下図のように--allow-rootを付加して「jupyter notebook --allow-root」で起動します。
普通は上記URLへブラウザで接続するのですが、今回はVSCodeで接続します。ですので、このtokenパラメータ付URLは控えておいてください。
VSCodeに「Code For IBM i」の導入と設定
VSCodeでIBMiへ接続するためにVSCodeに「Code For IBM i」の導入と設定が必要です。VSCodeの①拡張機能(Ctrl+Shft+X)から②表示された検索窓へ「Code for IBM i」で検索し③「インストール」をクリックします。
下図のように「Code for IBM i」の導入が完了すると表示される①アイコンをクリック後、②「Connect to an IBM i」ボタンをクリックします。③「Connection Name」は任意の値です。「Host or IP Address」、「Port (SSH)」、「Username」、「Password」は接続先IBMi設定と合わせた後、④「Connect」ボタンをクリックします。
下図のようにIBMiへ接続されライブラリーやIFSの参照が可能となります。
IBMi上のJupyterサーバーへ接続
「IFS BROWSER」から作成済みの既存Notebook(拡張子はipynb)をクリックするとVSCodeにソースが読み込まれます。IBMi上のJupyterサーバーへ接続するため、下図のように右上に表示される「カーネルの選択」をクリックします。
VSCodeにPython関連の拡張機能が入っていない場合は下図のように導入を促されますので「推奨拡張機能のインストールPython+Jupyter」を選択し導入後、再び「カーネルの選択」をクリックします。
IBMiで稼働しているJupyterサーバーを選択するため「既存のJupyterサーバー」を選択します。
控えておいたtokenパラメータ付きURLを下図のように入力し「Enter」キーを押します。
「Python3」を選択し、IBMiで稼働しているJypyterサーバーと接続します。
VSCodeから新規にプログラム作成手順
VSCodeから新規にPythonプログラムを作成する場合は、プログラムを作成したいフォルダ上でマウス右クリックで表示されたメニューから「Create Streamfile」を選択します。
プログラム名の拡張子には下図のようにipynbとし、「Enter」キーを押します。
下図のようにコードが書けるようになります。
関連リンク
お問合せ
https://alpcom.co.jp/contact/
アルファー・コミュニケーションズ公式YouTube
https://www.youtube.com/channel/UCTqwZsRRpAs9NPTUz2yH3ow/videos