他のアーティファクト形式を操作する

このページでは、Artifact Registry の汎用形式のリポジトリに、特定のパッケージ形式に準拠していないバージョニングされた不変のアーティファクトを保存する方法について説明します。

汎用アーティファクトの Artifact Registry への保存に慣れるには、クイックスタートをお試しください。

汎用アーティファクトは、次のような任意の形式のファイルです(ただし、これらに限定されません)。

  • 圧縮ファイル(tar ファイルや zip ファイルなど)
  • 構成ファイル(YAML ファイルや TOML ファイルなど)
  • テキスト ファイルと PDF
  • バイナリ
  • アーカイブ
  • メディア ファイル

他の形式とは異なり、汎用形式のリポジトリに保存されているアーティファクトは、Docker、パッケージ管理システム、その他のサードパーティのクライアントで使用されるものではありません。

始める前に

  1. 汎用形式のリポジトリを作成します
  2. リポジトリに必要な権限が付与されていることを確認します。
  3. (省略可)Google Cloud CLI コマンドのデフォルトを構成します。

必要なロール

汎用アーティファクトの管理に必要な権限を取得するには、リポジトリに対する次の IAM ロールの付与を管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

汎用アーティファクトをアップロードする

汎用アーティファクトは、ファイル単位で個別にアップロードすることも、ディレクトリ単位で複数アップロードすることもできます。アップロード時には、パッケージ名とバージョン番号を指定する必要があります。アップロード先のファイル構造のパスを指定することもできます。アップロード先のパスが指定されていない場合、アーティファクトはデフォルトでルートレベルにアップロードされます。

汎用アーティファクトをリポジトリにアップロードするには、次のコマンドを実行します。

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 コンソールで表示できます。

    1. Google Cloud コンソールで [リポジトリ] ページを開きます。

      [リポジトリ] ページを開く

    2. リポジトリ リストで、リポジトリを選択します。

    3. パッケージの名前をクリックします。

    4. すべてのパッケージ バージョンのダウンロード可能なファイルを表示するには、[ファイル] タブをクリックします。

    5. 特定のバージョンのパッケージのダウンロード可能なファイルを表示するには、バージョン名をクリックしてから [ファイル] タブをクリックします。

    gcloud

    gcloud artifacts files list コマンドを使用して、リポジトリ内のアーティファクトを一覧表示できます。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    次のコマンドを実行します。

    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
    レスポンスには、ファイルの詳細情報が PACKAGE:VERSION:NAME という形式で含まれます。
    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.jarpath%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

    次のステップ