4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

API GatewayからLambdaを呼び出す

Last updated at Posted at 2019-10-02

はじめに

この記事はサーバレスの勉強用として試したことまとめたものです。
今回はAPI GatewayとLambdaの連携を確認してみました。

API Gatewayとは

  • APIの作成、監視、管理ができるサービスである。
  • Webアプリのバックエンドデータやビジネスロジックにアクセスできる。
  • サーバ管理が必要ないためLambdaと組み合わせてサーバレスアプリケーションを構築できる。
  • 公式ドキュメント

    https://aws.amazon.com/jp/api-gateway/

Lambdaとは

  • サーバを準備することなくLambda関数と呼ばれるコードを実行できる。
  • 実行時間に制限があるため時間を要する処理には不向きである。
  • 様々なイベントをトリガーにLambdaを実行することができる。
  • 公式ドキュメント

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

Lambda関数の作成

  • 以下のような値を表示するスクリプトを作成する。
import boto3
import json

def lambda_handler(event, context):
    print(json.dumps(event))
    return {
        'statusCode' : 200,
        'headers' : {
            'content-type' : 'text/html'
        },
        'body' : '<htm><body>OK!!</body></html>'
    }
  • API Gatewayから呼び出されたイベント内容
項目 内容
resource 呼び出し元のリソース名
path URLパス
httpMethod GET、HEAD、POSTなどのHTTPメソッド
headers クライアントから送られたHTTPヘッダー
queryStringParameter URLの末尾(?以降)に付けられたパラメータリスト
pathParameter URLの末尾(?以降)に付けられた拡張パス名
stageVariables ステージに設定された変数値群
requestContext クライアント リクエストに関するコンテキスト情報
body クライアントから送られたbody部のデータ
isBase64Encodeed bodyがBase64エンコードされているか

API Gatewayの作成

APIGateway_API作成.png * メソッドリクエストの設定。 APIGateway_メソッドリクエスト確認.png * 統合リクエストの設定。 APIGateway_統合リクエスト確認.png

アクセス確認

  • エンドポイントを呼び出して確認する。
APIGateway_アクセス確認.png

まとめ

  • API Gatewayを作成するとエンドポイントと呼ばれるURLが作成される。
  • 作成されたエンドポイントにリスクエスト送信することでLambda関数を呼び出すことができる。
  • 次はS3で静的なWebサーバを利用して動作を確認してみたい。

参考

4
5
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
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?