コンテンツにスキップ

カスタム制限

カスタム制限を使用すると、顧客のWorkersのリソース使用に対してプログラム的に制限を強制できます。最大CPU時間と呼び出しごとのサブリクエスト数の制限を設定できます。ユーザーWorkerがこれらの制限のいずれかに達した場合、ユーザーWorkerは直ちに例外をスローします。

カスタム制限の設定

カスタム制限は、動的ディスパッチWorkerで設定できます:

export default {
async fetch(request, env) {
try {
// URLを解析し、サブドメインを読み取る
let workerName = new URL(request.url).host.split('.')[0];
let userWorker = env.dispatcher.get(
workerName,
{},
{// 制限を設定
limits: {cpuMs: 10, subRequests: 5}
}
);
return await userWorker.fetch(request);
} catch (e) {
if (e.message.startsWith('Worker not found')) {
// 存在しないWorkerをディスパッチネームスペースから取得しようとしました
return new Response('', { status: 404 });
}
return new Response(e.message, { status: 500 });
}
},
};