移行を計画する
移行を計画する際のヒント
- コストの高い処理や一度しか実行してはならない処理が重複しないよう、フラグを使用してください。
- 変更は、影響とトラフィックが最も少ない時間帯に実施してください。
- Auth0 Deploy CLI を使用して、移行全体を一括または段階的にスクリプト化し、テストして、すばやく実装することを検討してください。
制限事項を理解する
- Actions では、 や API レスポンスのようなデータを、実行間で保持することはできません。
- Actions では、Hooks のように Management API 用のアクセストークン や グローバル
auth0オブジェクトへのアクセス は利用できません。
コードを変換する
コード変換時のヒント
- 基本的には、Hooks 関数に渡されるオブジェクトの読み取り専用プロパティに相当するものを、Actions の
eventオブジェクトで探してください。 - コードの作成には Auth0 Dashboard の Actions Code Editor を使用してください。エラーのハイライト表示や自動補完候補の提示に役立ちます。
- 本番環境に移行する前に、新しい Actions を十分にテストし、ステージング環境またはテスト環境 で入念に確認してください。
Hook のコードを新しい Action にコピーする
Hook のコードを新しい Action にコピーし、Auth0 Dashboard の Actions Code Editor を使用することをお勧めします。これにより、コードに残っている問題を特定しやすくなります。
- 本番テナントにログインし、変換したい Hook からコードをコピーします。
- 非本番テナントに切り替え、Auth0 Dashboard > Actions > Library に移動します。
-
Build Custom を選択し、次の操作を行います。
- 変換する Hook の名前と一致する Action の Name を入力します。
-
Trigger で、適切なトリガーを選択します**:**
- Runtime で Node 18 を選択します。
- Create を選択します。
- Actions Code Editor のコードブロックで、変換したい Hook のコードを export された関数の下に貼り付けます。
-
コードを関数内に移しながら、この記事の残りの部分で説明されている変更を加えます。
また、新しい Actions のトリガーに関連付けられた
eventオブジェクトについても確認してください。このガイドの後半にある データへのアクセス方法を変更する セクションに進むと、関連ドキュメントへのリンクが表示されます。
関数宣言を変更する
変更前
依存関係を移行する
npm Registryで利用可能な任意のパッケージをrequireできます。
npmモジュールが最新バージョンでない場合は、今がアップデートの絶好の機会です。- Hookコード内の
require文を検索します。 - バージョン番号を削除し、その番号はメモしておきます。
- 依存関係がNodeJSのコアモジュールでない場合は、Write Your First Action の「Add a Dependency」セクションの手順に従って追加します。コアモジュールであれば、追加する必要はありません。
- 見つかった
require文をfunction宣言の外に移動します。
シークレットを変換する
- 作業中の Action に必要な値を控えておきます。
- Action 内からアクセスする値ごとに Secret を追加します。追加方法については、Write Your First Action の Add a Secret セクションを参照してください。
- コードを変換します。
データへのアクセス方法を変更する
event オブジェクトに移されています。多くのプロパティはそのまま移行されていますが、わかりやすくするために統合されたものもあります。
変換する Hook の種類によって、event オブジェクトの内容は異なります。
- Client Credentials Exchange - Actions イベントオブジェクト
- Post-Change Password - Actions イベントオブジェクト
- Post-User Registration - Actions イベントオブジェクト
- Pre-User Registration - Actions イベントオブジェクト
- Send Phone Message - Actions イベントオブジェクト
Hooks の
context オブジェクトとは異なり、event オブジェクトのプロパティに保存または変更されたデータは、後続の Actions には引き継がれません。Hook でこれらのプロパティにデータを設定してコア機能をトリガーしている場合は、Actions 間でデータを保持するために、Machine to Machine および Pre User Registration の Actions Flows で利用できる api インターフェースを使用する必要があります。コールバックを変換する
callback() 関数を呼び出す必要があります。一方、Actions ではコールバックの仕組みを使用しないため、Actions 関数から callback() の呼び出しをすべて削除する必要があります。
以前、Client Credentials Exchange または Pre User Registration Hook で、リクエストを失敗させたりユーザーを更新したりするために callback() 関数を使用していた場合でも、Actions では新しい api インターフェースを通じて引き続きこれを行えます。