你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查 Microsoft Planetary Computer Pro 中的数据引入问题

Microsoft行星计算机 Pro GeoCatalog 中的数据引入问题通常分为两类:访问权限问题和 STAC(SpatioTemporal 资产目录)验证错误。 本文可帮助你识别和解决这些常见的摄取故障。

先决条件

症状

数据引入工作流失败,并出现特定 错误代码。 可能会遇到两个主要类别的问题:

  1. 访问和权限错误: 引入过程失败,因为 GeoCatalog 服务无法读取源数据。 你可能会看到错误代码,例如 IngestionAuthenticationFailedIngestionResourceForbiddenIngestionResourceUriNotFound
  2. STAC 验证错误: 引入失败,因为提供的 STAC 元数据不符合 STAC 标准或服务特定的规则。 你可能会看到错误代码,例如 StacValidationFailedInvalidStacCatalogInvalidInputData

识别数据引入期间的错误

对于 单项引入,如果发生引入错误,API 响应或用户界面将返回错误代码。

单个项目导入错误的屏幕截图,其中突出显示了错误代码的位置。

对于 批量引入,每个 STAC 项的错误可能有所不同。 若要查看各个错误,请导航到 Azure 门户,找到 GeoCatalog 资源的 诊断设置 。 在这里,可以启用 引入日志。

在 Azure 门户中搜索 GeoCatalogs 的屏幕截图。

启用日志记录后,再次尝试数据导入。 如果引入失败,请转到诊断设置中指定的位置以查看错误。

原因 1:GeoCatalog 无法访问源数据

GeoCatalog 服务缺少读取 STAC 元数据(例如 catalog.json)和相关数据资产(例如 GeoTIFF 文件)的必要权限。 此错误是因为未为存储位置配置有效的 引入源 。 如果元数据文件和资产文件配置在不同位置,则必须为它们配置导入来源。

解决方案 1:配置引入源权限

  1. 验证引入源是否存在

    • 导航到 GeoCatalog 的 “设置 ”选项卡
    • 检查是否为存储容器配置了引入源
    • 如果没有, 请创建引入源
  2. 验证凭据

    对于托管标识

    • 确保托管标识具有“存储 Blob 数据读取者”角色
    • 验证角色分配是否位于正确的范围(存储帐户或容器级别)
    • 检查托管标识是否与 GeoCatalog 相关联

    对于 SAS 令牌

    • 验证令牌是否未过期
    • 确保令牌具有 readlist 权限
    • 确认令牌范围设置为正确的容器
  3. 检查对所有所需位置的访问权限

    STAC 目录的示意图,其中显示了 GeoCatalog 需要访问的层次结构。

    批量引入支持静态 STAC 目录,这些目录引用存储在 catalog.json 文件中的容器之外的存储中的资产。 但是,每个存储容器都需要 GeoCatalog 的引入源来维护引入数据的权限。

    确保 GeoCatalog 有权:

    • STAC 目录 JSON 文件
    • 所有 STAC 项 JSON 文件
    • STAC 项中引用的所有资产文件
  4. 重试引入: 验证并更正引入源配置后,请再次尝试引入。

原因 2:STAC 元数据验证失败

引入服务严格执行 STAC 规范。 如果 STAC 目录、集合或项 JSON 不符合标准或满足特定的 GeoCatalog 要求,则引入失败。

解决方案 2.1:修复无效的 STAC 格式和值

  1. 在本地验证: 在引入之前,请使用类似于 pystac 验证 STAC 对象的库。 在引入数据之前,此方法可能会捕获许多常见的格式设置问题。

  2. 检查必填字段:

    • 确保元数据中存在所有必需的 STAC 字段。
    • 对于单项引入,STAC 项 JSON 必须 包含 collection 该字段,其值设置为 GeoCatalog 中目标集合的 ID。
  3. 设置日期/时间格式:验证所有datetime字段是否符合 ISO 8601 标准(例如)。 YYYY-MM-DDTHH:MM:SSZpystac 库提供实用工具来正确设置日期时间的格式。

  4. 检查是否有无效字符和不正确的长度:

    • STAC Item IDsAsset keys
      • 必须仅包含以下字符:
        • 字母: A-Za-z
        • 位数:0-9
        • 符号:-、、_+,().
      • 所有其他字符都无效。
      • Item IDs 必须少于 150 个字符。
      • Asset keys 必须少于 256 个字符。
    • STAC Collection IDs
      • 必须仅包含以下字符:
        • 字母: A-Za-z
        • 位数:0-9
        • 符号: -、、 _.
      • 所有其他字符都无效
      • Collection IDs 必须少于 243 个字符。
  5. 重试引入: 更正 STAC 元数据后,再次尝试引入。

解决方案 2.2:简化 STAC 扩展

  1. 标识扩展: 检查 STAC 项是否使用任何 STAC 扩展。 虽然功能强大,但它们为验证增添了复杂性,而且许多人没有处于最终状态。
  2. 删除非基本扩展: 如果怀疑扩展导致了 StacValidationFailed 错误,请尝试将其从 STAC 项 stac_extensions 列表和任何关联的字段中删除。
  3. 重新验证并重试: 在本地验证简化的 STAC 项,然后重试引入。