Friendy Tech blog
written by friendy

2023/3/2 (更新日: 2023/3/2)

Serverless Frameworkを使用してAWS Lambdaを構築してみた

AWS

blog-detail-image

serverless frameworkとは?

Serverless Frameworkは、「サーバーレスアーキテクチャ」を使ってアプリケーションを開発・デプロイするためのフレームワークです。

AWS Lambda、Google Cloud Functionsなどの設定を手元のファイルに記述して、デプロイするだけで環境を構築することができます。


メリット

serverless frameworkのメリットとしては、

  • 多様なプラットフォームのサポートをしており、プラットフォームが異なっても同じ環境を構築ができる
  • 必要なリソースを最適化してくれるので、必然的にコストが削減できる
  • セキュリティに優れているので、セキュリティの面倒を見ることなくサーバーの運用ができる

といったものが存在します。

serverless frameworkでlambdaを構築する方法

以下の手順でaws lambdaの環境を構築することができます。

serverless frameworkをインストールする

ターミナルで「npm install -g serverless」と入力して、Serverless Frameworkをインストールします。

    
npm install -g serverless
    
  

AWSの認証情報を設定する

AWSのアクセスキーIDとシークレットアクセスキーを取得し、ターミナルで

    
serverless config credentials --provider aws --key [自分のアクセスキー] --secret [自分のシークレットキー]
    
  

と入力して認証情報を設定します。


新しいServerless Serviceを作成する

ターミナルで

    
serverless create --template aws-nodejs --path my-service
    
  

と入力して、新しいServerless Serviceを作成します。


Lambda関数を定義する

my-serviceディレクトリに移動し、serverless.ymlファイルを編集して、Lambda関数の定義を追加します。例えば、以下のようになります。

    
service: my-service
    provider:
        name: aws
        runtime: nodejs12.x
functions:
    hello:
    handler: handler.hello
    events:
        - http:
            path: /
            method: GET
    
  

上記の例では、Lambda関数"hello"が定義されており、"handler.hello"というハンドラー関数が使用されます。また、API Gatewayのエンドポイントとして、HTTPメソッドが"GET"でパスが"/"のエンドポイントが設定されています。


Lambda関数をデプロイする

ターミナルで

    
serverless deploy
    
  

と入力して、Lambda関数をデプロイします。これにより、関数コードがアップロードされ、関数が自動的に作成されます。