常规问题排查

了解在使用 Artifact Registry 时适用于所有制品格式的问题排查步骤。如需了解特定制品格式的问题,请参阅特定于该格式的页面。

命令中的代码库或位置无效

使用以下信息可帮助您诊断代码库位置无效或代码库名称无效错误。

gcloud 的位置和代码库默认值

如果您在 Google Cloud CLI 中设置了默认的代码库和位置,以便在 gcloud artifacts 命令中省略 --location--repository 标志,请尝试使用这些标志和相应的值运行失败的命令。如需详细了解特定命令的语法,请运行带有 --help 标志的命令。

默认代码库设置不适用于您在不使用 --repository 标志的情况下指定代码库名称的 gcloud artifacts 命令。例如,您必须在 gcloud artifacts repositories describe 命令中指定代码库名称,如以下示例所示:

gcloud artifacts repositories describe my-repo --location=us-west1

如果命令仍然失败,您可能需要验证是否为代码库或位置指定了有效值。

代码库位置

如需列出所有受支持的 Artifact Registry 位置,请运行以下命令:

gcloud artifacts locations list

您的组织政策可能包含位置限制。Artifact Registry 会在创建代码库时强制执行这些限制。 对于在位置限制生效之前创建的代码库,Artifact Registry 不会追溯执行政策。

gcloud 命令中的代码库名称

您可以列出代码库,以查看指定项目或位置中的代码库名称。

如需列出项目中的所有代码库,请运行以下命令:

gcloud artifacts repositories list --project=PROJECT-ID \
    --location=all

如需列出某个位置中的所有代码库,请运行以下命令:

gcloud artifacts repositories list --project=PROJECT-ID \
    --location=LOCATION

PROJECT-ID 替换为您的 Google Cloud 项目 ID,并将 LOCATION 替换为代码库位置。

该命令会返回每个代码库的信息,类似于以下示例:

REPOSITORY: my-repo
FORMAT: DOCKER
DESCRIPTION:
LOCATION: us-west1
LABELS:
ENCRYPTION: Google-owned and Google-managed encryption key
CREATE_TIME: 2021-09-23T19:39:10
UPDATE_TIME: 2021-09-23T19:39:10

REPOSITORY 的值是您在包含代码库名称作为参数的 gcloud artifacts 命令中使用的值。

例如,以下命令使用 --repository 标志:

gcloud artifacts packages list --location=us-west1 --repository=my-repo

此命令仅使用代码库名称,不使用标志:

gcloud artifacts repositories describe my-repo --location=us-west1

使用第三方客户端的代码库名称

对于第三方客户端,您通常在配置客户端时使用完整的代码库路径,例如 us-west1-docker.pkg.dev/my-project/my-repo。然后,您需要遵循客户端的惯例来上传和下载软件包。如需了解客户端配置和使用详情,请参阅您所用格式的文档。

如果您要从 Container Registry 过渡,请注意,所有映像路径都必须包含 Artifact Registry 代码库名称。您无法指定仅包含项目 ID 的图片路径。

  • 无效路径us-east1-docker.pkg.dev/my-project/my-image
  • 有效路径us-east1-docker.pkg.dev/my-project/my-repo/my-image

无法从未删除的代码库中推送或拉取内容

在取消删除 Google Cloud项目或在停用 Artifact Registry API 后启用该 API 后,代码库不再正常运行。

如果您停用 Artifact Registry API 或删除项目,则 Artifact Registry 服务将不可用。Artifact Registry 会在 7 天后删除代码库数据。

详细了解如何在 Google Cloud上删除数据

在服务边界中拉取适用于 Cloud Run 的 Prometheus sidecar 时出错

将 Artifact Registry 与 VPC Service Controls 搭配使用,并尝试在服务边界内拉取 Cloud Run 的 Prometheus sidecar 映像。您会收到 403 permission denied 错误。

如需解决此问题,请在您配置的出站规则中允许出站流量流向 cloud-ops-agents-artifacts 项目,以便在服务边界中使用 mirror.gcr.io。为此,请在出站流量规则中添加 projects/1042947621568 作为资源。