목차
ACR 传输故障排除
이 문서의 내용
模板部署故障或错误
如果管道运行失败,请查看运行资源的 pipelineRunErrorMessage
属性。
有关常见的模板部署错误,请参阅 ARM 模板部署疑难解答
访问 Key Vault 时出现问题
如果 pipelineRun 部署在访问 Azure Key Vault 时失败并出现“403 Forbidden
”错误,请验证管道托管标识是否具有足够的权限。
pipelineRun 使用 exportPipeline 或 importPipeline 托管标识从 Key Vault 提取 SAS 令牌机密。 ExportPipelines 和 importPipelines 是使用系统分配的或用户分配的托管标识预配的。 需要此托管标识才能获得对 Key Vault 的 secret get
权限,才能读取 SAS 令牌机密。 确保已将托管标识的访问策略添加到 Key Vault。 有关详细信息,请参阅授予 ExportPipeline 标识 keyvault 策略访问权限 和授予 ImportPipeline 标识 keyvault 策略访问权限 。
访问存储时遇到的问题
如果存储中显示 403 Forbidden
错误,则 SAS 令牌可能存在问题。
SAS 令牌当前可能无效。 SAS 令牌可能已到期,或者创建 SAS 令牌后存储帐户密钥可能已更改。 通过尝试使用 SAS 令牌对对存储帐户容器的访问进行身份验证,验证 SAS 令牌是否有效。 例如,在新的 Microsoft Edge InPrivate 窗口的地址栏中将现有 blob 终结点放在 SAS 令牌之后,或者使用 az storage blob upload
将 blob 上传到具有 SAS 令牌的容器。
SAS 令牌可能没有足够的允许的资源类型。 验证 SAS 令牌是否有权访问允许的资源类型(SAS 令牌中的 srt=sco
)下的服务、容器和对象。
SAS 令牌可能没有足够的权限。 对于导出管道,所需的 SAS 令牌权限为读取、写入、列出和添加。 对于导入管道,所需的 SAS 令牌权限为读取、删除和列出。 (仅在导入管道启用了 DeleteSourceBlobOnSuccess
选项时才需要“删除”权限。)
SAS 令牌可能未配置为仅使用 HTTPS。 验证 SAS 令牌是否配置为仅使用 HTTPS(SAS 令牌中的 spr=https
)。
导出或导入存储 blob 时出现问题
SAS 令牌可能无效,或者可能没有足够的权限来运行指定的导出或导入。 请参阅访问存储时遇到的问题 。
在多个导出运行期间,源存储帐户中的现有存储 blob 可能未被覆盖。 确认在导出运行中设置了 OverwriteBlob 选项,并且 SAS 令牌具有足够的权限。
在导入运行成功后,可能未删除目标存储帐户中的存储 blob。 确认在导入运行中设置了 DeleteBlobOnSuccess 选项,并且 SAS 令牌具有足够的权限。
未创建或未删除存储 blob。 确认在导出或导入运行中指定的容器存在,或用于手动导入运行的指定存储 blob 存在。
与源触发器导入有关的问题
SAS 令牌必须具有“列表”权限,源触发器导入才能正常工作。
只有在存储 Blob 的上次修改时间在过去 60 天内,才会触发源触发器导入。
存储 Blob 必须具有有效的 ContentMD5 属性,才能由源触发器功能导入。
存储 Blob 必须具有 "category":"acr-transfer-blob" blob 元数据才能由源触发器功能导入。 此元数据在导出管道运行期间自动添加,但在存储帐户之间移动时可能会被剥离,具体取决于复制方法。
AzCopy 问题
项目传输问题
并未传输所有项目或者根本未传输任何项目。 确认导出运行中的项目拼写,以及导出和导入运行中的 blob 名称。 确认最多传输 50 个项目。
管道运行可能未完成。 导出或导入运行可能需要一些时间。
对于其他管道问题,请向 Azure 容器注册表团队提供导出运行或导入运行的部署相关 ID 。
要创建 ACR 传输资源,例如 exportPipelines
、 importPipelines
和 pipelineRuns
,用户必须至少具有 ACR 订阅的参与者访问权限。 否则,他们将看到执行传输的授权被拒绝或范围无效错误。
在物理隔离环境中拉取映像时出现的问题
如果在物理隔离环境中尝试拉取映像时发现与外部层或尝试解析 mcr.microsoft.com 有关的错误,则映像清单可能具有不可分发的层。 由于物理隔离环境的性质,这些映像通常无法拉取。 可以通过检查映像清单中是否存在对外部注册表的任何引用,来确认是这种情况。 如果是这种情况,在为该映像部署导出管道运行之前,需要将不可分发的层推送到公有云 ACR。 有关如何执行此操作的指导,请参阅如何将不可分发层推送到注册表?