API GatawayとFunction Computeと連携して、どのようにサーバーレス構成のWebサービスを作るのかをステップバイステップでこの記事でまとめたいと思います。
ロジックは非常に簡単ですが、Function Computeはイベント駆動型サービスなので、言い換えれば、関数をトリガーするイベントによって実行します。イベント設定に関しては、API GatawayでバックエンドサービスをFunction Computeに指定すれば、リクエストが来た時その関数をトリガーし、実行した結果をAPI Gatawayに返すとの流れです。
Step1 Functionを作る
テンプレートを使いたいので、「テンプレート関数」と「api-gateway-nodejs6」を選択します。
関数の設定を行います。サービス名を入力し、それ以外は一旦デフォルトのままでOKです。
Step2 API Groupを作る
API作成を進める前に、まずAPI Groupを作る必要があるので、「インスタンス」を変更できないようで、グループ名だけを入力すればOKです。
Step3 APIを作る
キャプチャのように、APIを作成します。赤枠の認証部分は落とし穴ですので、要注意です。
セキュリティ認証はAlibabaCloudアプリを選定した場合のみ、APPCode認証を使うかどうかとの選択肢が表示されます。APPCode認証は基本的に同くAPI認証の役割を担っていますが、ただ署名などのオーバーヘッドの処理が必要ないので、効率が良いなどの利点が挙げられます。リリー後にオープンするのはお勧めです。
次はAPIリクエストの定義を行います。リクエストモードに「パラメーターをパススルー」を選択しても良いです。
そして、バックエンドを「FunctionCompute」を指定します。先ほど作成した関数名「demo001」を入力。
最後「レスポンスの定義」を設定します。JSON、XML、バイナリなどの形式を勿論選択することができます。
Step4 動作確認
API Gatewayがテスト用の機能が統合されてますので、サードパーティのテストツールを使わず一ヶ所で済むのは便利だと思います。
具体的には、下記の「API使用」から「アプリ」→「アプリの作成」を選択します。
アプリ作成ができたら、AppKeyとAppCodeも自動的に生成してくれます。
いよいよ動作確認をやりますが、さっき作成したAPIの「認証」操作を選択したら、下図の画面が出ますので、「ステージ」をテストにし、「アプリ」を作成済みの「AppDemo」にします。
最後はAPIをテスト環境にデプロイしなければいけないので、気をつけましょう。
「デバッグ」操作を選択したら、下記表示された画面でリクエストを発行してテストすることができます。認証方式はAPI署名との形でテストAppは先ほど承認を付与した「AppDemo」となっています。
最後
この記事でHTTPS対策、OpenID Connect認証、JWTのToken認証など高度なセキュリティ設定を触れなかったですが、必要な方はAlibabaCloud公式ドキュメントを参考にしてもらえば簡単に設定できると思いますので、ぜひ触ってみてください。