DEVELOPER BLOG

開発者ブログ

HOME > 開発者ブログ > 【AWS入門】5分でできるシンプルなサーバーレスAPI構築 - PrismScaler

【AWS入門】5分でできるシンプルなサーバーレスAPI構築 - PrismScaler

1. はじめに

こんにちは!株式会社Definerの阪本です!
今回は、AWSを使ってシンプルなサーバーレスAPIを構築してみたいと思います。

2. 目的・ユースケース

この記事では、シンプルなサーバレスAPIを作ってみたいという目的に向けて、AWS LambdaやDynamoDB、API Gatewayというサービスを活用します。
ITの現場で、AWSでシンプルなサーバレスAPIをサクッと構築したいときに、参考になる情報やプラクティスをまとめています。

3. データベースのセットアップ

まずは、データベースを作っていきます。
データベースとしては、AWSマネージドのNoSQLであるDynamoDBを使用します。
DynamoDBの操作については、「DynamoDBデータをCRUD処理する」も参考にしてみてください。
 
①DynamoDBの作成
DynamoDBのコンソールへアクセスし、「テーブルの作成」をクリックします。
テーブル名は「employee」、パーティションキーは「id」とし、テーブルを作成します。
DynamoDBのコンソールから「項目を探索」をクリックし、「項目を作成」から項目とサンプルデータを作成します。
 
以下のようなテーブルが作成できました。

4. Lambdaの作成

続いて、Lambdaを使ってアプリケーション部分を実装していきます。
 
①Lambdaの作成
Lambdaのコンソールへアクセスし、「関数の作成」をクリック
ランタイムはPython3.9を選択しました。
コードは、以下をコピペして使ってください。
 
注意点として、以下2つに気をつけましょう。
・DynamoDBにアクセスできるIAMロールのアタッチが必要です。
・API Gatewayと統合する際は、returnの内容を以下の形式にしてください。
 
import json
import boto3
from boto3.dynamodb.conditions import Key,Attr

def lambda_handler(event,context):
    __TableName__ = "employee"
    Primary_Column_Name = 'id'
    Primary_Key="1"
    columns=["LastName","FirstName","Gender"]
    client = boto3.client('dynamodb')
    DB=boto3.resource('dynamodb')
    table=DB.Table(__TableName__)
    
    response=table.get_item(
    Key={
        Primary_Column_Name:Primary_Key
    })
    
    return {
        'isBase64Encoded': False,
        'statusCode': 200,
        'headers': {},
        'body': json.dumps(response["Item"])
    }                

5. API Gatewayの実装

最後に、API GatewayとLambdaを統合していきます。
 
①API GatewayとLambdaの統合
Lambdaの詳細画面から、「設定」→「トリガー」→「トリガーを追加」
API Gatewayを選択し、「REST API」を選択します。
Securityは今回はOpenにしましたが、実際のAPI構築の際はIAMやトークンなどで認証を設けてください。
「追加」をクリックすると、Lambdaと統合されたAPI Gatewayが作成されます。
 
②API GatewayのアクセスURLの確認
API Gatewayの詳細画面に移動し、「ステージ」タブをクリックすると、「URLの呼び出し」にAPIのURLが記載されています。
 
## アクセスするURL
https://xxxxxx.execute-api.ap-northeast-1.amazonaws.com/default/${LAMBDA名}                
 

ブラウザから以下URLにアクセスすると、DynamoDBのデータがGETできていることが確認できました!

 

6. 引用・参考記事

7. 独自ソリューション「PrismScaler」について

・ PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。
・ クラウド基盤にまつわる「自動構築」「自動監視」「問題検知」「構成可視化」などの効率化を実現し、クラウドエンジニア、SRE/DevOpsエンジニアが行う泥臭く大変な作業を肩代わりするソリューションです。
・ クラウド基盤構築/クラウド移行や、クラウドの保守運用・コスト最適化など幅広い利用シーンを想定しており、IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。
 

8. お問合せ

本記事では、入門編として有益な情報を無料公開しています。ご相談やお問い合わせは「株式会社Definer」へ。

9. Definerに関して。

・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。