【AWS】bitflyer注文受付API Gateway実装

【きっかけ】

過去の記事参照
 
buffalokusojima.hatenablog.com


1. 使用するサービス

(AWS)

  • Lambda

 
(外部サービス)


2. 概要

前回、作成したLambdaをAPI Gatewayに実装するところをやります。前回の記事は以下参照
buffalokusojima.hatenablog.com


3. 実装

3-1. API Gateway作成
AWSのコンソールメニューから【API Gateway】を選択し、【Create API】を選択します。

apigateway_create
API Gateway作成

3-2. RestAPI作成
メニューからRestAPIを選択します。今回はVPCを使用していないので、通常のRestAPIを選択します。【Build】で次へいきます。

RestAPI_create
RestAPI作成

3-3. RestAPI設定
デフォルトの設定で大丈夫です。【API name】だけ入力必須です。

RestAPI_edit
RestAPI設定

3-4. API Gatewayメニュー
これでAPI Gatewayのメニューが開くので、右のメニューから【Resources】を選択し、隣のフィールドの【Action】ボタンを押し、
アクションを選択します。アクションの中から【Create Method】を選択し、メソッドを作成します。

apigateway_menu
API Gateway メニュー

3-5. メソッド選択
【POST】を選択します。これは以前のLambdaでデータ受け取りをPOSTと想定している為です。

apigateway_post
【POST】選択

3-6. メソッド設定
メソッドの設定を行います。まずは主に呼び出しLambdaの指定です。【Integration Type】が【Lambda】になっていることを確認することと、【Use Lambda Proxy Integration】にチェックが入っていないことを確認します。今回の実装では統合をLambdaではなく、OPTIONSメソッドのMockで行うのでLambda Proxyは不要になります。これは後で記述します。
呼び出したいLambdaのリージョンを選択してからLambdaの名前を入力してもらえれば自動で補完されます。

apigateway_post_lambda
メソッド設定

3-7. CORS設定
次に【アクション】から【Enable CORS】を選択し、このメソッドのCORS設定を有効にします。

apigateway_cors_create
CORS設定

画面移動したらデフォルトのまま【Enable CORS and replace existing CORS headers】をクリックします。

apigateway_cors_create
CORS設定

次に出るポップアップも【Yes】を押すと自動で色々設定されます。【OPTIONS】メソッドが新たに作成されているのも確認できます。

apigateway_option_create
CORS設定

3-8. API Gatewayのデプロイ
Resourceのデプロイを行います。アクションから【Deploy】を選択してください。

apigateway_deploy
APIデプロイ

【Deploy Stage】は初回であれば【New Stage】とし、【Stage Name】を入力して【Deploy】を押してください。

apigateway_deploy_edit
APIデプロイ設定


すると、ステージメニューに遷移し、【Invoke URL】が表示されるので、curlなどで叩いてレスポンスが返ってくれば成功です。


3-9. 終わりに
簡単にAPI Gatewayの実装を説明しました。CORSはエラーがよく起こる設定なので、CORSエラーが出た時は正しいURLとパスなのか、レスポンスの設定は合っているかを確認してください。手動設定がめんどくさい人様にcloudformationのtemplate作成もいつかやります。
また、今回まともに疎通テストの部分をやっていないので、curlだけ出なく、クライアントも作成した記事を作ろうかと思います。