> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-triggers-prototype.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ルールの構造に関するベストプラクティス

> Auth0のルールを構築するためのベストプラクティスについて説明します。

<Warning>
  RulesとHooksのサポート終了（EOL）日は**2026年11月18日** であり、**2023年10月16** 日の時点で作成された新しいテナントは使用できなくなります。Hooksが有効な既存のテナントは、サポート終了までHooksを利用できます。

  今後はActionsに移行して、Auth0の機能を拡張することを強くお勧めします。Actionsを使用すると、豊富な情報やインラインドキュメント、パブリック`npm`パッケージにアクセスして、外部統合を使って全体的な拡張エクスペリエンスを強化することができます。Actionsの詳細については、「[Auth0 Actionsの仕組みを理解する](/docs/ja-jp/customize/actions/actions-overview)」をお読みください。

  当社では、移行の参考資料として、[RulesからActionsへの移行](/docs/ja-jp/customize/actions/migrate/migrate-from-rules-to-actions)と[HooksからActionsへの移行](/docs/ja-jp/customize/actions/migrate/migrate-from-hooks-to-actions)に関するガイドを提供しています。また、専用の「[Actionsへの移行](https://auth0.com/extensibility/movetoactions)」ページでは、機能の比較や[Actionsのデモ](https://www.youtube.com/watch?v=UesFSY1klrI)、その他のリソースを掲載して、円滑な移行をサポートしています。

  RulesとHooksの廃止の詳細については、当社のブログ記事「[RulesとHooksの提供終了について](https://auth0.com/blog/preparing-for-rules-and-hooks-end-of-life/)」をお読みください。
</Warning>

ルールは基本的に、`user`オブジェクト、`context`オブジェクト、`callback`関数の3つのパラメーターが渡されるJavaScriptの無名関数です。

```javascript lines theme={null}
function (user, context, callback) {
     // TODO: implement your rule
     return callback(null, user, context);
    }
```

関数宣言の末尾にセミコロンを追加**しない** でください。ルールの実行が中断されます。無名関数は、例外的なエラー条件の結果として生成されたコールスタックの解釈を困難にします。診断分析を容易にするため、簡潔で一意の命名規則を使用してください（例：`function MyRule1 (user, context, callback) {...}`）。詳細については、「[エラー処理のベストプラクティス](/docs/ja-jp/troubleshoot/error-handling-best-practices)」をお読みください。

ルールは、Auth0エンジン全体の一部を形成する、真正性のアーティファクト生成に関連するパイプラインで実行されます。パイプラインが実行されると、有効なすべてのルールがリストされている順序でパッケージ化され、1つのコードBlobとして送信され、Auth0のサーバーレスWebtaskとして実行されます。Auth0エンジン全体を確認するには、「[Auth0エンジンの内側。](https://cdn.auth0.com/blog/auth0-raises-100m-to-fuel-the-growth/inside-the-auth0-engine-high-res.jpg)」をダウンロードしてください。

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/w3k2AH_K7Myvi2qD/docs/images/ja-jp/cdy7uua7fh8z/1IdyXP3cxbukXrMYuCk3VG/879b2328d737506a4cb9a0fa9919ee1d/rules-best-practice-pipeline.png?fit=max&auto=format&n=w3k2AH_K7Myvi2qD&q=85&s=608daaa1f68d2dc3170aface5235a931" alt="ルール分析のベストプラクティスルールのパイプライン図" width="1500" height="820" data-path="docs/images/ja-jp/cdy7uua7fh8z/1IdyXP3cxbukXrMYuCk3VG/879b2328d737506a4cb9a0fa9919ee1d/rules-best-practice-pipeline.png" />
</Frame>

## サイズ

有効なすべてのルールの実装では、総サイズが100 KBを上回らないようにすることを推奨します。Auth0のサーバーレスWebtaskプラットフォームでパッケージングと転送が処理されるため、サイズが大きいほど遅延が長くなります。そして、これはシステムの性能にも影響を与えます。100 KBの制限には、`require`ステートメントの一部として参照された可能性のある`npm`モジュールは含まれません。

## Order（順序）

<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>に表示されるルールの順序によって、ルールが実行される順序が決まります。あるルールが複数の定義を作成し、実行に関連付けられた環境内で別のルールがその定義に依存していることがあるため、この順序は重要です。この場合、定義を作成するルールを、その定義を使用するルールの前に実行する必要があります。詳細については、「[ルール環境のベストプラクティス](/docs/ja-jp/rules-best-practices/rules-environment-best-practices)」をお読みください。

API（Auth0 <Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>を含む）を呼び出す、負荷の大きいルールは、できるだけ後で実行します。他に負荷が小さく、`unauthorized`アクセスの判断につながる可能性のあるルールがある場合は、そのようなルールを先に実行する必要があります。

## もっと詳しく

* [ルール環境のベストプラクティス](/docs/ja-jp/rules-best-practices/rules-environment-best-practices)
* [ルールの実行に関するベストプラクティス](/docs/ja-jp/rules-best-practices/rules-execution-best-practices)
* [ルールセキュリティのベストプラクティス](/docs/ja-jp/rules-best-practices/rules-security-best-practices)
* [ルールのテストに関するベストプラクティス](/docs/ja-jp/rules-best-practices/rules-testing-best-practices)
