AScript はプログラマブルなスクリプト機能であり、強力なカスタマイズ機能を提供します。 ALB コンソールの標準構成ではビジネス要件を満たせない場合に、転送ルールの二次開発を実行できます。
AScript とは
AScript は、習得しやすい構文と多くの関数を備えており、カスタムの ALB 構成を作成できます。
AScript は、カプセル化されていない関数、組み込み変数、および if-else 文を提供します。変数と関数を使用して、カスタム転送ルールを作成できます。このようにして、ビジネスは変化に迅速に適応できます。
AScript 構文の詳細については、「AScript 構文」をご参照ください。
ユースケースのシナリオ
ホットリンク保護
AScript を使用して、認証アルゴリズム、ユーザーエージェント (UA) ブラックリスト、およびリファラーホワイトリストをカスタマイズできます。 AScript を使用すると、認証ロジックをカスタマイズし、リクエストパラメータ、Cookie、またはアルゴリズムに基づいてリクエストを認証できます。これは、リソースを攻撃から保護するのに役立ちます。
ホワイトリストまたはブラックリストに基づくアクセス制御
AScript を使用して、IP ブラックリストまたはホワイトリストを構成し、クライアントからのアクセスを制御できます。
リクエストヘッダーとレスポンスヘッダーのカスタマイズ
AScript を使用すると、ビジネス要件に基づいて、リクエストヘッダーやレスポンスヘッダーなどの変数を変更できます。
リクエストの書き換えとリダイレクト
AScript を使用して、リクエスト URI とファイル拡張子を書き換え、URI プレフィックスを追加し、302 リダイレクトを実行できます。このようにして、リクエストを書き換えたり、目的のリソースにリダイレクトしたりできます。
一般的なユースケースは、Web サイトが複数の言語をサポートしている場合です。 AScript を使用すると、Web サイト宛てのリクエストを、リクエストされた言語で記述されたコンテンツを指す URL にリダイレクトできます。たとえば、英語またはドイツ語が必要なリクエストは、中国のサイトからそれぞれ英語またはドイツ語のサイトにリダイレクトされます。
課金
ルール評価の数がロードバランサキャパシティユニット (LCU) 料金にどのように影響するかについては、「課金ルール」をご参照ください。
しくみ
動作の原則
標準の転送ルールと同様に、AScript は ALB によってリクエストがどのように処理されるかを定義するために使用されます。
リクエストが ALB に到達すると、ALB は ALB コンソールで構成された転送ルールに基づいてリクエストを処理します。 AScript は、転送ルールが適用される前または後にスクリプトを実行してリクエストを処理できます。
スクリプトは、次のモデルに基づいて実行されます。
AScript はスクリプトを実行してさまざまな操作を実行します。操作は、スクリプトの条件が満たされた場合にのみトリガーされます。
スクリプトが実行される位置と、リクエスト処理パイプラインにおけるスクリプトの優先順位を指定できます。
スクリプトは、リスナーに基づいて管理されます。
実行位置
インバウンド転送ルールが適用される前または後、あるいはアウトバウンド転送ルールが適用される前に実行されるようにスクリプトを構成できます。実行できる操作は、実行位置によって異なります。
インバウンド転送ルールの前または後: 頻繁に使用されるファイルの名前変更、ファイル拡張子の小文字への変換、URI プレフィックスの追加、ファイル拡張子の書き換え
アウトバウンド転送ルールの前: 頻繁に使用されるファイルの名前変更
実行ステータス
スクリプトを構成する 際に、[スクリプトの追加] ページまたは [スクリプトの編集] ページの [詳細設定] セクションで、[リクエストに _es_dgb パラメーターが含まれており、そのパラメーターの値が指定されたキーと一致する場合、デバッグ ヘッダーがレスポンスに追加されます。このヘッダーには、スクリプト実行のレコードが含まれています。] を選択できます。
スクリプトの実行ステータスを定義するパラメータは、次のように説明されています。
ステータス ID: スクリプトの実行ステータスの一意の識別子。
as-****
形式です。次の表は、ステータス ID の有効な値を示しています。
ステータス ID
説明
空
スクリプトが実行されていないことを示します。
0
条件が満たされていることを示します。
この ID は、スクリプトで
if condition {}
が指定され、condition
が満たされている場合に返されます。1
条件が満たされていないことを示します。
この ID は、スクリプトで
if condition {}
が指定されているが、condition
が満たされていない場合、またはif condition {}
が指定されていない場合に返されます。2
スクリプトの実行に失敗したことを示します。
実行時間:
単位: マイクロ秒。
デフォルト値: -1。
Web インターフェイスに表示される実行時間:
ティア 1: 0 ~ 100 µs
ティア 2: 100 ~ 500 µs
ティア 3: 500 ~ 1000 µs
ティア 4: 1000 ~ 5000 µs
ティア 5: 5000 ~ 20000 µs
ティア 6: 20000 ~ 50000 µs
ティア 7: 50000 µs 超
実行一時停止:
デフォルト値: -1。