このページでは、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/REPOSTIORY/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