/home/by-natures/dev*

データ界隈で働くエンジニアとしての技術的なメモと、たまに普通の日記。

2019/02/05 AWS サービスにインストールされている boto3 のバージョン

AWS CodeCommit を利用して、Glue Job から CodeCommit からファイルを取得して集計処理をしたいなと思ったのですが、 get_file というメソッドが存在しないとエラーが起きてしまいました。

boto3.amazonaws.com

GitHub の boto3 リポジトリを見ると get_file など CodeCommit のメソッド群が追加されているのが 2018年末だったので、関連サービスで使われている boto3 のバージョンを確認しました:

  • Glue Job: 1.7.47
  • Sagemaker Sparkmagic(PySpark): 1.7.47
  • Sagemaker Sparkmagic(PySpark3): (boto3 が入っていない)
  • Lambda Python 2.7: 1.7.74
  • Lambda Python 3.6: 1.7.74
  • Lambda Python 3.7: 1.9.42

この中だと、Lambda Python 3.7 環境がもっとも新しく、CodeCommit の get_file メソッドが呼べました。Glue はそもそも Python2.7 固定なので逃げ道もないです。

Glue で実行する Python スクリプトはファイルを指定することもできるので、最新の boto3 と一緒に S3 上に配置して読み込ませることもできるかもしれません。ただ Glue Job のエディタで閲覧・編集できたほうが今の所便利なので、Lambda Python 3.7 で CodeCommit にアクセスしてファイル取得後、パラメータで Glue Job に渡そうかと思います。