从多个区域提取沿袭链接

以下伪代码概述了您可以使用数据沿袭 API 从所有可用区域中提取数据沿袭链接的过程。

  1. 输入设置:
  2. linksToFetch = 5(从所有区域提取的链接数)
  3. regionalPageToken = ""(上次收到的用于分页的区域级页面令牌)
  4. 创建:
    1. 名为 regions 的所有扇出区域列表。
    2. 无法访问的名为 unreachable 的区域列表。
    3. 找到的名为 foundLinks 的链接的空列表。
    4. 空变量 nextPageTokennextRegionalPageToken
    5. 空变量 lastRegion
    6. 空变量 lastRegionLinksCount
  5. 按字母顺序对 regions 排序。
  6. 解析 regionalPageToken
    1. 如果为空,请继续执行第 4 步
    2. 如果值不为空,则
      1. 通过将第一个点拆分为两个段来解析 regionalPageToken
      2. 过滤掉已解析的 regionalPageToken 后面的区域(按字母顺序)以过滤掉区域。
      3. 请存储第二个细分,以便在所有 projects.locations.searchLinks 调用中使用。
  7. 并行调用 regions 列表中每个区域的 projects.locations.searchLinks
  8. 等待所有请求完成。
  9. 滤除成功响应,并将失败的区域名称存储在 unreachable 列表中。
  10. 对于每个响应(从字母顺序开始,从第一个区域开始)
    1. 如果没有返回链接以及非空页面令牌
      1. 将区域名称存储在 lastRegion 中。
      2. nextPageToken 中保存收到的 pageToken。
      3. 忽略其余响应。
    2. 否则
      1. 将区域名称存储在 lastRegion 中。
      2. foundLinks 中保存收到的链接(最多 linksToFetch 个)。
      3. nextPageToken 中保存收到的 pageToken。
      4. 存储来自 lastRegionLinksCount 响应中的链接的链接数。
      5. 如果 foundLinks 小于 linksToFetch
        1. 按下一个字母顺序使用收到的下一个响应继续运行伪代码。
      6. 如果 foundLinks 等于 linksToFetch
        1. 在同一区域中向 projects.locations.searchLinks 端点发出另一个请求,但将 pageSize 参数的值设置为 lastRegionLinksCount
        2. 将收到的 pageToken 存储在 nextPageToken 中。
        3. 继续执行第 8 步
  11. 请在 nextPageToken 前面加上 lastRegion(即“[region].[receivedNextPageToken]”),以创建 nextRegionalPageToken 来处理连续调用中的分页。