このトピックでは、Dynamic Content Delivery Network (DCDN) コンソールでEdgeRoutineを有効にして使用する方法について説明します。
ワークフロー
EdgeRoutineを使用するには、 DCDNを使用します。 次の図は、EdgeRoutineでのルーチンの作成方法と実装方法を示しています。
EdgeRoutineはベータリリースであり、選択したユーザーのみが利用できます。 DCDNサービスの1日あたりのピーク帯域幅が500 Mbit/sを超える場合、EdgeRoutineを有効にするには、チケットを起票してください。 リクエストが承認されると、DCDNコンソールの左側のナビゲーションペインにエッジ関数が表示されます。
EdgeRoutineの有効化
左側のナビゲーションウィンドウで、エッジ関数 をクリックします。
を選択してEdgeRoutineを有効にします。
ルーチンの作成と構成
左側のナビゲーションウィンドウで、エッジ関数 をクリックします。
EdgeRoutineを初めて使用するときは、サブドメインを作成します。
エッジ関数ページで、サブドメインの作成 をクリックします。
サブドメインの作成 ダイアログボックスで、サブドメイン名を指定します。
説明サブドメインは、作成するすべてのルーチンが存在するリポジトリです。 サブドメインが作成されたら、サブドメインの名前を変更することはできません。
サブドメインは、各ユーザに対する一意の識別子であり、ルーチンIDの一部である。
作成後のサブドメイン名は変更できません。 名前には、小文字、数字、およびハイフン (-) を使用できます。 名前は2文字以上でなければなりません。 例: サブドメイン名。
OK をクリックします。
エッジ関数ページで、関数の作成 をクリックします。 下表にパラメーターを示します。
パラメーター
説明
関数名
ルーチン名を入力します。
説明名前には、小文字、数字、およびハイフン (-) を使用することができます。長さは必ず 2 文字以上にしてください (例:routine-name)。関数名は作成後に変更することができません。
説明
オプションです。 ルーチンの説明を入力します。
仕様
ルーチンの1回の実行の最大CPUタイムスライスを選択します。 ネットワーク応答を待つI/O時間は含まれていません。 料金は通常の仕様に基づいて異なります。 詳細については、「課金ルール」をご参照ください。
リクエストごとの CPU タイムスライス:5 ms、
リクエストごとの CPU タイムスライス:50 ms (デフォルト)
個々のリクエストのリクエストごとの CPU タイムスライス:100 ms
ルーチンを作成したら、操作 列の 詳細 をクリックして、さまざまな環境でルーチンを設定します。 ルーチン設定は、環境間で独立しています。 本番環境、テスト環境、およびカナリアリリース環境でルーチンの設定を変更できます。 詳細については、「カナリアリリース環境 (オプション) 」をご参照ください。 下表に、各パラメーターを説明します。
パラメーター
説明
関数の仕様
ルーチンの1回の実行の最大CPUタイムスライス。 ネットワーク応答を待つI/O時間は含まれていません。 最大リアルタイム: 120秒。 メモリ: 128 MB。
リクエストごとの CPU タイムスライス:5 ms、
リクエストごとの CPU タイムスライス:50 ms (デフォルト)
個々のリクエストのリクエストごとの CPU タイムスライス:100 ms
ドメイン名のホワイトリスト
ルーチンに関連付けることができるドメイン名。
ワイルドカードドメイン名がサポートされています。
デフォルトでは、ドメイン名のホワイトリストは空です。 これは、任意のドメイン名をルーチンに関連付けることができることを示す。
説明たとえば、Domain Name Whitelistパラメーターをo example.comに設定した場合、m example.comからのリクエストのみがルーチンをトリガーできます。
ドメイン名をルーチンに関連付ける
ルーチンは、クライアントにサービスを提供するためにドメイン名を必要とする。 ドメイン名には、CDN高速化ドメイン名またはDCDN高速化ドメイン名を指定できます。 ルーチンを作成して設定したら、 DCDN-acceleratedドメイン名をルーチンに関連付ける必要があります。 次に、ルーチンは、ルーチンに関連するドメイン名からの要求によってトリガされる。 ドメイン名が追加されたサービスのコンソールにログインします。
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
ドメイン名 ページで、アクセラレーションリージョンを変更するドメイン名を見つけ、設定 をクリックします。
左側のナビゲーションペインで、EdgeRoutine をクリックします。
EdgeRoutine ページでスイッチをオンにし、EdgeRoutine ID パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
EdgeRoutine ID
ルーチンIDは、各ルーチンの一意の識別子である。 形式: routineName.subdomain.
説明DCDNコンソールの左側のナビゲーションウィンドウで、エッジ関数 をクリックします。 関数 ページでルーチンのIDを確認できます。
トリガーモード
DCDN高速化ドメイン名にアクセスしようとするリクエストがルーチンをトリガーするモードを選択します。 次のモードがサポートされています。
リダイレクト: DCDN高速化ドメイン名にアクセスしようとするリクエストは、ルーチンによって処理されます。 リクエストを処理するためのコードをルーチンに記述できます。 ルーチンは、要求されたコンテンツをクライアントに返し、cache APIを呼び出してキャッシュを読み取り、またはフェッチ要求を送信して要求をオリジンサーバーにリダイレクトできます。
バイパス: DCDN高速化ドメイン名にアクセスしようとするリクエストにより、ルーチンがトリガーされます。 その後、 DCDNコンソールで設定された設定が実行され、リクエストはオリジンサーバーにリダイレクトされます。 このトリガーモードは、認証やログ追跡などのシナリオに適しています。
エラー時に配信元へリダイレクト
○: ルーチンが例外をスローすると、POP (point of presence) は、クライアントから要求されたURLを使用して、 DCDN高速化ドメイン名のオリジンサーバーに要求を転送します。 オリジンサーバーがリクエストを処理します。 これにより、ビジネスの継続性とディザスタリカバリが保証されます。
×: ルーチンが例外をスローすると、HTTPステータスコード5xxがクライアントに返されます。
説明ルーチンを初めて使用するときは、[Redirect to Origin if Error Occurs] パラメーターを [No] に設定することを推奨します。 問題のトラブルシューティングに返されるHTTP 5xxステータスコードを使用できます。
例外が発生した場合、back-to-originリクエストの数に対して課金されます。 異常なback-to-originリクエストの割合は非常に低く、無視できます。
ルーチンの開発とデバッグ
左側のナビゲーションウィンドウで、エッジ関数 をクリックします。
作成したルーチンを検索し、[操作] 列の 詳細 をクリックします。
表示されたルーチンページで、コード タブをクリックして、JavaScriptを使用してルーチンを開発します。 サンプルコードでは、HelloWorld スクリプトが使用されています。
コーディングが完了したら、Publish to Test Environment をクリックします。 ページに表示されているテスト環境のIPアドレスを、ルーチンのデバッグに使用するマシンに関連付けることができます。
説明テスト環境のIPアドレスと、ルーチンに関連付けられているドメイン名を、オンプレミスマシンのhostsファイルに追加できます。 たとえば、10.10.10.10 d example.comをオンプレミスマシンのhostsファイルに追加します。 IPアドレスを前の図に記載されているIPアドレスに置き換え、ドメイン名をルーチンに関連付けられている DCDN高速化ドメイン名に置き換えます。
バージョンを保存する
デバッグが完了したら、コード タブの 新しいバージョンとして保存 をクリックします。
バージョンの公開
表示されたルーチンページで、バージョン タブをクリックし、公開するバージョンを見つけて、操作 列の 公開 をクリックします。
バージョンを公開する テスト環境 、本番環境 、または カナリアリリース環境 を選択します。
説明スクリプトを本番環境に公開する前に、ルーチンをカナリアリリース環境に公開することを推奨します。
[OK] をクリックして、すべてのPOPの本番環境にコードをデプロイします。
イテレーション
前のセクションでは、HelloWorldを使用してルーチンを構成および公開する方法を説明しました。
ルーチンを反復処理する方法については、「ルーチンの開発とデバッグ」、「バージョンの保存」、および「バージョンの公開」を参照してください。
ルーチンの仕様やドメイン名のホワイトリストなどの設定を調整する場合は、「ルーチンの作成と設定」セクションを参照してください。
a DCDN高速化ドメイン名のEdgeRoutineを無効にする場合は、「ドメイン名をルーチンに関連付ける」セクションの手順に従って設定したルーチン設定を削除します。