LoginSignup
1
1

More than 3 years have passed since last update.

Bubble用のAPIを AWSで Lambda と API Gateway を使って作成する

Last updated at Posted at 2021-02-11

概要

  • Bubble の API Connector から呼び出す先のAPIを作成する
    • サンプルとして、名前と回数を受け取り、挨拶を返すAPIを作成する
  • BubbleからのパラメタはqueryStringParametersに入る
  • AWSを使う
    • Lambdaを使うと、サーバのことを考えずにコードを実行できる
    • API Gatewayを使うと、APIの構築、デプロイ、管理ができる。URLを割り当ててくれる。
  • (本番運用の際はセキュリティを考慮する)

Lambda関数の作成(Python)

関数の作成

  • Lambdaの画面を開く
  • 「関数の作成」ー「一から作成」
  • 以下で作成
    • 名前: greeting
    • ランタイム: Python 3.8

image01.png

  • 関数コードを以下で作成 (lambda_function.py)
import json

def lambda_handler(event, context):
    if not 'queryStringParameters' in event:
        return {
            'statusCode': 200,
            'body': json.dumps({'description': 'no query found.'})
        }

    query = event['queryStringParameters']
    name = query['name']
    count = query['count']
    description = f'{name} say hello {count} times.'
    greeting = name + ': ' + 'hello ' * int(count)

    return {
        'statusCode': 200,
        'body': json.dumps({
            'description': description,
            'greeting': greeting,
        })
    }

テストイベントの追加とテスト

  • 右上の「テスト」の左にある欄をクリックし、「テストイベントの設定」

image02.jpg

  • テストイベントを以下で作成
    • 新しいテストイベントの作成
    • イベントテンプレート: hello-world
    • 名前:greetingTest01
    • jsonは以下の通り
{
  "queryStringParameters": {
    "name": "jansnap",
    "count": "3"
  }
}

image03-2.png
image03-3.png

  • 「テスト」をクリックして、テストを実施
    • statusCodeに200(OK)が返ってくること
    • bodyに想定通りの文字列が返ってくること image04.jpg

API Gateway の設定

トリガの設定

  • 下の方のデザイナの欄で、「トリガーを追加」をクリック

image05.png

  • 以下で設定
    • トリガーを選択: API Gateway
    • API: APIを作成する
    • APIタイプ: HTTP API
    • セキュリティ: オープン
    • API名: greeting-API
    • デプロイされるステージ: default

image06.png
image07.png
image08.png

  • デザイナ画面に戻り、API Gatewayが追加されているのを確認する image09.png

API Gateway のURLの確認

  • 下にスクロールして、API Gatewayをクリックし、「APIエンドポイント」のURLをコピーしておく(Bubbleで呼び出す際に使う)

image10-2.jpg

続いて、APIを呼び出す設定をBubble側で行います

参考URL

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