> ## 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 で ルール 移行ツールを使用する方法について説明します

# 移行ツール

[Auth0 Dashboard](https://manage.auth0.com/) の ルール 移行ツールを使用すると、ルール から Actions への移行プロセスを簡素化できます。新しいツールは、ルール から Action への切り替えを容易にするだけでなく、一般的な ルール パターンに対する組み込みのガイダンスや修正も提供します。

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

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

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

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

この順序で移行しないと、ルール と Actions の実行順における依存関係によって予期しない副作用が生じ、エラーが発生する可能性があります。

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

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

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

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

<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">
  ### Migrate to 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>

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

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

これにより、ロジックが二重に実行されるのを防げます。参照先のルールを無効にすると、この関数は `false` を返すようになり、以降は Action 内でビジネスロジックが実行されます。

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

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

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

Actions Editor で **ルール** ボタンを選択し、ルール移行ツールを開きます。ここでは、移行された 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`](/docs/ja-jp/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 をテストする](/docs/ja-jp/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** を選択し、**選択されているルールを無効化** すると、新しい Action を有効にし、元の ルール を同時に無効化できます。まだ準備ができていない場合は、**Cancel** を選択してください。ルール は後で無効化して、移行した Action ロジックを有効にすることもできます。

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

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

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

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