カスタム制限
カスタム制限を使用すると、顧客の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 }); } },};