EdgeRoutine (ER) は、Alibaba Cloud のグローバルな POP (Point of Presence) 上で JavaScript コードを実行するサーバーレスコンピューティングサービスです。ES6 構文と標準の Web Service Worker API をサポートしています。リクエストは各ユーザーに最も近い POP で実行され、超低遅延の応答を配信します。
Alibaba Cloud DCDN 上の ER は、2025 年 5 月 1 日 00:00 (UTC+08:00) をもって新規ユーザーへの提供を終了します。既存のユーザーは影響を受けません。
この機能については、ESA にアップグレードし、ESA の Functions and Pages 機能をご利用ください。
メリット
グローバルデプロイメントと超低遅延:Function Compute や Elastic Compute Service (ECS) とは異なり、ER はリージョン固有のデプロイメントを必要としません。グローバルな POP ネットワーク上で実行されます。クライアントリクエストは最寄りの POP にルーティングされ、そこでコードが実行されて直接応答するため、遅延が最小限に抑えられます。
自動スケーリングと従量課金:Alibaba Cloud の 3,200 以上の POP が組み込みの弾力性を提供し、急増するリクエストは利用可能なキャパシティを持つ近くの POP に自動的にルーティングされます。ER は呼び出し回数に基づく従量課金を採用しています。コードが実行されている間のみ料金が発生します。
サーバーレスで使いやすい:インフラ (CPU、メモリ、ネットワーク、OS) を管理することなく、ビジネスロジックに集中できます。コンソールからコードをアップロードするか、API を呼び出すことでデプロイします。サーバーレスモデルにより、開発および運用保守コストが削減されます。
仕組み
ER を使用しない /DCDN のリクエストフロー:1. クライアントが POP ゲートウェイにリクエストを送信します。→ 2. POP がキャッシュを確認します。キャッシュヒットの場合、コンテンツがクライアントに返されます。→ 3. キャッシュミスの場合、リクエストはオリジンサーバーに転送されます。
ER を使用する /DCDN のリクエストフロー:1. クライアントが POP ゲートウェイにリクエストを送信します。→ 4. ER がリクエストをインターセプトし、ご利用の JavaScript コードを実行します。→ ご利用のコードは
fetchを使用してキャッシュにアクセスしたり、オリジンサーバーからコンテンツを取得したり (矢印 5 または 3)、他のパブリック Web サービスを呼び出したり (矢印 6) できます。説明ER はゲートウェイの後に実行されるため、/DCDN ドメイン名コンソールでの構成 (HTTPS、アクセス制御、パフォーマンス最適化、キャッシュルール) は引き続き有効です。
基本概念
関数:ルーチンは POP 上の JavaScript ランタイムであり、アップロードされたコードを実行します。ER を使用するには、まずルーチンを作成する必要があります。各ルーチンは、構成 (名前、説明、CPU/メモリ仕様、ドメイン名許可リスト) と JavaScript コードの 2 つの部分で構成されます。
バージョン:ルーチンはバージョン管理をサポートしています。開発中、いつでもコードをバージョンとしてスナップショットできます。ルーチンを公開するには、デプロイする特定のバージョンを選択する必要があります。以前のバージョンにロールバックして、コード履歴を管理できます。各バージョンには、システムが生成したバージョン番号が割り当てられます。
環境:ER は、開発、テスト、デプロイメントのために、ステージング、本番、カナリア環境を提供します。
ステージング環境:コードをテストするための独立したエッジノードです。本番環境をシミュレートしますが、完全に分離されており、ここでの変更は本番環境に影響しません。提供されたステージング IP をご利用の
hostsファイルに追加することでアクセスします。本番環境:グローバルに分散された POP で構成されるライブ環境です。ステージングでテストした後、コードを本番環境に公開します。ER はリクエスト量に基づいてノードを自動的にスケーリングするため、実際のリージョン分布は異なる場合があります。
カナリア環境:本番環境に直接デプロイすると、エラーが存在する場合にすべてのユーザーに影響を与えるリスクがあります。カナリアリリースを使用して、デプロイメントの範囲を徐々に拡大します。詳細については、「カナリア環境 (オプション)」をご参照ください。
ドメイン名:ルーチンを作成して公開した後、クライアントのエントリポイントとしてドメイン名が必要です。ER は、エントリポイントとして Alibaba Cloud または DCDN の高速化ドメイン名のみをサポートします。 または DCDN コンソールで、ルーチンを高速化ドメイン名に関連付けます。
POP (Point of Presence):「エッジ」とは、中央集権型とは対照的な分散デプロイメントを指します。POP は、クライアントに最も近く、受信リクエストを処理する /DCDN ノードです。
制限事項
項目 | 制限 | 説明 |
CPU 時間 | 5 ms、50 ms、または 100 ms | ER 実行あたりの CPU 時間 (I/O 待機を除く)。5 ms、50 ms、または 100 ms の仕様から選択します。詳細については、「課金」をご参照ください。 |
メモリ | 128 MB | 単一の物理マシン上のドメイン名あたりの合計メモリ。そのマシン上のそのドメイン名に対するすべてのリクエストがこのプールを共有します。 |
実行時間 (RT) | 120 秒 | I/O 待機を含む、ER 実行あたりの最大合計応答時間。 |
待機時間 | 10 秒 | ゲートウェイが ER 応答を待機する最大時間。10 秒以内にデータが返されない場合、ゲートウェイは接続を終了し、504 ステータスコードを返します。 |
コードパッケージサイズ | 4 MB | ルーチンあたりの最大 JavaScript コードファイルサイズ。 |
サブリクエスト数 | 4 | ER 実行あたりの最大 |
プログラミング言語 | JavaScript (ES6 構文) | JavaScript のみがサポートされています。JavaScript プログラミングの知識が必要です。 |
ルーチン数 | 50 | Alibaba Cloud アカウントあたりの最大ルーチン数。 |
バージョン数 | 10 | ルーチンあたりの最大バージョン数。 |
サポートされるプロトコル | HTTPS のみ | WebSocket、TCP、UDP はサポートされていません。 |
ネストされたサブリクエスト | サポートされていません | ER インスタンスは、別の ER インスタンスをトリガーするドメイン名を |