Claudia.jsサーバレスアーキテクチャと聞いて、どのようなアーキテクチャを思い浮かべるでしょうか。Fowler.comのサーバレスアーキテクチャの解説記事ではいくつかのサーバレスアーキテクチャの実装例がリストアップされています。ここでは、最もよく使われると思われるフロントエンドアプリのためのサーバレスアーキテクチャを考えてみます。Gateway、Lambdaを中心とした標準的な構成です。GatewayとLambdaの連携、認証認可の実装、Lambdaの管理、デプロイや更新処理など面倒極まりない作業に直面します。何らかの抽象化レイヤーやツール無しにAWS上でサーバレスアーキテクチャを実現するのは困難だと実感しています。ここでは、Claudia.jsというNode.js製のフレームワークを用いてこれらの課題を解決し、フロントエンドアプリのためのサーバレスアーキテクチャーを簡単に実現してみます。Claudia.jsとはClaudia.jsAWS上でサーバレスアーキテクチャを実現するためのフレームワークの一つです。同様のフレームワークとしてServerlessやApex等が知られています。Lambdaにフォーカス。citizenで無いと言っており連携が煩雑。YamlにAWSの設定を大量に記述するスタイル。Gatewayや外部認証までをも含めたサーバレスアーキテクチャ全体を通して実装するのが簡単です。Node.jsでExpressを用いたAPIサーバを書いていくようなイメージで、設定ファイルを記述していくServerless等と比較して柔軟な処理が行えます。Claudia.jsをインストールします。プロジェクトを作成します。以下のようなフロントエンドアプリを実装してみます。エラー処理や詳細は割愛します。World的なものはCloudia.jsのTutorialをみた方が手っ取り早いです。フロントエンドアプリがSNSの認証認可APIからOAuthのアクセストークンを取得する。Gatewayにリクエストを投げる。GatewayがSNSの認証認可APIを用いてアクセストークンを検証する。GatewayがFaaSの関数を呼び出す。DynamoDBのテーブルからデータを取得してフロントに返す。カスタム認証用のLambda関数を作成します。authorizer.jsを作成します。Token検証APIを呼び出して有効な場合にAPI実行権限を付与しています。デプロイclaudiaコマンドでカスタム認証用のLambda関数をAWSにデプロイします。APIとLambda関数を作成します。app.jsという名前にします。デプロイclaudiaコマンドでAWSにデプロイします。設定ファイルclaudia.jsonが自動で作られます。ReadCapacityUnits=1,WriteCapacityUnits=1idキーで検索できるようにレコードを追加。Tokenを、idキーに存在するidを付与して投げます。Claudia.jsでAPIを作成した際にはCORSはデフォルトでONになっていますが制限することもできます。アップデートスクリプトを修正します。claudiaコマンドを実行します。claudia.jsonまとめClaudia.jsを利用すれば、外部の認証認可APIを用いたフロントエンドアプリのためのサーバレスアーキテクチャを簡単に実装できます。2014の16日目の記事です。(1)月別アーカイブ参加グループプログラミングテクノロジーPythonはてなブログをはじめよう!slowqueryさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。