【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】を選択します。
3-2. RestAPI作成
メニューからRestAPIを選択します。今回はVPCを使用していないので、通常のRestAPIを選択します。【Build】で次へいきます。
3-3. RestAPI設定
デフォルトの設定で大丈夫です。【API name】だけ入力必須です。
3-4. API Gatewayメニュー
これでAPI Gatewayのメニューが開くので、右のメニューから【Resources】を選択し、隣のフィールドの【Action】ボタンを押し、
アクションを選択します。アクションの中から【Create Method】を選択し、メソッドを作成します。
3-5. メソッド選択
【POST】を選択します。これは以前のLambdaでデータ受け取りをPOSTと想定している為です。
3-6. メソッド設定
メソッドの設定を行います。まずは主に呼び出しLambdaの指定です。【Integration Type】が【Lambda】になっていることを確認することと、【Use Lambda Proxy Integration】にチェックが入っていないことを確認します。今回の実装では統合をLambdaではなく、OPTIONSメソッドのMockで行うのでLambda Proxyは不要になります。これは後で記述します。
呼び出したいLambdaのリージョンを選択してからLambdaの名前を入力してもらえれば自動で補完されます。
3-7. CORS設定
次に【アクション】から【Enable CORS】を選択し、このメソッドのCORS設定を有効にします。
画面移動したらデフォルトのまま【Enable CORS and replace existing CORS headers】をクリックします。
次に出るポップアップも【Yes】を押すと自動で色々設定されます。【OPTIONS】メソッドが新たに作成されているのも確認できます。
3-8. API Gatewayのデプロイ
Resourceのデプロイを行います。アクションから【Deploy】を選択してください。
【Deploy Stage】は初回であれば【New Stage】とし、【Stage Name】を入力して【Deploy】を押してください。
すると、ステージメニューに遷移し、【Invoke URL】が表示されるので、curlなどで叩いてレスポンスが返ってくれば成功です。
3-9. 終わりに
簡単にAPI Gatewayの実装を説明しました。CORSはエラーがよく起こる設定なので、CORSエラーが出た時は正しいURLとパスなのか、レスポンスの設定は合っているかを確認してください。手動設定がめんどくさい人様にcloudformationのtemplate作成もいつかやります。
また、今回まともに疎通テストの部分をやっていないので、curlだけ出なく、クライアントも作成した記事を作ろうかと思います。