遅延アクション
Bot ManagementおよびWorkersのサブスクリプションを持つ顧客は、ボットからのリクエストに遅延を導入するために以下のテンプレートを使用できます。
このテンプレートは、最小遅延と最大遅延を設定し、ボットスコアが30未満でURIパスが/exampleURIで始まるリクエストに遅延を適用します。
// 設定可能な変数const PATH_START = '/exampleURI';const DELAY_FROM = 5; // 秒単位const DELAY_TO = 10; // 秒単位
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request))})
async function handleRequest(request) { let url = new URL(request.url); let botScore = request.cf.botManagement.score
if (url.pathname.startsWith(PATH_START) && botScore < 30) { // DELAY_FROM秒からDELAY_TO秒の間のランダムな遅延 const delay = Math.floor(Math.random() * (DELAY_TO - DELAY_FROM + 1)) + DELAY_FROM; await new Promise(resolve => setTimeout(resolve, delay * 1000));
// 元のリクエストを取得 return fetch(request); } else { // 遅延なしで元のリクエストを取得 return fetch(request); }}