ブログに戻る

フォロー&ご登録

より少ないコードでより多くをエッジで実現 : expressly のご紹介

Dora Militaru

Developer Relations Engineer

Compute@Edge が馴染みのあるフレームワークと同様の方法で使用できるようになりました。Fastly は先日、Compute@Edge 上で動作する JavaScript アプリケーション用の軽量でシンプルなルーティングレイヤー、expressly をリリースしました。これは、広く普及している Node.js のフレームワーク、Express から着想を得て開発されたものです。

Compute@Edge は基盤となるプラットフォームであるため、開発者はライブラリを使用して好みの言語で迅速にイテレーションを実行できます。例えば同僚の Kailan は先日、Rust で Edge Side Includes 向けのライブラリを作成して同様のことを行いました。

expressly によって、Compute@Edge で JavaScript を使ってより簡単に構築することが可能になり、開発者はビジネスロジックに専念できるようになりました。expressly は、以下を含む便利な機能を豊富に備えています。

より少ないコードでより多くを実現

私たち開発者にとって、大量のコードを削除するほど嬉しいことはありません。expressly を使用して Fastly の Developer Hub のコードサンプルをいくつか書き換えているうちに、喜びがこみ上げてきました。

expressly を使用して Compute@Edge アプリケーションを構築するイメージを掴んでいただけるように、次の要件に沿ってアプリケーションシナリオを考案しました。 

  1. /base64/[something] へのリクエスト

    1. URL パスのセグメントを読み込む

    2. 読み込んだセグメントを Cookie に書き込む

    3. デコードしてレスポンスボディに格納する

    4. デコードが失敗した場合は500のステータスコードを返し、レスポンスボディにエラーメッセージを含める

  2. /status/[anything] へのすべてのリクエストをオリジンサーバーに転送する 

  3. その他の場合は、状況に応じて405 (Method Not Allowed) のレスポンス、または404 (Not Found) のレスポンスを送信する 

expressly を使用せずにこのシナリオを実装する方法を見てみましょう。

次に、同じアプリケーションロジックで、expressly を使用した場合の例を見てみましょう。

こちらの方がスマートですよね。expressly のルートマッチャー、ビルトインのパスパラメーターパーサー、デフォルトのエラー処理ミドルウェアによって、想定した複雑なシナリオの実装がよりシンプルになります。ぜひご自身で試してみてください。undefined

expressly を使用するには

Node.js と JavaScript の Compute@Edge サービスをまだセットアップしていない場合は、セットアップから開始します。

expressly のインストール

npm レジストリから expressly をインストールします。

npm i @fastly/expressly

初めての expressly アプリケーション

Compute@Edge アプリケーションの src/index.js の内容を次のように変更します。

import { Router } from "@fastly/expressly";

const router = new Router();

router.get("/", async (req, res) => {
  return res.send("Hello world!");
});

router.listen();

実際に試してみる

アプリケーションをローカルで起動します。

fastly compute serve

これにより、http://localhost:7676 でサービスが開始されます。

準備はできましたか?

@fastly/expressly@1.0.0-alpha.x は現在、開発テスト用に提供されています。Fastly は今後も expressly を使用したコードサンプルを集めて、Developer Hub でご紹介していきます。発想を広げるためにぜひ参考にしてください。

実際に試してみたい場合は、このブログ記事の2番目の fiddle のクローンを作成し、Fastly のアカウントを作成せずにご自身のオリジンサーバーでテストしてください。完全なグローバルサービスを公開する準備ができたら、Compute@Edge の無料トライアルに登録してください。すぐに expressly の使用を開始できます。