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

> Rules コードで高コストなリソースをキャッシュする方法。

# Rules で高コストなリソースをキャッシュする

<Warning>
  Rules と Hooks のサポート終了 (EOL) 日は **2026年11月18日** で、**2023年10月16日** 以降に作成された新規テナントではすでに利用できません。アクティブな Hooks を持つ既存のテナントは、サポート終了まで Hooks 製品へのアクセスを維持できます。

  Auth0 を拡張するには、Actions の使用を強くお勧めします。Actions では、豊富な型情報、インラインドキュメント、公開 `npm` パッケージを利用できるほか、全体的な拡張機能の利用体験を向上させる外部統合にも接続できます。Actions で提供される機能の詳細については、[Understand How Auth0 Actions Work](/ja/docs/customize/actions/actions-overview) を参照してください。

  移行を支援するために、[Rules から Actions への移行](/ja/docs/customize/actions/migrate/migrate-from-rules-to-actions) および [Hooks から Actions への移行](/ja/docs/customize/actions/migrate/migrate-from-hooks-to-actions) に役立つガイドを用意しています。また、機能比較、[Actions のデモ](https://www.youtube.com/watch?v=UesFSY1klrI)、および移行を進める際に役立つその他のリソースを紹介した専用の [Move to Actions](https://auth0.com/extensibility/movetoactions) ページもあります。

  Rules と Hooks の非推奨化について詳しくは、ブログ記事 [Preparing for Rules and Hooks End of Life](https://auth0.com/blog/preparing-for-rules-and-hooks-end-of-life/) を参照してください。
</Warning>

Rules では、`global` オブジェクトを使用して高コストなリソースを保存できます。`global` オブジェクトは個々の実行をまたいで保持されるため、Rule の実行ごとに毎回作成し直す代わりに、そこに保存したものを再利用できます。ただし、Rules の実行環境はいつでも再初期化される可能性があるため、コードでは **必ず** `global` に想定どおりの内容が含まれていることを確認する必要があります。

次の例では、`global` オブジェクトを使って MongoDB 接続を保持する方法を示します。

```javascript lines theme={null}
//dbオブジェクトが存在する場合は使用する。
if (global.db){
  return query(global.db, callback);
}

//存在しない場合はdbを取得する（この場合はmongodb）
mongo('mongodb://user:pass@mymongoserver.com/my-db',  function (db){
  global.db = db;
  return query(db, callback);
});

//実際の処理を実行する
function query(db, cb){
  // dbを使って処理を行う
  ...
  return cb(null, user, context);
}
```

MongoDB の使用方法について詳しくは、[MongoDB Manual](https://docs.mongodb.com/manual/) を参照してください。
