AScriptを使用すると、Application Load Balancer (ALB) コンソールの標準転送ルールがビジネス要件を満たさない場合に、スクリプトを使用して転送ルールをカスタマイズできます。 このトピックでは、AScriptのモデルと実行位置、およびその動作について説明します。
制御ポリシー機能の動作
ALBコンソールの標準転送ルールと同じように、AScriptを使用して、ALBによるリクエストの処理方法を定義します。
リクエストがALBに到達すると、ALBはALBコンソールで設定された転送ルールに基づいてリクエストを処理します。 AScriptは、転送ルールが適用される前または後に、スクリプトを実行して要求を処理できます。
モデル
スクリプトは次のモデルに基づいて実行されます。
AScriptはスクリプトを実行してさまざまな機能を実現します。 関数は、スクリプトの条件が満たされた場合にのみトリガーされます。
リクエスト処理パイプラインでは、スクリプトを実行する位置とスクリプトの優先度を指定できます。
スクリプトはリスナーに基づいて管理されます。
実行位置
インバウンド転送ルールが適用される前または後、またはアウトバウンド転送ルールが適用される前に実行されるようにスクリプトを設定できます。 実行できる関数は、実行位置によって異なります。
受信転送ルールの前: たとえば、頻繁にファイルの名前を変更したり、ファイル拡張子を小文字に変換したり、URIプレフィックスを追加したり、ファイル拡張子を書き換えたりできます。
受信転送ルールの後: たとえば、頻繁にファイルの名前を変更したり、ファイル拡張子を小文字に変換したり、URIプレフィックスを追加したり、ファイル拡張子を書き換えたりできます。
送信転送ルールの前: たとえば、頻繁にファイルの名前を自動的に変更できます。
スクリプト実行
説明:
スクリプトID: スクリプトのステータスを示します。
さまざまな状態のスクリプトの実行情報を次の表に示します。
スクリプトID
説明
-1
デフォルト値。
1
スクリプトは実行されません。
2
条件が満たされています。
condition {}
がスクリプトで指定され、条件
が満たされている場合。3
条件が満たされていません。
条件 {}
がスクリプトで指定されているが、条件
が満たされていない場合、または条件 {}
が指定されていない場合。4
スクリプトの実行に失敗します。 考えられるエラーの原因:
400:
not found inline func % s
401:
not found argument % d in % s
402: % sの不一致文字列タイプのarg % d
403: % sの不一致番号タイプのarg % d
404: % sの不一致テーブルタイプのarg % d
405: % sの不一致ブール型のarg % d
406: % sの不一致関数タイプのarg % d
407: exec cputime limit % d-% d us
408: のapi呼び出し制限 % s % d-% d回
409: m3u8_rewriteの最大ループ制限 % dを超える
410: foreachの最大ループ制限 % dを超える
499: 不明な理由
実行時間:
単位:マイクロ秒。
デフォルト値: -1
webインターフェイスに表示される実行時間:
ティア1: 0から100
ティア2: 500への100
ティア3: 1000への500
ティア4: 5000への1000
ティア5: 20000への5000
ティア6: 50000への20000
ティア7: 50000以上
実行は中断されます。
デフォルト値: -1
関連ドキュメント
AScriptの詳細については、「AScriptの概要」をご参照ください。
AScriptの設定方法の詳細については、「スクリプトの追加と管理」をご参照ください。