EdgeRoutine (ER) は、JavaScript コードを記述し、世界中の Alibaba Cloud の POP (Point of Presence) でデプロイおよび実行できるサーバーレスのランタイム環境です。ER は ES6 構文と標準の Web Service Worker API をサポートしています。ER を使用すると、ユーザーに最も近い POP がユーザーリクエストに応答して処理できます。これにより、遅延が大幅に短縮され、応答が高速化され、ユーザーエクスペリエンスが向上します。
DCDN は、2025年5月1日 00:00 (UTC+08:00) 以降、新規ユーザー向けの EdgeRoutine の提供を段階的に終了します。既存のユーザーは影響を受けません。
ESA にアップグレードして Functions and Pages を使用することを推奨します。
メリット
世界中にデプロイ、近接サイトへのスケジューリング、超低遅延:Function Compute や Elastic Compute Service (ECS) などの一般的なクラウドコンピューティングサービスと比較して、EdgeRoutine は特定のリージョンにデプロイする必要がありません。EdgeRoutine は世界中の POP で実行されます。クライアントリクエストは自動的に最寄りの POP にスケジューリングされ、POP は即座にコードを実行してクライアントリクエストを処理します。EdgeRoutine はサーバーの応答時間を大幅に短縮できるため、ユーザーに低遅延のサービスを提供できます。
自動スケールアウトと従量課金:Alibaba Cloud は、世界中に 3,200 以上の POP で構成されるエッジネットワークを構築しています。これらの POP は、比類のないスケーラビリティを提供します。あるリージョンでクライアントリクエストが急増した場合、これらのリクエストは十分なコンピューティングリソースを持つ最寄りの POP に自動的にスケジューリングされます。EdgeRoutine は、サービスへの呼び出し回数に基づいて課金されます。
使いやすいサーバーレス環境:EdgeRoutine を使用すると、CPU、メモリ、ネットワーク、オペレーティングシステムなどの基盤となるリソースを管理することなく、ビジネスロジックに集中できます。コンソールまたは API を使用してコードをアップロードし、アプリケーションをデプロイできます。サーバーレス開発により、開発コストと運用保守コストを効果的に削減できます。
原則
EdgeRoutine を使用しないシナリオ:1. クライアントが POP のゲートウェイにリクエストを送信します。→ 2. POP はキャッシュでリクエストされたコンテンツを検索します。リクエストがキャッシュヒットした場合、リクエストされたコンテンツがクライアントに返されます。→ 3. リクエストがキャッシュミスした場合、リクエストはオリジンサーバーにリダイレクトされます。
EdgeRoutine を使用するシナリオ:1. クライアントが POP のゲートウェイにリクエストを送信します。→ 4. リクエストは EdgeRoutine によって管理され、関連する JavaScript コードがトリガーされます。→ フェッチリクエストがキャッシュとオリジンサーバー (No. 5 または No. 3)、またはその他のパブリックアクセス可能なサービス (No. 6) に送信されます。
説明上の図では、EdgeRoutine はゲートウェイの背後で実行されます。この場合、HTTPS 構成、アクセス制御、パフォーマンス最適化、キャッシュ設定など、コンソールで構成された DCDN の高速化ドメイン名の構成は引き続き有効です。
基本概念
ルーチン:EdgeRoutine は、Alibaba Cloud POP で実行される JavaScript コードのランタイム環境です。EdgeRoutine では、JavaScript コードをアップロードして実行できます。EdgeRoutine を使用する前に、ルーチンを作成する必要があります。ルーチンは、構成とアップロードした JavaScript コードスクリプトで構成されます。構成では、名前、説明、CPU とメモリの上限、ドメイン名のホワイトリストなど、ルーチンに関する情報を指定します。
バージョン:ルーチンはバージョン管理をサポートしています。ルーチンの開発中、JavaScript コードは常に変更および更新されます。ある段階のテストが完了したら、コードの現在の状態のスナップショットを撮ることで、コードバージョンを作成できます。ルーチンを公開するときは、コードバージョンを選択する必要があります。システムでは、以前のバージョンを選択して履歴コードを管理できます。各バージョンには、システムによって自動的に生成されるバージョン番号があります。
環境:EdgeRoutine は、ステージング環境、本番環境、カナリア環境を提供します。
ステージング環境:ステージング環境は、コードのテストに使用される独立した POP です。ステージング環境は本番環境をシミュレートしますが、本番環境からは分離されています。ステージング環境でルーチンの構成やコードを変更しても、本番環境には影響しません。ステージング環境にアクセスするには、ページに表示される IP アドレスを hosts ファイルに追加する必要があります。
本番環境:本番環境は、デプロイメント環境とも呼ばれ、世界中に分散された多数の POP で構成されます。ステージング環境でコードをテストした後、コードを本番環境にデプロイできます。上の図は参考用です。EdgeRoutine は、リクエスト量に基づいて POP を自動的に追加または削除します。POP の分散は、実際のシナリオによって異なる場合があります。
カナリア環境:この環境では、デプロイの範囲を段階的に拡大できます。コードや構成の変更を本番環境に直接デプロイすることはリスクが伴います。コードや構成にエラーが存在する場合、ユーザーに影響が及ぶ可能性があります。ビジネスが大規模である場合、またはコードや構成の変更時にリスクを制御したい場合は、カナリア環境を使用してデプロイ範囲を管理することを推奨します。カナリア環境は複雑です。カナリア環境を使用する前に、環境の基本を理解することを推奨します。詳細については、「カナリア環境 (オプション)」をご参照ください。
ドメイン名:ルーチンを作成してコードをデプロイした後、クライアントがアクセスできるルーチンのポータルとしてドメイン名を使用する必要があります。EdgeRoutine は、ポータルとして DCDN の高速化ドメイン名のみをサポートします。DCDN コンソールで EdgeRoutine をドメイン名に関連付けることができます。
POP:POP は、DCDN がコンテンツ配信に使用します。クライアントリクエストは最寄りの POP にスケジューリングされます。
制限事項
機能 | 項目 | 説明 |
CPU 時間 | 5 ms、50 ms、100 ms | EdgeRoutine が 1 回の実行に割り当てる CPU タイムスライスです。I/O 待ちは CPU 時間の計算に含まれません。5 ms、50 ms、100 ms の 3 つのオプションから選択できます。詳細については、「課金ルール」をご参照ください。 |
メモリ容量 | 128 MB | 物理マシン上のドメイン名に割り当てられるメモリです。ドメイン名に対するすべてのリクエストがこのメモリを共有します。たとえば、物理マシン上の JavaScript サンドボックスの最大メモリは 128 MB です。 |
実時間 | 120 秒 | EdgeRoutine の 1 回の実行の応答時間は 120 秒を超えることはできません。I/O 待ちは実時間の計算に含まれます。 |
待機時間 | 10 秒 | ゲートウェイが EdgeRoutine を待機する時間です。EdgeRoutine が 10 秒以内にデータを返さない場合、ゲートウェイはサーバーから切断し、クライアントに HTTP ステータスコード 504 を返します。 |
コードパッケージサイズ | 4 MB | 各ルーチンの JavaScript コードファイルの最大サイズです。 |
サブリクエスト数 | 4 | EdgeRoutine が 1 回の実行で許可するフェッチリクエストの数です。 |
プログラミング言語 | JavaScript (ES6 構文) | JavaScript のみがサポートされています。JavaScript の使用方法を理解している必要があります。 |
ルーチン数 | 50 | Alibaba Cloud アカウントごとに最大 50 のルーチンを作成できます。 |
バージョン数 | 10 | 各ルーチンで最大 10 のバージョンを保存できます。 |
サポートされるプロトコル | HTTPS のみ | WebSocket、TCP、UDP はサポートされていません。 |
サブリクエスト | なし | ルーチン内で別のルーチンのドメイン名に対してフェッチリクエストを開始することはできません。 |