【AWS】Lambdaの作成方法

スポンサーリンク
【AWS】Lambdaの作成方法AWS
この記事を読んで分かること
  • AWS Lambdaの作成方法

 

 

事前準備

AWS Lambdaを動作させるための環境設定をしておきましょう。

大きく2つの作業が必要です。

Lambdaを使う事前準備
  • IAMロールの作成
  • Lambdaで使うライブラリのインストール

IAMロールの作成

Lambdaが他のリソース(S3など)を操作するためには、IAMロールをアタッチして権限を付与する必要があります。

事前にアタッチするIAMロールを準備しておきましょう。

今回はLambdaからデータを保存できるように、LambdaにS3アクセス許可するIAMロールを作成していきます。

 

まず、AWSサービスの一覧を表示します。

AWS_サービスの選択

 

AWSサービス一覧のから「IAM」を選択します。

AWS_Iamサービスの選択

 

ロールを選択します。

ロールの選択

 

ロールを作成」を選択します。

ロールの新規作成

 

アクセス権を設定するエンティティを選択します。

lambda_エンティティの選択

 

次のステップ」を選択します。

ロールの新規作成_次のステップへ

 

S3にアクセスできるようにアタッチするポリシーを選択します。

今回はアクセスするS3を限定せず、FullAccessを設定しています。

lambda_ポリシーの選択

 

次のステップ」を選択します。

lambda_ポリシーの選択_次のステップへ

 

任意の名称をロールにつけます。

今回は「lambda-S3access」としました。

 

ロールの命名

 

最後に「ロールの作成」を選択すると、新しいロールを作成することができます。

ロールの命名_ロールの作成

 

これでLambdaにS3アクセス許可するIAMロールを作成することができました。

 

Lambdaで使うライブラリのインストール

デフォルトのLambda環境では使いたいライブラリがインストールされていない場合があります。

そのため、ライブラリを導入に必要なLambda Layersを作成しましょう。

 

Lambda Layersの作成方法はこちらの記事に掲載しています。

【AWS】Lambdaで使うライブラリをインストールする方法
この記事を読んで分かること Lambdaで使うライブラリのインストール手順 Lambda Layersのアップロード方法 Lambda Layersを適用する手順 Lambdaで使うライブラリ...

 

lambda関数の作成

実際に動作させるLambda関数を作っていきます。

まず、AWSサービスの一覧を表示します。

AWS_サービスの選択

 

AWSサービス一覧のから「Lambda」を選択します。

AWS_lambdaサービスの選択

 

関数の作成」を選択します。

lambda関数の作成

 

新しく作成するlambda関数の名前をつけます。

lambda関数の命名

 

ランタイムを選択し、使いたい言語を設定します。

ランタイムの選択

 

アクセス権の設定をするために、「デフォルトの実行ロールの変更」を選択します。

デフォルトの実行ロールの変更

 

既存のロールを使用する」を選択して、先程作ったロール(lambda-S3access)を使います。

既存のロールを使用する

 

関数の作成」を選択します。

lambda_関数の作成

 

lambdaのソースコードを作成していきます。

lambda_ソースコード作成

 

今回作成したのは以下のソースコードとなっています。

受け取った引数をもとにテキストファイルを作成し、S3に保存するものとなっています。

import json
import boto3

s3 = boto3.resource('s3')      # S3オブジェクトを取得

def save_s3(code, content):
    bucket = 'data-20220101'    # バケット名を指定
        
    key = str(code) + ".txt" 
    file_contents = content  # ファイルの内容(string)
    
    obj = s3.Object(bucket,key)     # バケット名とパスを指定
    obj.put( Body=file_contents )   # バケットにファイルを出力
    
    return

def lambda_handler(event, context):
    name = event["name"]
    save_s3(name, "hello")
    
    return

 

まとめ

AWS Lambdaを使ってサーバレスでプログラムを作成する方法を解説しました。

サーバレスにすることで運用時に環境のことを気にする必要がなくなり、アプリケーションに集中することができます。

また、Lambdaは料金が非常に安いのでコストパフォーマンスの優れた実装方法ですので、ぜひ使ってみてください。

コメント

タイトルとURLをコピーしました