💭
APIを通して、バックエンドを動かす方法
バックエンド(Lambda関数)の作成
-
AWSコンソースからLambdaの画面を開く

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

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

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

API Gatewayのリソースを作成する
-
AWSコンソースからAPI Gatewayの画面を開く

-
「AgileTuneAPI」→ リソース作成を選択

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

[OPRION]メソッドの作成
-
作成したリソース「stickys」を選択 → メソッド作成

-
メソッドタイプ「OPTION」、統合タイプ「Mock」を選択 → メソッド作成
[OPRION]メソッドのレスポンスルールを設定
-
メソッドレスポンスタブで編集を選択

-
以下ヘッダーを追加して保存
- Access-Control-Allow-Headers
- Access-Control-Allow-Methods
- Access-Control-Allow-Origin
-
統合レスポンスタブで編集を選択

-
ヘッダーのマッピングに以下のマッピングルールを設定して保存
- Access-Control-Allow-Headers: '*'
- Access-Control-Allow-Methods: 'GET,OPTIONS,POST'
- Access-Control-Allow-Origin: '*'
[GET]メソッドの作成
-
API Gateway画面から「AgileTuneAPI」→ 「stickys」でメソッド作成を選択

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

-
Lambda関数で「GetStickys」を選択

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

-
[GET]メソッドのレスポンスルールを設定
-
メソッドレスポンスタブで編集を選択
POSTメソッドも設定は同じ

-
ヘッダーを設定して保存
- Access-Control-Allow-Origin
- Access-Control-Allow-Origin
APIリソースをデプロイする
- APIをデプロイを選択 → ステージ「dev」を選択してデプロイ

APIを送信してみる
-
API KEYの確認

-
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)
-
設定タブのアクセス権限を選択して、ロール名を選択

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

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

Discussion