次の擬似コードは、Data Lineage API を使用して使用可能なすべてのリージョンからデータリネージ リンクを取得する手順の概要を示しています。
- 入力の設定:
linksToFetch
= 5(すべてのリージョンから取得するリンクの数)regionalPageToken
= ""(ページ分割に使用される最後に受信したリージョン ページ トークン)
- Create:
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 エンドポイントに別のリクエストを送信します。ただし、
- リージョン名を
- 空ではないページトークンとともにリンクが返されなかった場合
nextPageToken
の前にlastRegion
([region].[receivedNextPageToken]
)を追加してnextRegionalPageToken
を作成し、連続した呼び出しでページ分けを処理します。