移行を計画する
移行計画時のヒント
- コストの高い処理や一度限りの処理が重複しないよう、フラグを使用します。
- 影響とトラフィックが最も少ない時間帯に変更を実施するようにしてください。
- 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 に入力します。
-
Trigger を見つけて、適切なトリガーを選択します**:**
Hook の種類 Actions Trigger Client Credentials Exchange M2M/Client-Credentials Pre-User-Registration Pre User Registration Post-User-Registration Post User Registration Post-Change-Password Post Change Password Send Phone Message Send Phone Message - Runtime を見つけて、Node 18 を選択します。
- Create を選択します。
- Actions Code Editor のコードブロックで、変換する Hook のコードをエクスポートされた関数の下に貼り付けます。
-
コードを関数内に移しながら、この記事の以降で説明する変更を加えます。
また、新しい Actions Trigger に関連付けられた
eventオブジェクトについても確認してください。このガイドの後半にある データへのアクセス方法を変更する セクションに進むと、関連ドキュメントへのリンクが表示されます。
関数宣言を変更する
| Hook の種類 | 名前付きエクスポート |
|---|---|
| Client Credentials Exchange | onExecuteCredentialsExchange |
| Pre-User Registration | onExecutePreUserRegistration |
| Post-User Registration | onExecutePostUserRegistration |
| Post-Change Password | onExecutePostChangePassword |
| Send Phone Message | onExecuteSendPhoneMessage |
依存関係を移行する
npm Registry で公開されている任意のパッケージを require できます。
npm モジュールが最新バージョンでない場合は、この機会に更新しておくことをおすすめします。- Hook のコード内にある
require文を探します。 - バージョン番号を削除し、削除した番号は控えておきます。
- Write Your First Action の「Add a Dependency」セクションの手順に従って依存関係を追加します (依存関係が core NodeJS module ではない場合) 。依存関係が core NodeJS module の場合は、追加する必要はありません。
- 見つかった
require文をfunction宣言の外に移動します。
シークレットを変換する
- 作業中の Action に必要な値を保存します。
- Action 内からアクセスする必要がある値ごとに Secret を追加します。追加方法については、Write Your First Action の Add a Secret セクションを参照してください。
- コードを変換します。
データへのアクセス方法を変更する
event オブジェクトに移されています。多くのプロパティはそのまま移行されていますが、わかりやすさを向上させるために一部は統合されています。
変換する Hook の種類によって、event オブジェクトの内容は異なります。
- Client Credentials Exchange - Actions Event Object
- Post-Change Password - Actions Event Object
- Post-User Registration - Actions Event Object
- Pre-User Registration - Actions Event Object
- Send Phone Message - Actions Event Object
Hooks の
context オブジェクトとは異なり、event オブジェクトのプロパティに保存または変更したデータは、後続の Actions には引き継がれません。Hook でこれらのプロパティにデータを設定してコア機能をトリガーしている場合は、Actions 間でデータを保持するために、Machine to Machine および Pre User Registration の Actions フローで使用できる api インターフェースを利用する必要があります。コールバックを変換する
callback() 関数を呼び出す必要があります。一方、Actions ではコールバックの仕組みを使用しないため、Action 関数から callback() の呼び出しをすべて削除する必要があります。
これまで Client Credentials Exchange または Pre User Registration Hook で、リクエストを失敗させたりユーザーを更新したりするために callback() 関数を使用していた場合でも、Actions では新しい api インターフェースを通じて引き続き同じことを実行できます。