ITのチカラで、デジタルビジネスへの変革を。

AWS Lambdaでサーバレスアプリケーションを開発!【触って覚えるAWS入門】

#AWS #Lambda #触って覚えるAWS入門

はじめに

シリーズまとめはこちら

AWS入門!サービス別一覧

挨拶

こんにちは。
日商エレクトロニクスの北川です。

ここ数年でクラウドサービスの需要は加速度的に増え、
今やエンジニアにとってクラウドサービスは知っていて当然のものとなってきました。

このブログではAWS入門シリーズとして、
新入社員の方や、クラウドを触り始めようとしている方に向けて
AWSのサービスの使い方を紹介していきます!

それぞれのサービスでは細かい設定項目や種類がありますが、
このシリーズでは最低限覚えるべき部分のみにフォーカスをして紹介します。

今回は、
Lambdaを利用してサーバレスなアプリケーションを開発する方法をご紹介していきます!

(本記事は2019/4/23時点の内容となります。)

今回の目標

やること

Lambdaを使って開発環境を構築します!

習得できること

・Lambdaの使い方

使用サービス紹介

Lambda

公式ページ

https://aws.amazon.com/jp/lambda/

忙しい人向けの説明

正式名称:AWS Lambda

サービス概要:
サーバのプロビジョニングや管理する必要なく、コードを実行できます!
PythonやNode.js、Java、Rubyなどのランタイムにデフォルトで対応しています!
EC2などと違い、コードが実行された時間に対してのみ課金が発生するため、費用も最小限に抑えることが出来ます!

怠惰系エンジニアの私は、作成したアプリケーションが動くインフラを管理することに多大なる苦痛を感じるので、そういった方には非常に良いサービスですね!

実際に触ってみる

Lambdaページへ移動

全てはマネジメントコンソールから始まります。
検索窓から「Lambda」と検索してLambdaページへ移動しましょう

 

関数を作成

関数作成画面へ移動

1. 関数の作成をクリックします。

 

関数情報を設定

1. 一から作成を選択します。
2. 関数名を記述します。
3. ランタイムでPython3.6を指定します。
4. アクセス権限の実行ロールで、新しいロールの作成を指定します。
5. 関数の作成をクリックします。

 

関数テスト

1. 関数が作成されたことを確認します。
2. テストをクリックします。
3. イベント名を記入します。
4. 作成をクリックします。
5. 作成したイベント名が表示されている状態で、テストを実行します。
6. 正常に動作が行われたことを確認します。

 

 

 

Tips:
・テストで設定した引数({key1: value1}など)とともに、関数が実行されます。
・実際にリクエストが飛んでくる場合のパラメータなどをテストに設定することで、コードの動作テストが可能になります。

関数を修正

デフォルトの関数では味気ないので、もう少しプログラマブルなコードに修正していきます。

if文による分岐追加

1. 下記のコードに修正します。

import json

def lambda_handler(event, context):
    if event['key1'] == 'value1':
        # TODO implement
        return {
            'statusCode': 200,
            'body': json.dumps('Key1 is value1')
        }
    else:
        # TODO implement
        return {
            'statusCode': 200,
            'body': json.dumps('Key1 is not value1')
        }

2. テストを実行し、動作を確認します。

 

テストデータの修正

1. テストイベントの設定を選択します。
2. イベントのkey1のパラメータを適当に変えます。
3. 保存をクリックします。
4. テストを実行し、動作を確認します。

 

 

 

Tips:
・テストで渡されるデータは event という変数に格納されます。
・今回はそのデータを参照に分岐を作っているという形です。

まとめ

例としては非常に簡単ですが、これで受け取ったデータをもとに処理が出来るようになりました!
実際にLambdaを活用するためにはAPI Gatewayとの連携がメジャーです!
API Gatewayの使い方も記事にしますので、それと合わせて自分だけのサービスを作ってみてください!

関連記事

AWS入門!サービス別一覧

Yusuke Kitagawa

この記事を書いた人

Yusuke Kitagawa

自動化、クラウド周りのエンジニア。
最近はDeepLearningにも手を出し始めました。
AWS SAA / JDLA G検定