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?

AWS Lambdaを単体で動かしてみた

Posted at

参考にしたハンズオン

公式で公開されている以下のハンズオンを見ながら自分でやってみました。

このハンズオンのゴールは以下の構成ですが、本記事ではAWS Lambdaを単体で動かしてみます。
image.png

やってみる

マネジメントコンソールにアクセスし、Lambdaのページにアクセスします。
「関数の作成」をクリックします。
image.png

関数は一から作成します。
関数名を入力し、ランタイムにPythonを選択します。
image.png

「デフォルトの実行ロールの変更」を開くと、ロールを作るかどうかを設定できます。
「基本的なLambdaアクセス権限で新しいロールを作成」を選択し、CloudWatch Logsにログをアップロードする権限を持つロールを作成します。
「関数の作成」をクリックします。
image.png

Lambda関数が作成されました。
作成された関数は以下です。
「Hello from Lambda!」を出力するだけの関数です。

export const handler = async (event) => {
  // TODO implement
  const response = {
    statusCode: 200,
    body: JSON.stringify('Hello from Lambda!'),
  };
  return response;
};

この関数の設定をいじっていきます。
「設定」タブをクリックします。
image.png

「編集」をクリックします。
image.png

Lambda関数に割り当てるメモリをデフォルトの128MBから256MBに変更します。
タイムアウトはデフォルトの3秒から10秒にします。
image.png

下の方までスクロールすると、自動的に作成されたロールを確認できます。
赤枠の「ロールを表示」をクリックします。
image.png

別タブでロールの画面が開きました。
赤枠の+をクリックして詳細を確認してみます。
image.png

Lambda関数がCloudWatch Logsにログを出力するために必要な権限が設定されています。
5~7行目は新しいロググループを作成するための権限、10~16行目は新しいログストリームの作成とログイベントを書き込む権限を許可しています。
image.png

Lambdaのページに戻って「保存」をクリックします。
image.png

Lambda関数の設定が保存されました。
作成した関数を動かしてみます。
「テスト」タブをクリックします。
image.png

イベント名にtestと入力し、「保存」をクリックします。
他の設定はデフォルトで行きます。
「テスト」をクリックしてテストを実行します。
image.png

一瞬でテストが終わりました。
「詳細」をクリックしてみます。
image.png

Hello from Lambda!が出力されています。
image.png

次はこのLambda関数を修正します。
「コード」タブをクリックし、関数を修正後、「Deploy」をクリックします。
image.png

関数を以下のように修正します。
関数に渡されたデータをロギングするように修正しています。

import json
import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def lambda_handler(event, context):
    
    logger.info(event)    
    
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

早速関数をテストしてみます。
「テスト」タブをクリックし、「保存されたイベントを編集」を選択し、先ほど作成した「test」イベントを選択して「テスト」をクリックします。
下側のイベントJSON欄に記載されているキーとバリューがロギングされれば成功です。
image.png

成功したみたいです。詳細を見てみましょう。
image.png

下のログ出力部分を見ると、INFOの欄にキーとバリューがロギングされていることが分かります。
「モニタリング」タブをクリックします。
image.png

「CloudWatchログを表示」をクリックします。
image.png

ログができています。クリックして詳細を見てみます。
image.png

赤枠の箇所に、関数に渡されたキーとバリューが入っています。
青枠の箇所には、関数の実行時間などがロギングされています。
image.png

成功ですね!

おわりに

今回はLambdaを単体で動かしてみました。
このハンズオンにはまだまだ続きがありますので、別記事で残します。

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?