EdgeRoutineは、JavaScriptコードを記述し、世界中のAlibaba Cloudポイントオブプレゼンス (POP) にデプロイして実行できるサーバーレスランタイム環境です。 EdgeRoutineは、ES6構文と標準のWebサービスワーカーAPIをサポートしています。 EdgeRoutineを使用すると、ユーザーに最も近いPOPにユーザー要求に応答して処理することができます。 これにより、レイテンシが大幅に削減され、応答が加速され、ユーザーエクスペリエンスが向上します。
アクティベーションの指示
EdgeRoutineはベータリリースであり、選択したユーザーのみが利用できます。 DCDNサービスの1日あたりのピーク帯域幅が500 Mbit/sを超える場合、チケットを起票してEdgeRoutineを有効にします。 ご不便をおかけしましたことをお詫び申し上げます。 注意を払うことをお勧めします に 公式ウェブサイト。
メリット
グローバルデプロイ、ニアサイトスケジューリング、超低レイテンシ: Function ComputeやECS (Elastic Compute Service) などの一般的なクラウドコンピューティングサービスと比較して、EdgeRoutineを特定のリージョンにデプロイする必要はありません。 EdgeRoutineは世界中のPOPで実行されます。 クライアント要求は自動的に最も近いPOPにスケジュールされ、すぐにコードを実行してクライアント要求を処理します。 EdgeRoutineはサーバーの応答時間を大幅に短縮でき、ユーザーに低遅延サービスを提供するのに役立ちます。
自動スケールアウトおよび従量課金: Alibaba Cloudは、世界中の3,200を超えるPOPで構成されるエッジネットワークを構築しました。 これらのPOPは比類のないスケーラビリティを提供します。 リージョン内のクライアント要求の数が急増した場合、これらの要求は、十分なコンピューティングリソースを有する最も近いPOPに自動的にスケジュールされる。 サービスに対して行われた呼び出しの数に基づいて、EdgeRoutineに対して課金されます。
使いやすいサーバーレス環境: EdgeRoutineを使用すると、CPU、メモリ、ネットワーク、オペレーティングシステムなどの基盤となるリソースを管理することなく、ビジネスロジックに集中できます。 コンソールまたはAPIを使用してコードをアップロードし、アプリケーションをデプロイできます。 サーバーレス開発により、開発コストとO&Mコストを効果的に削減できます。
原則
EdgeRoutineが使用されないシナリオ: 1. クライアントは、POPのゲートウェイへの要求を開始する。 → 2。 POPは、キャッシュ内の要求されたコンテンツを検索する。 要求がキャッシュヒットである場合、要求されたコンテンツはクライアントに返される。 → 3。 リクエストがキャッシュミスの場合、リクエストはオリジンサーバーにリダイレクトされます。
EdgeRoutineが使用されるシナリオ: 1. クライアントは、POPのゲートウェイへの要求を開始する。 → 4。 リクエストはEdgeRoutineによって管理され、関連するJavaScriptコードがトリガーされます。 → フェッチリクエストは、キャッシュとオリジンサーバー (No.5またはNo.3) 、または他の公にアクセス可能なサービス (No.6) に送信されます。
説明上の図では、ゲートウェイの背後でEdgeRoutineが実行されます。 この場合、コンソールで設定された DCDN高速化ドメイン名の設定 (HTTPS設定、アクセス制御、パフォーマンス最適化、キャッシュ設定など) は引き続き有効になります。
基本概念
ルーチン: EdgeRoutineは、Alibaba Cloud POPで実行されるJavaScriptコードランタイム環境です。 EdgeRoutineでJavaScriptコードをアップロードして実行できます。 EdgeRoutineを使用する前に、ルーチンを作成する必要があります。 ルーチンは、設定とアップロードするJavaScriptコードスクリプトで構成されます。 設定では、名前、説明、CPUとメモリの上限、ドメイン名のホワイトリストなど、ルーチンに関する情報を指定します。
Version: ルーチンはバージョン管理をサポートします。 ルーチンの開発中、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によって割り当てられるCPUタイムスライス。 計算されたCPU時間にI/O待ちが含まれません。 5 ms、50 ms、100 msの3つのオプションのいずれかを選択できます。 詳細については、「課金ルール」をご参照ください。 |
メモリ容量 | 128 MB | 物理マシン上のドメイン名に割り当てられたメモリ。 ドメイン名に対するすべての要求はメモリを共有します。 たとえば、物理マシンの最大JavaScriptサンドボックスメモリは128 MBです。 |
Real time | 120s | EdgeRoutineの実行の応答時間は120秒を超えることはできません。 I/O待ちは、計算されたリアルタイムに含まれる。 |
待ち時間 | 10s | ゲートウェイがEdgeRoutineを待機する時間。 EdgeRoutineが10秒以内にデータを返さない場合、ゲートウェイはサーバーから切断し、HTTPステータスコード504をクライアントに返します。 |
コードパッケージサイズ | 4 MB | 各ルーチンのJavaScriptコードファイルの最大サイズ。 |
サブリクエスト数 | 4 | 実行中にEdgeRoutineによって許可されるフェッチ要求の数。 |
プログラミング言語 | JavaScript (ES6構文) | JavaScriptのみがサポートされています。 JavaScriptの使い方を知る必要があります。 |
ルーチンの数 | 50 | Alibaba Cloudアカウントごとに最大50のルーチンを作成できます。 |
バージョン数 | 10 | 各ルーチンに最大10のバージョンを保存できます。 |
サポートされているプロトコル | HTTPSのみ | WebSocket、TCP、およびUDPはサポートされていません。 |
サブリクエスト | なし | 別のルーチンのドメイン名に対してルーチンでフェッチ要求を開始することはできません。 |