💭

APIを通して、バックエンドを動かす方法

2024/04/26に公開

バックエンド(Lambda関数)の作成

  1. AWSコンソースからLambdaの画面を開く
    Lambdaの画面を開く

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

  3. 関数名を設定して「関数の作成」を選択
    関数の作成

  • APIが通ると"Hello from Lambda!"がレスポンス200で返却される
    Lambdaレスポンス

API Gatewayのリソースを作成する

  1. AWSコンソースからAPI Gatewayの画面を開く
    API Gatewayの画面を開く

  2. 「AgileTuneAPI」→ リソース作成を選択
    APIGatewayのリソース作成

リソースを作成する階層とリソース名を決める

  1. リソースを作成する階層とリソース名を決めて、リソース作成
    リソース情報の入力
  • 上記キャプチャだとエンドポイントは以下になる
    ※ステージ名はリソースのデプロイ先によって変わる
    ex) https://<API ID>.execute-api.ap-northeast-1.amazonaws.com/<ステージ名>/stickys

  • (補足) エンドポイントの見方
    エンドポイントの見方

[OPRION]メソッドの作成

  1. 作成したリソース「stickys」を選択 → メソッド作成
    メソッド作成へ遷移

  2. メソッドタイプ「OPTION」、統合タイプ「Mock」を選択 → メソッド作成


[OPRION]メソッドのレスポンスルールを設定

  1. メソッドレスポンスタブで編集を選択
    メソッドレスポンスを編集

  2. 以下ヘッダーを追加して保存

    • Access-Control-Allow-Headers
    • Access-Control-Allow-Methods
    • Access-Control-Allow-Origin


  3. 統合レスポンスタブで編集を選択
    統合レスポンスを編集

  4. ヘッダーのマッピングに以下のマッピングルールを設定して保存

    • Access-Control-Allow-Headers: '*'
    • Access-Control-Allow-Methods: 'GET,OPTIONS,POST'
    • Access-Control-Allow-Origin: '*'

[GET]メソッドの作成

  1. API Gateway画面から「AgileTuneAPI」→ 「stickys」でメソッド作成を選択
    メソッド作成へ遷移(GET)

  2. 以下を設定してメソッド作成を選択

    • メソッドタイプ「GET」、統合タイプ「Lambda」、Lambda プロキシ統合にチェック
      ※POSTメソッド作成の場合はメソッドタイプ「POST」を選択。他の設定は同じ
      GETメソッド設定1

    • Lambda関数で「GetStickys」を選択
      GetStickysを選択

    • メソッドリクエストの設定
      メソッドリクエストの設定

[GET]メソッドのレスポンスルールを設定

  1. メソッドレスポンスタブで編集を選択
    POSTメソッドも設定は同じ
    GETメソッドのメソッドレスポンスを編集

  2. ヘッダーを設定して保存

    • Access-Control-Allow-Origin

APIリソースをデプロイする

  1. APIをデプロイを選択 → ステージ「dev」を選択してデプロイ
    APIのデプロイ

APIを送信してみる

  • API KEYの確認
    API KEYの確認

  • PostmanでのAPI送信キャプチャ
    PostmanでのAPI送信
    Lambdaの処理が返ってきた!

  • CurlでのAPI送信

curl --location 'https://<API ID>.execute-api.ap-northeast-1.amazonaws.com/dev/stickys' \
--header 'authorizationToken: allow' \
--header 'x-api-key: <API KEY>'


(補足)Lambdaから他AWSリソースにアクセスする場合(DynamoDB)

  1. 設定タブのアクセス権限を選択して、ロール名を選択
    ロールへ遷移

  2. 許可の追加で「ポリシーのアタッチ」を選択
    許可の追加

  3. 今回はLambdaからDynamoDBへアクセスする想定のため、「AmazonDynamoDBFullAccess」を選択して許可を追加する ※LambdaからアクセスしたいAWSリソースがあればポリシーの追加が必要
    DynamoDBの許可ポリシー

Discussion