本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。
lambdaを使う
lambdaの作成画面に行ってください。
作成を押してください
左から
・一からの作成
・設計図の使用
あらかじめAWSで設計されているもの使用できる
・コンテナイメージ
・Serverless Application Repository
設計図の使用を選ぶ
hello-world-pythonと入れる
テンプレートが表示されるのでチェックボックスにチェックを入れて、左下の設定をクリック
関数名に名前を入れる
関数名をhello-pythonにしました(わかる名前であれば何でもよい)
実行ロールを選ぶ
・基本的な Lambda アクセス権限で新しいロールを作成
Lambda は、Amazon CloudWatch Logs にログをアップロードするアクセス権限を持つ、myFunctionName-role-cce1n10s という名前の実行ロールを作成します。
・既存のロールを使用する
あらかじめ作られているロールを使用できる
・AWS ポリシーテンプレートから新しいロールを作成
ロール名を決めて
ポリシーテンプレート・オプションを指定して作ることができます。
今回は基本的な Lambda アクセス権限で新しいロールを作成
を選びます。
下にLambda関数のコードが出ていますがここからは編集できません。
関数の作成を選ぶ
関数の概要画面に行く
下のほうをみるとコードソースが見れると思います。
テストを実行してみます。
オレンジのTestをクリック
テストイベントを設定の画面に行きます
新しいテストイベントの作成にチェックが入っているか確認
イベント名を入れてください(何でも良いです)
下にあるのがLambdaに渡されるJSONのコードになります。
下のほうにある作成をクリック
テストイベントが作成されます。
Testの横に▼あるので見ると自分が作ったイベントがあることが確認できると思います。
Testをクリックすると
Execution resultsが表示される
Execution resultsが表示されたと思います。
Response
"value1"が返ってきている
return event['key1'] となっているため
Version: $LATEST
バージョンは最新である
Duration: 1.62 ms
実行時間
Billed Duration: 2 ms
課金対象の時間
モニタリングをクリック
モニタリングにはさまざまなデータを見ることが出来る
ログをクリック
CloudWatchのログを表示をクリックすると
CloudWatchのログに画面遷移されます。
ロググループが
/aws/lambda/自分の決めた名前
に自動で決定しいます。
ログストリームにログの情報があるのでクリックしてみてください
実行したログを確認することが出来ます。
意図的にコードを変えてエラーを出す
Lambdaにもどり、コードソースに戻ります
#return event['key1'] # Echo back the first key value
raise Exception('Something went wrong')
このように書き換えてください
変えた後
Deployの横が
Changes not deployed
になっていますので
Deployをクリック
これで変更が更新されました
テストボタンを押す
Execution resultsでエラーの表示が出たと思います。
File "/var/task/lambda_function.py", line 12, in lambda_handler
raise Exception('Something went wrong')
CloudWatchのログを確認
[ERROR] Exception: Something went wrong Traceback (most recent call last): File "/var/task/lambda_function.py", line 12, in
とエラーログを確認できます。
このように呼び出しのたびにログが保存されます
ハンドラの情報
下のほうのランタイム設定を見るとハンドラとあります。
Infoをクリックすると
「関数の設定でハンドラーパラメーターを設定することで、呼び出すハンドラーメソッドをLambdaランタイムに指示できます。
Pythonで関数を構成する場合、ハンドラー設定の値は、ドットで区切られたファイル名とハンドラーモジュールの名前です。たとえば、main.Handlerは、main.pyで定義されたHandlerメソッドを呼び出します。」
説明文がでます
ファイル名とそのメソッドの名前が一致しないとエラーになるので注意
AMIの権限を見る
設定を開く
アクセス権限を選ぶと
logs:CreateLogGroup
hello-pythonを実行したらCloudWatchにロググループを作った権限
logs:CreateLogStream
LogStreamを作る権限
logs:PutLogEvents
logの情報を吐き出すことが出来る権限
最後に
またこの記事は AWS 初学者を導く体系的な動画学習サービス「AWS CloudTech」の課題カリキュラムで作成しました。
https://kws-cloud-tech.com/