複数のリージョンからリネージのリンクを取得する

次の擬似コードは、データリネージ API を使用して使用可能なすべてのリージョンからデータリネージ リンクを取得する手順の概要を示しています。

  1. Input setup:
  2. linksToFetch = 5(すべてのリージョンから取得するリンクの数)
  3. regionalPageToken = ""(ページ分割に使用される最後に受信したリージョン ページ トークン)
  4. Create:
    1. regions と呼ばれるファンアウトするすべてのリージョンのリスト。
    2. unreachable と呼ばれる到達不能なリージョンのリスト。
    3. foundLinks と呼ばれる見つかったリンクの空のリスト。
    4. 空の変数 nextPageTokennextRegionalPageToken
    5. 空の変数 lastRegion
    6. 空の変数 lastRegionLinksCount
  5. regions をアルファベット順に並べ替えます。
  6. regionalPageToken を解析します
    1. 空になっている場合は、ステップ 4 に進みます。
    2. 空でない場合は、以下を行います。
      1. 最初のドットで 2 つのセグメントに分割し、regionalPageToken を解析します。
      2. 解析された regionalPageToken の最初のセグメントの後(アルファベット順)のリージョンのみを取得して、リージョンをフィルタで除外します。
      3. 2 番目のセグメントはすべての projects.locations.searchLinks 呼び出しで使用するために保存しておきます。
  7. regions リストの各リージョンで projects.locations.searchLinks を並行して呼び出します。
  8. すべてのリクエストが完了するまで待ちます。
  9. 成功したレスポンスを除外し、失敗したリージョン名を unreachable リストに保存します。
  10. 各レスポンス(アルファベット順の最初のリージョンから開始)の場合。
    1. 空でないページトークンとともにリンクが返されなかった場合
      1. lastRegion にリージョン名を保存します。
      2. 受信した pageToken を nextPageToken に保存します。
      3. 残りのレスポンスは無視します。
    2. それ以外の場合
      1. lastRegion にリージョン名を保存します。
      2. 受信したリンクを foundLinks に保存します(最大 linksToFetch)。
      3. 受信した pageToken を nextPageToken に保存します。
      4. lastRegionLinksCount のレスポンスから取得したリンクの数を保存します。
      5. foundLinkslinksToFetch より小さい場合
        1. アルファベット順で次に受信したレスポンスを使用して疑似コードを続行します。
      6. foundLinkslinksToFetch と等しい場合
        1. 同じリージョン内の projects.locations.searchLinks エンドポイントにもう一度リクエストを送信しますが、pageSize パラメータを lastRegionLinksCount の値に設定します。
        2. nextPageToken に受信した pageToken を保存します。
        3. ステップ 8 に進みます
  11. 先頭に lastRegion とともに nextPageToken を追加します(例: nextRegionalPageToken を作成して連続した呼び出しでページ分けを処理するには、「[region].[ReceiveddNextPageToken]]」)。