このページでは、Artifact Registry の汎用形式のリポジトリに、特定のパッケージ形式に準拠していないバージョニングされた不変のアーティファクトを保存する方法について説明します。
汎用アーティファクトの Artifact Registry への保存に慣れるには、クイックスタートをお試しください。
汎用アーティファクトは、次のような任意の形式のファイルです(ただし、これらに限定されません)。
- 圧縮ファイル(tar ファイルや zip ファイルなど)
- 構成ファイル(YAML ファイルや TOML ファイルなど)
- テキスト ファイルと PDF
- バイナリ
- アーカイブ
- メディア ファイル
他の形式とは異なり、汎用形式のリポジトリに保存されているアーティファクトは、Docker、パッケージ管理システム、その他のサードパーティのクライアントで使用されるものではありません。
始める前に
- 汎用形式のリポジトリを作成する。
- リポジトリに必要な権限が付与されていることを確認します。
- (省略可)Google Cloud CLI コマンドのデフォルトを構成します。
必要なロール
汎用アーティファクトの管理に必要な権限を取得するには、リポジトリに対する次の IAM ロールの付与を管理者に依頼してください。
-
アーティファクトを表示する:
Artifact Registry 読み取り (
roles/artifactregistry.reader) -
アーティファクトをダウンロードする:
Artifact Registry 読み取り (
roles/artifactregistry.reader) -
アーティファクトをリポジトリにアップロードする:
Artifact Registry 書き込み (
roles/artifactregistry.writer) -
アーティファクトを削除する:
Artifact Registry リポジトリ管理者 (
roles/artifactregistry.repoAdmin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
汎用アーティファクトをアップロードする
汎用アーティファクトは、ファイル単位で個別にアップロードすることも、ディレクトリ単位で複数アップロードすることもできます。アップロードする際は、パッケージ名とバージョン番号を指定する必要があります。アップロード先のファイル構造のパスを指定することもできます。アップロード先のパスが指定されていない場合、アーティファクトはデフォルトでルートレベルにアップロードされます。
汎用アーティファクトをリポジトリにアップロードするには、次のコマンドを実行します。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
PROJECT: Google Cloudプロジェクト ID。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。LOCATION: リポジトリのリージョンまたはマルチリージョンのロケーション。REPOSITORY: アーティファクトが保存されるリポジトリの名前。SOURCE: アップロードするファイルのロケーションと名前。PACKAGE: アップロードするファイルのパッケージ名。VERSION: アップロードするファイルのバージョン。次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud artifacts generic upload \ --project=PROJECT \ --source=SOURCE \ --package=PACKAGE \ --version=VERSION \ --location=LOCATION \ --repository=REPOSITORY
Windows(PowerShell)
gcloud artifacts generic upload ` --project=PROJECT ` --source=SOURCE ` --package=PACKAGE ` --version=VERSION ` --location=LOCATION ` --repository=REPOSITORY
Windows(cmd.exe)
gcloud artifacts generic upload ^ --project=PROJECT ^ --source=SOURCE ^ --package=PACKAGE ^ --version=VERSION ^ --location=LOCATION ^ --repository=REPOSITORY
--destination-path=PATH: パッケージとバージョン内の指定したフォルダにアップロードします。存在しないフォルダも作成されます。--source-directory=SOURCE_DIR。--sourceフラグを置き換え、1 つのファイルではなくディレクトリをアップロードします。--skip-existing。--source-directoryフラグを使用する場合に既存のファイルをスキップします。スキップしなければ、既存のファイルをアップロードしようとしたときにコマンドが失敗します。
API
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT は Google Cloudプロジェクト ID です。プロジェクト ID にコロン(
:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。 - LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
- REPOSITORY は、アーティファクトが保存されるリポジトリの名前です。
- SOURCE は、アップロードするファイルのロケーションと名前です。
- PACKAGE は、アップロードするファイルのパッケージ名です。
- VERSION は、アップロードするファイルのバージョンです。
- NAME は、リポジトリにおけるファイルの新しい名前です。
HTTP メソッドと URL:
POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
curl(Linux、macOS、Cloud Shell)
リクエストを送信するには、次のコマンドを実行します。
curl -v \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-F "meta={'filename':'NAME','package_id':'PACKAGE','version_id':'VERSION'};type=application/json" \
-F "blob=@SOURCE" \
https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
アーティファクトを一覧表示する
Console
汎用形式のリポジトリのアーティファクトは、Google Cloud コンソールで確認できます。
Google Cloud コンソールで [リポジトリ] ページを開きます。
リポジトリ リストで、リポジトリを選択します。
パッケージの名前をクリックします。
すべてのパッケージ バージョンのダウンロード可能なファイルを表示するには、[ファイル] タブをクリックします。
パッケージの特定のバージョンのダウンロード可能なファイルを表示するには、バージョン名をクリックし、[ファイル] タブをクリックします。
gcloud
gcloud artifacts files list コマンドを使用して、リポジトリ内のアーティファクトを一覧表示できます。
後述のコマンドデータを使用する前に、次のように置き換えます。
PROJECT: Google Cloudプロジェクト ID。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。LOCATION: リポジトリのリージョンまたはマルチリージョンのロケーション。REPOSITORY: アーティファクトが保存されるリポジトリの名前。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud artifacts files list \ --project=PROJECT \ --location=LOCATION \ --repository=REPOSITORY
Windows(PowerShell)
gcloud artifacts files list ` --project=PROJECT ` --location=LOCATION ` --repository=REPOSITORY
Windows(cmd.exe)
gcloud artifacts files list ^ --project=PROJECT ^ --location=LOCATION ^ --repository=REPOSITORY
FILE: my-package:1.0.0:hello.yaml CREATE_TIME: 2023-03-09T20:55:07 UPDATE_TIME: 2023-03-09T20:55:07 SIZE (MB): 0.000 OWNER: projects/my-project/locations/us-central1/repositories/quickstart-generic-repo/packages/my-package/versions/1.0.0
次のフラグのいずれかまたは両方を追加して、バージョンとパッケージで並べ替えることもできます。
--package=PACKAGE。特定のパッケージのファイルのみを表示します。--version=VERSION。特定のバージョンのファイルのみを表示します。
汎用アーティファクトをダウンロードする
リポジトリから汎用アーティファクトをダウンロードするには、次のコマンドを実行します。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
DESTINATION: ローカル ファイル システムのダウンロード先フォルダのパス。ダウンロード先フォルダはすでに存在している必要があります。存在しない場合、コマンドは失敗します。LOCATION: リポジトリのリージョンまたはマルチリージョンのロケーション。REPOSITORY: アーティファクトが保存されるリポジトリの名前。PACKAGE: ダウンロードするファイルのパッケージ。VERSION: ダウンロードするファイルのバージョン。NAME(省略可): ダウンロードするファイルの名前。このフラグを指定しないと、コマンドは、指定されたパッケージとバージョンのすべてのファイルをダウンロードし、ダウンロード先に必要なディレクトリを作成します。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud artifacts generic download \ --destination=DESTINATION \ --location=LOCATION \ --repository=REPOSITORY \ --package=PACKAGE \ --version=VERSION \ --name=NAME
Windows(PowerShell)
gcloud artifacts generic download ` --destination=DESTINATION ` --location=LOCATION ` --repository=REPOSITORY ` --package=PACKAGE ` --version=VERSION ` --name=NAME
Windows(cmd.exe)
gcloud artifacts generic download ^ --destination=DESTINATION ^ --location=LOCATION ^ --repository=REPOSITORY ^ --package=PACKAGE ^ --version=VERSION ^ --name=NAME
API
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT: Google Cloudプロジェクト ID。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。LOCATION: リポジトリのリージョンまたはマルチリージョンのロケーション。REPOSITORY: アーティファクトが保存されるリポジトリの名前。DESTINATION: ローカル ファイル システム内の移行先フォルダのパス。移行先フォルダがすでに存在している必要があります。そうでない場合、コマンドは失敗します。FILE: URL エンコードされたファイル名。この値を確認するには、gcloud artifacts files listコマンドを実行してFILEの値をコピーします。このコマンドでは URL エンコード形式に変換する必要があります。たとえば、path/to/file.jarはpath%2Fto%2Ffile.jarとして入力する必要があります。
HTTP メソッドと URL:
GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media
リクエストを送信するには、次のいずれかのオプションを展開します。
すぐにダウンロードが開始します。汎用アーティファクトを削除する
リポジトリから汎用アーティファクトを削除するには、gcloud artifacts
files delete コマンドを実行します。このコマンドは、汎用形式のリポジトリでのみ使用できます。
後述のコマンドデータを使用する前に、次のように置き換えます。
FILE: 完全なファイル名。この値を確認するには、gcloud artifacts files listコマンドを実行してFILEの値をコピーします。LOCATION: リポジトリのリージョンまたはマルチリージョンのロケーション。REPOSITORY: アーティファクトが保存されるリポジトリの名前。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud artifacts files delete \ FILE \ --location=LOCATION \ --repository=REPOSITORY
Windows(PowerShell)
gcloud artifacts files delete ` FILE ` --location=LOCATION ` --repository=REPOSITORY
Windows(cmd.exe)
gcloud artifacts files delete ^ FILE ^ --location=LOCATION ^ --repository=REPOSITORY