0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

40 代おっさんLambdaを使ってみる

Posted at

本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

lambdaを使う

lambdaの作成画面に行ってください。

作成を押してください

image.png

左から

・一からの作成

・設計図の使用
あらかじめAWSで設計されているもの使用できる

・コンテナイメージ

・Serverless Application Repository

設計図の使用を選ぶ

hello-world-pythonと入れる

テンプレートが表示されるのでチェックボックスにチェックを入れて、左下の設定をクリック

関数名に名前を入れる

関数名をhello-pythonにしました(わかる名前であれば何でもよい)

実行ロールを選ぶ

・基本的な Lambda アクセス権限で新しいロールを作成
Lambda は、Amazon CloudWatch Logs にログをアップロードするアクセス権限を持つ、myFunctionName-role-cce1n10s という名前の実行ロールを作成します。
・既存のロールを使用する
あらかじめ作られているロールを使用できる
・AWS ポリシーテンプレートから新しいロールを作成
ロール名を決めて
ポリシーテンプレート・オプションを指定して作ることができます。

今回は基本的な Lambda アクセス権限で新しいロールを作成
を選びます。

下にLambda関数のコードが出ていますがここからは編集できません。

関数の作成を選ぶ

関数の概要画面に行く

image.png

下のほうをみるとコードソースが見れると思います。

テストを実行してみます。
オレンジの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/

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?