token-migrator コンテナが出力するログを、初期化、移行対象クライアントの決定、トークン移行のイテレーション、シャットダウンの各フェーズに分類し、各ログが示す内容と、ログに問題が示されている場合の確認点を説明します。
本記事は、トークン移行ツールのバージョン 1.4 のログにもとづいています。クラスの行番号はメッセージの文言よりもバージョン間で変わりやすいため、ログを検索する際は行番号ではなくメッセージの文言で検索してください(例: ArgsUtils:113 ではなく No batch size provided で検索します)。
初期化
引数の解析
引数の解析時のログは、有効な各引数とオプションの値を示します。値が指定されていない場合や、指定された値が不正な場合は、代わりに使用されるデフォルト値がWARN 行に出力されます。
資格情報によるクライアントの解決(監査ログ用クライアント)
トークン移行ツールは、クライアントの資格情報を使用して、移行先の Authlete 3.0 環境にアクセスできることを確認します。資格情報の確認結果によって、トークン移行を実行するかどうかが決まります。トークン移行ツールは、資格情報が有効な間に限りトークンを移行します。初期化時、トークン移行ツールはクライアントクレデンシャルズグラントを使用して、移行先の Authlete 3.0 サーバーの Process Token Request API を呼び出します。アクセストークンを取得できた場合、トークン移行ツールは初期化を続行します。取得できなかった場合、トークン移行ツールは停止します。 トークン移行ツールは、設定された資格情報から特定されるクライアントを、監査ログイベントの作成にも使用します。トークン移行ツールによるトークンの変更は、監査ログ上ですべて監査ログ用クライアントに紐付けられます。 アクセストークンを取得できた場合、起動時に次のログが出力されます。-
token_request_url(Helm チャートにより自動的に設定されます): -
service_token(authlete-credentials-secret.ymlシークレットのtokenmigrator.serviceTokenで設定します):
authlete-credentials-secret.yml シークレットの tokenmigrator.serviceApiKey で指定したサービスが、移行先データベースに存在しない場合:
migration-service@system.authlete.com であることが想定されており、Helm チャートでは変更できません):
accessToken プロパティが含まれていない場合:
ドライランモードの表示
トークン移行ツールをドライランモード(values.yaml の tokenmigrator.mode: dryrun)で実行すると、トークンは書き込まれません。初期化時には、ドライランが有効であることを示す次のログが出力されます。
処理完了時点のタイムスタンプの確認
トークン移行ツールを再起動して前回の続きから処理を再開する場合、0 以外の処理完了時点のタイムスタンプがログに出力されます(ログ上の表記はmoving timestamp です)。処理完了時点のタイムスタンプは、トークン移行ツールが最後に保存した復旧ポイントです。トークン移行ツールは、復旧ポイント以降のトークン変更を検索します。詳細は「トークン移行ツールの停止と再開」を参照してください。
timestamp.txt を読み込めなかった場合は、Read in moving timestamp initial value の代わりに次のログが出力されます。トークン移行ツールは、引数で指定された初期値(指定がない場合は 0)から処理を開始します。
移行対象クライアントの決定
初期化に成功すると、トークン移行ツールは移行フェーズに移り、まず移行対象となるクライアントを決定します。トークン移行ツールは、新たに検出して移行対象に追加したクライアントを、それぞれログに出力します。移行対象クライアントのトークンは、作成または更新されるたびに確認され、移行されます。 トークン移行ツールは、クライアントが移行対象から除外された場合もログに出力します。 各クライアントは<サービス ID>:<クライアント ID> の形式で識別されます(例: 170886802516:143761865171655)。
クライアントとサービスの初期状態
移行フェーズの開始時に、現在のサービスとクライアントの状態が一度だけ出力されます。移行対象に追加されたクライアント
クライアントが移行対象に追加されると、次のログが出力されます。ログには、トークンを移行する対象となるすべてのクライアントの識別子が含まれます。本メッセージには、トークン移行ツールが移行対象とするすべてのクライアントが列挙されるため、移行対象のクライアントの確認に利用できます。移行対象のクライアントが多い場合、メッセージが長くなることがあります。
移行対象から除外されたクライアント
クライアントが移行対象から除外されると、同様のメッセージが出力されます。クライアントシークレットの不一致
クライアントが移行対象に追加されるのは、クライアントシークレットが移行元と移行先のデータベースで同一の場合に限られます。 ほかのすべての条件を満たしているにもかかわらず、クライアントシークレットの不一致のみを理由に除外されたクライアントがある場合、次の警告が出力されます。トークン移行のイテレーション
次に、トークン移行ツールは、各移行対象クライアントのトークンを取得し、移行先データベースにコピーします。検出されたトークン
トークン移行ツールは、クライアントごとに、検出して移行するトークンの数と、検索した期間をログに出力します。トークンの移行
トークンのバッチを書き込むたびに、書き込んだトークンのうち、更新されたトークンの数と新規作成されたトークンの数を示す次のログが出力されます。シャットダウン時のログ
コンテナが停止されると、トークン移行ツールはシャットダウン中に、処理完了時点のタイムスタンプの最新値をログに出力します。永続ボリューム上のtimestamp.txt が失われた場合は、ログに出力された値を使用して、処理を再開する時点を復元できます(「トークン移行ツールの停止と再開」を参照)。