はじめに
WorkatoのPythonコネクタは、基本的には用意されたモジュールのみの利用が可能ですが、自分が使いたいモジュールが用意されていない場合もあると思います。そのような場合は、pipモジュールを利用することで、任意のモジュールをインストールして利用することが可能です。
なお、Pythonコネクタは /tmp 以下のみ書き込み可能なため、モジュールのインストール先も /tmp とする必要があります。また、モジュールのインストールはコード上で行い、インストールしたモジュールをコード上で動的にインポートして利用する形となります。
コード
以下は、boto3(AWS SDK for Python)モジュールをインストールする例になります。boto3をインストールすることで、Pythonコネクタ上から簡単にAWSのリソースがAPI操作できるようになります。
なお、Workatoのレシピの作成手順および設定方法については、ここでは割愛します。
(Pythonコネクタについてある程度習熟していることを前提とします)
import pip
import site
import importlib
def main(input):
# インストールするパッケージ
package_name = 'boto3'
# インストール先ディレクトリ (/tmpであること)
target_dir = '/tmp'
# モジュールをインストールする
pip.main(['install', '--target', target_dir, package_name])
# インストールディレクトリをsys.pathに追加
site.addsitedir(target_dir)
# sys.pathをリフレッシュ
importlib.reload(site)
# モジュールをimportする
boto3 = importlib.import_module(package_name)
s3 = boto3.resource('s3')
#
# 必要な処理を記述する
#
return {"result": "success"}