LoginSignup
9
23

More than 3 years have passed since last update.

AWS LambdaでPythonの実行を自動化しよう

Last updated at Posted at 2019-09-12

AWS Lambdaとは

AWS(Amazon Web Service)が提供しているクラウドコンピューティングサービスのことです。

ある条件で発火して任意のコードを立ち上げるだけなのでサーバーコストがかからず手軽にコードを自動化することができめちゃくちゃ便利です。


AWS LambdaでPythonコードを自動化

それでは試しにAWS LambdaでPythonを立ち上げてみましょう。


1. functionを生成する

i. AWS Lambdaホーム画面からCreate Functionを選択

Screen Shot 2019-09-12 at 11.04.41.png


ii. Auther from ScratchからPythonを選択してfunctionを生成

Screen Shot 2019-09-12 at 11.08.10.png


2. 外部モジュールをアップロードする

Pythonの外部モジュールをimportするにはモジュールのzipファイルをアップロードする必要があります。

i. 任意のディレクトリでモジュールをインストール

以下のコードでカレントディレクトリにモジュールをインストールすることができます

$ pip install <module> -t .


ii. インストールしたモジュールをzip化

以下のコードですべてのファイルをupload.zipという一つのファイルに閉じ込めることができます

zip -r upload.zip *


iii. zipをアップロード

Function CodeからCode entry typeでupload a zip fileを選択しzip化したファイルをアップロードします
*ファイルサイズが大きい場合、functionを複数に切り分けるなどをおこなわないといけません

Screen Shot 2019-09-12 at 11.20.40.png


3. 関数を記述する

lambda_function.lambda_handlerにHandlerをセットしているので、lambda_function.pyというファイルを生成し、lambda_handler()関数を書き、実行させたい処理をその関数内に記述します。完了したらsaveしてください。

Screen Shot 2019-09-12 at 11.53.10.png


4. タイムトリガーをセットする

毎時実行したいので、「Add Trigger」から「CloudWatch Events」を選択してスケジューリングします
cron()rate()の書き方はこちら

Screen Shot 2019-09-12 at 11.54.16.png


これで完了です。Triggerに他のAWS Lambda FunctionやEC2, S3などを設定することによって他のクラウドのアクションを発火条件に設定することもできます。

最後に

kerasやscikit-learnのモジュールの容量がバカみたいに大きいので、AWS Lambdaだけで機械学習モデルを回すのは無理そうです。
やはりSageMakerと繋ぐのがベストプラクティスな気がする。

9
23
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
9
23