> ## 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 Dashboard で Rule 移行ツールを使用する方法

# 移行ツール

[Auth0 Dashboard](https://manage.auth0.com/) の Rule 移行ツールを使用すると、Rules から Actions への移行を簡素化できます。Rule から Action への移行を容易にするだけでなく、この新しいツールには、一般的な Rule パターンに対応する組み込みのガイダンスや修正機能も用意されています。

<div id="before-migration">
  ## 移行前
</div>

移行を開始する前に、[Rules から Actions への移行](/ja/docs/customize/actions/migrate/migrate-from-rules-to-actions)を参照してください。この移行ガイドでは、Rules と Actions の違いをわかりやすく説明しており、移行を進める際に役立ちます。

<div id="rule-migration-order">
  ### Rule の移行順序
</div>

Rules は Actions より先に実行されるため、Rules は実行順の逆順で移行する必要があります。現在のフローで最後に実行される Rule から移行を始め、そこから時系列をさかのぼって最初の Rule まで進めてください。

この順序で移行しないと、Rules と Actions の実行順の依存関係による想定外の副作用が原因で、エラーが発生する可能性があります。

<div id="safely-rolling-back">
  ### 安全にロールバックする
</div>

移行ツールを使用すると、問題が発生した場合でも、安全かつ簡単にロールバックできます。Rule を再び有効にし、対応する Action のロジックをスキップしてください。

<div id="migrating-a-rule">
  ## Rule の移行
</div>

Rule の移行を開始するには、**Auth Pipeline > Rules** を選択します。選択すると、各 Rule を個別に移行するオプションが表示されます。

<Frame>
  <img src="https://mintcdn.com/translations/c0RQ9V0YAcT0-8l5/docs/images/cdy7uua7fh8z/79DmJp8C2vYZpdos51Z0nM/5a665d04c66dd9f0b8f0e25198cb9e4e/SS1_Dashboard_migration_screenshot.png?fit=max&auto=format&n=c0RQ9V0YAcT0-8l5&q=85&s=97866d7b3b420e0abc35f57f9b481a3b" alt="" width="2026" height="842" data-path="docs/images/cdy7uua7fh8z/79DmJp8C2vYZpdos51Z0nM/5a665d04c66dd9f0b8f0e25198cb9e4e/SS1_Dashboard_migration_screenshot.png" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  **Migrate to Action** を選択すると、開始されるのは移行プロセスのみです。新しい Action をいつ有効化するかは、開発者が選択できます。
</Callout>

<div id="migrate-to-action">
  ### Action への移行
</div>

**Migrate to Action** を選択すると、新しい Action を作成するようツールによって促されます。

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1A8FnVyvqAwW8hbrkOQDoG/f83ba9d5157db14ac2a3a666b2280574/SS2_Migrate_to_Action_screenshot.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=e999d4b305e23999ae748272cc2974f2" alt="" width="2106" height="1292" data-path="docs/images/cdy7uua7fh8z/1A8FnVyvqAwW8hbrkOQDoG/f83ba9d5157db14ac2a3a666b2280574/SS2_Migrate_to_Action_screenshot.png" />
</Frame>

**Create** を選択すると、新しい Action が作成され、Actions Editor が表示されます。

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2A10fE69aVngEcL2ZQCqWX/720dca2a8e6005c9378efad3bc140af0/Screenshot_2024-06-06_at_11.55.38_AM.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=fb69cbfcec64169a5cf374fae04f6813" alt="" width="2024" height="1508" data-path="docs/images/cdy7uua7fh8z/2A10fE69aVngEcL2ZQCqWX/720dca2a8e6005c9378efad3bc140af0/Screenshot_2024-06-06_at_11.55.38_AM.png" />
</Frame>

Rule が Actions に移行され、なお有効なままの場合、その Rule はロジックが実行される前に終了します。

これは、`api.rules.wasExecuted()` を呼び出すことで実現されます。`wasExecuted` 関数に Rule ID を含む文字列を渡すと、その Rule がすでに実行されていれば `true` を返し、そうでない場合は `false` を返します。

これは、ロジックが 2 回実行されるのを防ぐのに役立ちます。参照先の Rule を無効にすると、この関数は `false` を返すようになり、以後は Action 内でビジネスロジックが実行されます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Rule ID の値は、**Migrate to Action** 機能を使用して移行されたすべての Rule で自動的に設定されます。
</Callout>

`api.rules.wasExecuted()` 関数の詳細については、[Actions Triggers: post-login - API Object](/ja/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-api-object) を参照してください。

<div id="rewrite-rule-code">
  ## Rule コードの書き換え
</div>

Actions Editor で **Rules** ボタンを選択し、Rules Migration ツールを読み込みます。ここでは、移行された Rule のコードをすばやく参照できます。サイドバーで、選択した Rule のコードを確認してください。

Rule 関数の内容をコピーし、Action の `// YOUR CODE HERE` コメントの下に貼り付けます。このコードは、Actions のプログラミングモデルに合わせて調整されていない可能性があります。

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2jWCZFnfERuN7NzBPrpCDn/80ba271699893a007dac7baaf2dd44cb/Screenshot_2024-06-06_at_11.57.03_AM.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=9dc49cde0010d7193fb079bfd09d196a" alt="" width="2012" height="1486" data-path="docs/images/cdy7uua7fh8z/2jWCZFnfERuN7NzBPrpCDn/80ba271699893a007dac7baaf2dd44cb/Screenshot_2024-06-06_at_11.57.03_AM.png" />
</Frame>

Actions Editor では、コードのリファクタリングが必要な箇所についてフィードバックが表示されます。また、多くのケースでは自動修正の提案も表示されます。提案や修正内容を確認するには、下線付きのコードにカーソルを合わせます。

<Frame>
  <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5jRGI4iDX9ZgwcPRADTbZ1/caa90923a76800526871b137806e2af3/Screenshot_2024-06-06_at_11.58.07_AM.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=b13e8eea9cf22810417cb04ac268ebe1" alt="" width="1998" height="1476" data-path="docs/images/cdy7uua7fh8z/5jRGI4iDX9ZgwcPRADTbZ1/caa90923a76800526871b137806e2af3/Screenshot_2024-06-06_at_11.58.07_AM.png" />
</Frame>

**Quick Fix** モーダルでオプションを選択すると、Action 固有の更新を適用できる場合があります。

<Frame>
  <img src="https://mintcdn.com/translations/xwVvTWJUElMm5YAK/docs/images/cdy7uua7fh8z/qTS4RD6cjWFVfI0T9Uph3/45776c464f7247ddd8e91860f4646f2e/Screenshot_2024-06-06_at_11.58.48_AM.png?fit=max&auto=format&n=xwVvTWJUElMm5YAK&q=85&s=745d3a882f413dcf45dd0f49180bb60a" alt="" width="2032" height="1508" data-path="docs/images/cdy7uua7fh8z/qTS4RD6cjWFVfI0T9Uph3/45776c464f7247ddd8e91860f4646f2e/Screenshot_2024-06-06_at_11.58.48_AM.png" />
</Frame>

推奨される修正を選択すると、コードは互換性のある形に自動的に更新されます。

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1cAq5A1MNVLPAsinHjtROh/c71276afd1f6df9e01d71cc869778907/Screenshot_2024-06-06_at_11.59.37_AM.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=05b52642db7731d9b895b4f848164fcb" alt="" width="2144" height="1588" data-path="docs/images/cdy7uua7fh8z/1cAq5A1MNVLPAsinHjtROh/c71276afd1f6df9e01d71cc869778907/Screenshot_2024-06-06_at_11.59.37_AM.png" />
</Frame>

修正を自動的に適用できない場合でも、ガイダンスは表示されます。

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4Lx3RxJh8v4tj1J2SpPVvU/0ff35b0f40bb24d195ab2f4b06817d86/Screenshot_2024-06-06_at_12.00.22_PM.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=61c38294dc7f88ec6a29c8c3e9d896ba" alt="" width="2194" height="1620" data-path="docs/images/cdy7uua7fh8z/4Lx3RxJh8v4tj1J2SpPVvU/0ff35b0f40bb24d195ab2f4b06817d86/Screenshot_2024-06-06_at_12.00.22_PM.png" />
</Frame>

たとえば Rule の `callback` 関数では、エラー時には [`api.access.deny`](/ja/docs/customize/actions/explore-triggers/signup-and-login-triggers/pre-user-registration-trigger/pre-user-registration-api-object) を使用し、成功時には単に `return` することが推奨されます。

<div id="test-the-new-action">
  ### 新しい Action をテストする
</div>

Actions はエディター内で直接テストできます。これは移行作業の重要な一部です。詳細については、[Actions のテスト](/ja/docs/customize/actions/test-actions)を参照してください。

<Warning>
  本番環境で有効にする前に、開発用テナントですべての移行ロジックを検証することを強く推奨します。
</Warning>

<div id="automatically-enabling-the-action">
  ### Action を自動的に有効にする
</div>

Action のコードを更新し、切り替える準備ができたら、次の手順を実行します。

1. **Deploy** を選択します。
2. デプロイを確認するアラートで、**Add to flow** を選択します。
3. 新しく作成した Action をフローに追加し、**Apply.** を選択します。
4. **Continue** を選択し、選択されている Rules を無効にします。これにより、新しい Action が有効になり、元の Rule は同時に無効になります。まだ準備ができていない場合は、**Cancel** を選択します。後で Rule を無効にして、移行した Action ロジックを有効にすることもできます。

Action をフローに追加する方法の詳細については、[最初の Action を作成する](/ja/docs/customize/actions/write-your-first-action)を参照してください。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Rule を再度有効にすると、対応する Action ロジックはスキップされます。
</Callout>

<div id="migrate-remaining-rules">
  ## 残りのRulesを移行する
</div>

このプロセスは、ログインフロー内の各Ruleの移行に対して繰り返し実行できます。Rulesは、ログインフローで実行される順序とは逆の順番で移行する必要があることに注意してください。
