2
3

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】LocalでLambda予行練習

Posted at

今回は、AWSのLambdaサービス入門者向け、ローカルでいろいろ検証したい方向け、にそれっぽい環境を立ち上げることができるリポジトリを作ってきました。

対象

  • 入門者(初学者)
  • 知識の理解とかいいから、取り急ぎでローカル環境を作りたい人

※ 記事内で利用する各サービスについての紹介は省かせていただきます。
※ 取り急ぎ環境を立てたい人向けの記事です。

この記事を読めばなにができるの?

「LocalでLambdaが動作する環境」をすぐ立ち上げることが可能

ゴール

ブラウザアクセス(CLIアクセス)して、JSONが返ってくるところまで。

手順

この記事を読むのすらもめんどくさい人向けに、3ステップで終わる手順書を別で用意してます。

そんなめんどくさがり屋なあなたにはこちら

001. SAM CLI のインストール

AWS SAM CLIをインストールします。

Macの場合

brew tap aws/tap
brew install aws-sam-cli

その他のOSのインストール方法は公式ドキュメントを参照してください。

002. 初期設定

以下のコマンドで、関数の設定、ランタイムの設定等ができます。

sam init

もちろん手動で Yamlファイルを作成することも可能です。

記事内で initコマンドの詳細は説明しません。

私は以下のようにテンプレートファイルを作りました。

template.yaml
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Description: >
  SAM Local Sandbox

  Template for "SAM Local Sandbox"

Globals:
  Function:
    Timeout: 3
    LoggingConfig:
      LogFormat: JSON
Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: app/
      Handler: app.handler
      Runtime: nodejs20.x
      Architectures:
        - x86_64
      Events:
        HelloWorld:
          Type: Api
          Properties:
            Path: /hello
            Method: get

簡単に説明すると。
/helloにアクセスしたら、app ディレクトリ内の、app.cjs 内の handler関数が呼び出せるよ。
って感じ。

003. JS関数の用意(サンプル)

app/app.mjs
export const lambdaHandler = async (event) => {
    return {
        statusCode: 200,
        body: JSON.stringify({ message: "Hello World!" }),
    };
};

004. 動作確認

以下のコマンドでローカル環境を起動します。

sam build && sam local start-api

ローカルのAPI Gatewayが立ち上がり、アクセス可能になります。

ブラウザまたはCLIで以下にアクセスしてください。

http://{ローカルのホスト}/hello

期待されるレスポンス

{
    "message": "Hello World!"
}

まとめ

ローカル環境でLambdaを動作させる基本的なセットアップが完了しました。

初学者の方にとって、理解が深まるような教材となっていれば幸いです。
質問やフィードバックがあれば、リポジトリのIssues、本記事のコメント等お待ちしております。

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?