AWS Lambda を使ってみる
What for?
- アプリケーションを実行するために、リソースの計画をして、サーバーを立てて、それを監視する必要があるが、それはだるい。
- リソース管理や監視は全部Lambdaがやってくれるので、アプリケーション開発に集中できる。
どういうことができる?
- イベントをトリガとして、プログラムを非同期実行できる
- データ処理、ファイル処理、ストリーム処理、DB抽出、IoTバックエンドetc...
- イベントにはプルイベント、プッシュイベント、スケジュールイベントがある
- プルイベント: Lambdaが某のイベント発生をポーリングする
- プッシュイベント: Lambdaに某がイベントを発行する
- スケジュールイベント: cronのようなもの
- 監視はCloudWatchでモニタリング可能
- バージョン管理がある。
お値段は?
- 2016/4/23時点で
- リクエストのうち毎月最初の 1,000,000 件は無料
- その後は 0.20 USD/1,000,000 件のリクエスト(0.0000002 USD/秒)
やってみる
とりあえずScheduled Eventで走らせてみる
Create New function
Step 1: Select blueprint
はSkipStep 2: Configure function
- 名前つけて、言語選択して、
Edit code inline
にコードを貼り付ける。 - ロールは
Basic execution role
でOK。その他はdefaultで。
- 名前つけて、言語選択して、
設定し終わったら
Event source
タブから、1分ごとのScheduled Event を設定するNode.js でとりあえず以下のコードで実行してみる
console.log('Hello World');
- Monitoring タブを確認したら、めっちゃ
Handler 'handler' missing on module 'index'
エラーが出た
exports.handler = function (event, context) { context.succeed('Hello World'); };
- ちゃんと書いた。問題なく1分ごとにlogが吐かれている。
- 止めるときは、Event sourceをDisableにする