Utilizzare altri formati per gli artefatti

Questa pagina descrive come archiviare gli artefatti immutabili sottoposti al controllo delle versioni che non rispettano alcun formato di pacchetto specifico nei repository con formato generico di Artifact Registry.

Per acquisire familiarità con l'archiviazione di artefatti generici in Artifact Registry, puoi provare la quickstart.

Gli artefatti generici sono file di qualsiasi formato inclusi, a titolo esemplificativo:

  • File compressi, ad esempio file tar e file ZIP
  • File di configurazione, ad esempio file YAML e TOML
  • File di testo e PDF
  • Programmi binari
  • Archivi
  • File multimediali

A differenza di altri formati, gli artefatti archiviati in repository di formati generici non possono essere utilizzati da Docker, gestori di pacchetti o altri client di terze parti.

Prima di iniziare

  1. Crea un repository in formato generico.
  2. Verifica di disporre delle autorizzazioni richieste per il repository.
  3. (Facoltativo) Configura i valori predefiniti per i comandi di Google Cloud CLI.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire artefatti generici, chiedi all'amministratore di concederti i seguenti ruoli IAM nel repository:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Carica artefatti generici

Puoi caricare artefatti generici individualmente per file o in più per directory. Durante il caricamento, è necessario specificare un nome del pacchetto e un numero di versione. Puoi anche specificare il percorso nella struttura dei file di destinazione in cui caricarli. Se non viene specificato alcun percorso di destinazione, gli artefatti vengono caricati a livello principale per impostazione predefinita.

Per caricare artefatti generici nel tuo repository, esegui questo comando:

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT: il tuo ID progetto Google Cloud. Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito di dominio
  • LOCATION: la località a livello di una o più regioni del repository.
  • REPOSITORY: il nome del repository in cui è archiviato l'artefatto.
  • SOURCE: la posizione e il nome del file che stai caricando.
  • PACKAGE: il nome del pacchetto del file che stai caricando.
  • VERSION: la versione del file che stai caricando.
  • Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud artifacts generic upload \
        --projectPROJECT \
        --source=SOURCE \
        --package=PACKAGE \
        --version=VERSION \
        --location=LOCATION \
        --repository=REPOSITORY
    

    Windows (PowerShell)

    gcloud artifacts generic upload `
        --projectPROJECT `
        --source=SOURCE `
        --package=PACKAGE `
        --version=VERSION `
        --location=LOCATION `
        --repository=REPOSITORY
    

    Windows (cmd.exe)

    gcloud artifacts generic upload ^
        --projectPROJECT ^
        --source=SOURCE ^
        --package=PACKAGE ^
        --version=VERSION ^
        --location=LOCATION ^
        --repository=REPOSITORY
    
    Per il caricamento degli artefatti puoi utilizzare altri flag:
    • --destination-path=PATH per eseguire il caricamento in una cartella specificata all'interno del pacchetto e della versione. Inoltre, creerà cartelle che non esistono.
    • --source-directory=SOURCE_DIR per sostituire il flag --source e caricare una directory anziché un singolo file.
    • --skip-existing quando utilizzi il flag --source-directory per saltare i file già esistenti. In caso contrario, il comando avrà esito negativo quando tenti di caricare un file già esistente.

    API

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT è il tuo ID progetto Google Cloud. Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito di dominio
    • LOCATION è la località a livello di una o più regioni del repository.
    • REPOSITORY è il nome del repository in cui è archiviato l'artefatto.
    • SOURCE è la posizione e il nome del file che stai caricando.
    • PACKAGE è il nome del pacchetto del file che stai caricando.
    • VERSION è la versione del file che stai caricando.
    • NAME è il nuovo nome del file nel repository.

    Metodo HTTP e URL:

      POST https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
    

    curl (Linux, macOS o Cloud Shell)

    Per inviare la richiesta, esegui questo comando:

      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
    

    Elenca artefatti

    Puoi elencare gli artefatti in un repository con il comando gcloud artifacts files list.

    Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

    • PROJECT: il tuo ID progetto Google Cloud. Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito di dominio
    • LOCATION: la località a livello di una o più regioni del repository.
    • REPOSITORY: il nome del repository in cui è archiviato l'artefatto.

    Esegui questo comando:

    Linux, macOS o 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
    
    La risposta include i dettagli del file nel formato 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
    

    Puoi anche ordinare per versione e pacchetto aggiungendo uno o entrambi i flag seguenti:

    • --package=PACKAGE per mostrare solo i file di un pacchetto specifico.
    • --version=VERSION per mostrare solo i file di una versione specifica.

    Scarica artefatti generici

    Per scaricare artefatti generici dal tuo repository, esegui questo comando:

    gcloud

    Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

    • DESTINATION: il percorso della cartella di destinazione nel file system locale. La cartella di destinazione deve già esistere, altrimenti il comando avrà esito negativo.
    • LOCATION: la località a livello di una o più regioni del repository.
    • REPOSITORY: il nome del repository in cui è archiviato l'artefatto.
    • PACKAGE: il pacchetto del file da scaricare.
    • VERSION: la versione del file da scaricare.
    • NAME (facoltativo). Il nome del file da scaricare. Senza questo flag, il comando scaricherà tutti i file per la versione e il pacchetto specificati, oltre a creare le directory necessarie nella destinazione.

    Esegui questo comando:

    Linux, macOS o 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

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT: il tuo ID progetto Google Cloud. Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito di dominio.
    • LOCATION: la località a livello di una o più regioni del repository.
    • REPOSITORY: il nome del repository in cui è archiviato l'artefatto.
    • DESTINATION: il percorso della cartella di destinazione nel file system locale. La cartella di destinazione deve già esistere, altrimenti il comando avrà esito negativo.
    • FILE: il nome del file con codifica URL. Puoi trovare questo valore eseguendo il comando gcloud artifacts files list e copiando il valore per FILE. Deve essere convertito nel formato con codifica URL per questo comando, ad esempio path/to/file.jar deve essere inserito come path%2Fto%2Ffile.jar.

    Metodo HTTP e URL:

    GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media

    Per inviare la richiesta, espandi una di queste opzioni:

    Il download dovrebbe iniziare immediatamente.

    Elimina artefatti generici

    Per eliminare artefatti generici dal repository, esegui il comando gcloud artifacts files delete. Questo comando è disponibile solo per i repository con formato generico.

    Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

    • FILE: il nome completo del file. Puoi trovare questo valore eseguendo il comando gcloud artifacts files list e copiando il valore per FILE.
    • LOCATION: la località a livello di una o più regioni del repository.
    • REPOSITORY: il nome del repository in cui è archiviato l'artefatto.

    Esegui questo comando:

    Linux, macOS o 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
    

    Passaggi successivi