FaaS(Function as a Service):Lambdaとは
Lambda(ラムダ)とは、AWSのサービスの1つです。
小さな計算をサーバーなしで実行するためのサービスで、サーバレスなコンピューティングサービスなどと言う紹介のされ方が一般的です。関数の種類としては所謂イベントドリブン型と言われるやつで、特定のイベントでトリガーされ、関数が動くという仕組みです。ざっくり過ぎてすみません。
Lamdaの料金体系
無料枠について。
アカウント作成時はLambdaの場合「1,000,000リクエスト/月」無料で使用可能です。個人開発の範囲であれば越えることはまずないと思います。
関数の作成
{
"file_name":"a.json"
"author":"keitootiek"
"age":"28"
}
~
~
~
"a.json" 5L, 53B
↑jsonファイルのサンプル。
①関数名 ・・・何をするための関数か。自他共に分かりやすい関数名をつけましょう。
②ランタイム ・・・デフォルトだとNode.jsですが、RubyやPython、Goなども選択できますよ。ビジネスロジックを記述する言語の種類を指定します。
大まかな流れは②で指定したビジネスロジックを関数としてアップロード⇨S3やdynamo DBなど別のAWSサービスをトリガーとしてセットしておいたLamda関数を実行するというものです。
上述のようにサーバレスなのでサーバ管理が不要であること、ミリ秒単位での課金なので実行しない関数に関しては0円というメリットがあります。
TestとDeployという2つのボタンがありますが、
コードに変更を加えた際にデプロイを行い(Lamdaに変更をアップロード)、テストボタンを推してテストを行う(動作確認)というのが主な使い方です。
少し下にスクロールすると上の画像のような表示があります。
今回ランタイム設定は特に触りません。
ハンドラというのは、実行する関数です。この場合は「lamda_function」の「lamda_handler」を実行しますよという意味ですね。
必要に応じてハンドラのファイル名を変更して実行する対象の関数を切り替えたい場合などに編集します。
作成時の権限
設定⇨アクセス権限⇨リソースの概要でサービスの連携情報(アクセス権限)も確認できます。
Lamda関数の新規作成時にCloudwatch logsに対してのアクセス許可を選択していたので、ここで確認できるというわけですね。
いざTEST
デフォルトのままなので当然っちゃ当然ですが、
問題なくHTTPコード200のレスポンスがレスポンスが返ってきましたね。
これはあくまで雛形なので、Pythonやその他の言語も用いて本格的に関数を作っていくことにも挑戦してみたいと思います。
最後までご覧いただきありがとうございました。