次の擬似コードは、Data Lineage API を使用して使用可能なすべてのリージョンからデータリネージ リンクを取得する手順の概要を示しています。
- 入力の設定:
linksToFetch= 5(すべてのリージョンから取得するリンクの数)regionalPageToken= ""(ページ分割に使用される最後に受信したリージョン ページ トークン)
- 作成:
regionsと呼ばれるファンアウトするすべてのリージョンのリスト。unreachableと呼ばれる到達不能なリージョンのリスト。foundLinksと呼ばれる見つかったリンクの空のリスト。- 空の変数
nextPageTokenとnextRegionalPageToken。 - 空の変数
lastRegion。 - 空の変数
lastRegionLinksCount。
regionsをアルファベット順に並べ替えます。- 解析
regionalPageToken- 空の場合は、ステップ 5 に進みます。
- 空でない場合は、以下を行います。
- 最初のドットで 2 つのセグメントに分割し、
regionalPageTokenを解析します。 - 解析された
regionalPageTokenの最初のセグメントの後(アルファベット順)のリージョンのみを取得して、リージョンをフィルタで除外します。 - 2 番目のセグメントはすべての projects.locations.searchLinks 呼び出しで使用するために保存しておきます。
- 最初のドットで 2 つのセグメントに分割し、
regionsリストの各リージョンで projects.locations.searchLinks を並行して呼び出します。- すべてのリクエストが完了するまで待ちます。
- 成功したレスポンスをフィルタして、失敗したリージョン名を
unreachableリストに保存します。 - 各レスポンス(アルファベット順の最初のリージョンから開始)について
- 空でないページトークンとともに返さたリンクがなかった場合
- リージョン名を
lastRegionに保存します。 - 受信した pageToken を
nextPageTokenに保存します。 - 残りの回答は無視します。
- リージョン名を
- それ以外の場合
- リージョン名を
lastRegionに保存します。 - 受信したリンクを
foundLinksに保存します(最大linksToFetch)。 - 受信した pageToken を
nextPageTokenに保存します。 lastRegionLinksCountのレスポンスから取得したリンクの数を保存します。foundLinksがlinksToFetchより小さい場合- 擬似コードを、アルファベット順で次に受信したレスポンスで続行します。
foundLinksがlinksToFetchと等しい場合- 同じリージョンの projects.locations.searchLinks エンドポイントに別のリクエストを行いますが、
pageSizeパラメータをlastRegionLinksCountの値に設定します。 nextPageTokenに受信した pageToken を保存します。- ステップ 9 に進む
- 同じリージョンの projects.locations.searchLinks エンドポイントに別のリクエストを行いますが、
- リージョン名を
- 空でないページトークンとともに返さたリンクがなかった場合
- 先頭に
lastRegion(例:[region].[receivedNextPageToken])とともにnextPageTokenを追加してnextRegionalPageTokenを作成し、連続した呼び出しでページネーションを処理します。