1
0

Workato:Pythonコネクタで任意のモジュールをインストールして利用する

Posted at

はじめに

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"}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0