> ## 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.

> 永続的なグローバルオブジェクトを使用して Auth0 Rule の実行をまたいで高コストなリソースをキャッシュし、実行のたびに再作成することを回避します。

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

<Warning>
  Rules と Hooks の提供終了 (EOL) 日は **2026年11月18日** です。また、**2023年10月16日** 以降に作成された新規テナントでは、すでに利用できません。既存のテナントで有効な Hooks を使用している場合は、提供終了まで Hooks 製品へのアクセスが維持されます。

  Auth0 を拡張するには、Actions の使用を強くおすすめします。Actions では、豊富な型情報、インラインドキュメント、公開 `npm` パッケージを利用できるほか、外部連携も利用できるため、拡張性に関する開発体験が向上します。Actions でできることの詳細については、[Understand How Auth0 Actions Work](/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://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 マニュアル](https://docs.mongodb.com/manual/)をご覧ください。
