LoginSignup
1
1

More than 3 years have passed since last update.

[AWS]Lambda + API Gateway でモックAPIを作る

Posted at

Lambda + API Gateway でモックAPIを作成してみたのでメモ

リージョン:東京

Lambda

Lambda公式

Lambdaを作成する

Lambdaの画面 から、関数の作成を選択

スクリーンショット 2021-03-30 19.48.27.png

関数の作成

  • エンジンのタイプ : 一から作成

スクリーンショット 2021-03-30 19.52.03.png

基本的な情報

以下を入力し、関数の作成を選択

  • 関数名 : test
  • ランタイム : Node.js 14.x
  • 実行ロール : AWS ポリシーテンプレートから新しいロールを作成
  • ロール名 : testRole
  • ポリシーテンプレート - オプション : 空白

スクリーンショット 2021-03-30 19.56.22.png

関数の完成

これで関数が完成しました。雛形が表示されているので確認してみます。
コードソースから、 index.js を選択

スクリーンショット 2021-03-30 19.57.27.png

exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

ステータスコード200と、簡単な文字列を返却するサンプルコードが記述されています。
次はAPI GatewayからこちらのLambda関数を呼び出してみます。

API Gateway

API Gateway公式

API Gatewayを作成する

API Gatewayの画面 から、APIを作成を選択

スクリーンショット 2021-03-30 19.41.09.png

API タイプを選択

以下から選択できます。今回は REST API で構築を選択

  • HTTP API
  • WebSocket API
  • REST API

スクリーンショット 2021-03-30 19.41.51.png

新しいAPIの作成 / 名前と説明

以下のように選択し、APIの作成を選択

  • 新しいAPIの作成 : 新しいAPI
  • API名 : test
  • 説明 : テスト用モックAPI

スクリーンショット 2021-03-30 19.44.19.png

リソースの追加

現状は何もリソースがない状態なので追加します。アクション → リソースの作成を選択

スクリーンショット 2021-03-30 20.05.11.png

以下のように設定し、リソースの作成を選択

  • プロキシリソースとして設定する : チェックしない
  • リソース名 : test
  • リソースパス : test
  • API Gateway CORS を有効にする : チェックしない

スクリーンショット 2021-03-30 20.05.25.png

メソッドの追加

リソースは追加できましたが、メソッドがない状態なので追加します。アクション → メソッドの作成を選択

スクリーンショット 2021-03-30 20.12.22.png

今回はGETメソッドを作ってみます。
表示されたプルダウンからGETを選択し、以下を入力し保存を選択

  • 統合タイプ : Lambda 関数
  • Lambda プロキシ統合の使用 : チェックを入れる
  • Lambdaリージョン : ap-northeast-1
  • Lambda関数 : test
  • デフォルトタイムアウトの使用 : チェックを入れる

スクリーンショット 2021-03-30 20.14.11.png

これで API Gateway と Lambdaの連携ができるようになりました!

スクリーンショット 2021-03-30 20.16.47.png

APIのデプロイ

APIをデプロイします。 アクション → APIのデプロイを選択

スクリーンショット 2021-03-30 20.16.53.png

デプロイするステージを選択します。今回は初回なので、新規に作成していきます。
以下を入力し、デプロイを選択

  • デプロイされるステージ : [新しいステージ]
  • ステージ名 : test
  • ステージの説明 : test
  • デプロイメントの説明 : 空白

スクリーンショット 2021-03-30 20.17.08.png

デプロイしたので、URLの呼び出し欄にURLが表示されます。

スクリーンショット 2021-03-30 20.22.11.png

今回追加したリソースパスの /test を呼び出したいので [表示されたURL]/test でアクセスしてみます。

スクリーンショット 2021-03-30 20.25.25.png

先ほどのLambdaに設定されていた文字列が表示されました!
これで設定完了です。

JSONモックにする

JSONを返せるようにしてみます。
設定は完了しているので、あとはLambda側を編集するだけでOKです。

簡単にユーザーIDとユーザー名を返すようにしてみます。

exports.handler = async (event) => {
    let responseCode = 200;
    let responseBody = {
        status: 'success',
        user_id: 'TEST012345',
        user_name: 'tora_test'
    };
    let response = {
        statusCode: responseCode,
        body: JSON.stringify(responseBody)
    };
    return response;
};

編集したら、Deployボタンを押し忘れないようにしましょう。

スクリーンショット 2021-03-30 20.29.18.png

再度確認し、設定したJSONが返ってきたら完成です。

スクリーンショット 2021-03-30 20.30.26.png

1
1
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
1
1