一般的なトラブルシューティング

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

削除されていないリポジトリから push または pull できない

Google Cloudプロジェクトの削除を取り消した後や、Artifact Registry API を無効にした後に有効にした後は、リポジトリは正常に動作しなくなります。

Artifact Registry API を無効にするか、プロジェクトを削除すると、Artifact Registry サービスを利用できなくなります。Artifact Registry は、7 日後にリポジトリ データを削除します。

詳しくは、 Google Cloudでのデータの削除をご覧ください。

サービス境界で Cloud Run 用の Prometheus サイドカーの pull でエラーが発生する

VPC Service Controls で Artifact Registry を使用しており、サービス境界内で Cloud Run 用の Prometheus サイドカーのイメージを pull しようとしています。403 permission denied エラーが表示される。

この問題を解決するには、サービス境界で mirror.gcr.io を使用するように構成した下り(外向き)ルールで、cloud-ops-agents-artifacts プロジェクトへの下り(外向き)を許可します。これを行うには、下り(外向き)ルールにリソースとして projects/1042947621568 を追加します。