In questa pagina vengono descritte le seguenti attività:
- Visualizzazione ed eliminazione di pacchetti e versioni dei pacchetti
- Visualizzazione, creazione, aggiornamento ed eliminazione di tag
Prima di iniziare
- Se il repository di destinazione non esiste, per creare un nuovo repository.
- Verifica di disporre delle autorizzazioni necessarie per il repository.
- Configura l'autenticazione per npm.
- (Facoltativo) Configura i valori predefiniti per i comandi gcloud.
- Se utilizzi l'helper credenziali npm per l'autenticazione, ottieni un token di accesso prima di connetterti in un repository con npm.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i pacchetti, chiedi all'amministratore di concederti seguenti ruoli IAM sul repository:
-
Visualizza pacchetti, file al loro interno e tag:
Lettore Artifact Registry (
roles/artifactregistry.reader
) -
Scarica o installa i pacchetti:
Lettore Artifact Registry (
roles/artifactregistry.reader
) -
Aggiungi pacchetti a un repository:
Writer Artifact Registry (
roles/artifactregistry.writer
) -
Elimina i pacchetti:
Amministratore repository Artifact Registry (
roles/artifactregistry.repoAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
Ottenere un token di accesso
I token di accesso sono validi per 60 minuti. Genera un token di accesso a breve prima di eseguire comandi che interagiscono con i repository.
Per ottenere un token, utilizza una delle seguenti opzioni:
Usa il comando
npx
per aggiornare il token di accesso.Assicurati che le credenziali per la connessione al registro npm pubblico sono presenti nel file di configurazione npm degli utenti,
~/.npmrc
.Esegui il comando seguente nella directory del progetto Node.js.
npx google-artifactregistry-auth
Se il repository Artifact Registry è impostato come registro globale e dei pacchetti non è limitato, usa il comando seguente in modo che comando può scaricare l'helper delle credenziali dal registro npm pubblico anziché il repository Artifact Registry.
npm_config_registry=https://registry.npmjs.org npx google-artifactregistry-auth
Aggiungi uno script al file
package.json
del tuo progetto."scripts": { "artifactregistry-login": "npx google-artifactregistry-auth" }
Esegui lo script nella directory del progetto Node.js.
npm run artifactregistry-login
Artifact Registry legge le impostazioni del repository Artifact Registry
progetto .npmrc
e le utilizza per aggiungere credenziali del token all'utente
.npmrc
. L'archiviazione del token nel file .npmrc
dell'utente isola
le credenziali del codice sorgente
e dal sistema di controllo del codice sorgente.
Aggiunta di pacchetti
Modalità repository: standard
Puoi pubblicare una versione specifica di un pacchetto soltanto una volta. Questa è una restrizione npm per assicurare che i contenuti di una versione pubblicata del pacchetto siano sempre gli stessi. Di conseguenza, non puoi:
- Sovrascrivi la versione di un pacchetto pubblicandola di nuovo nel repository
- Rimuovi un pacchetto o la relativa versione dal repository, quindi pubblica un pacchetto con lo stesso nome e numero di versione
Se non specifichi un tag quando pubblichi un pacchetto, npm aggiunge il tag latest
.
Per semplificare l'installazione dei pacchetti in una fase di sviluppo specifica,
Valuta la possibilità di pubblicare i pacchetti con un tag, ad esempio beta
o dev
.
Artifact Registry applica nomi di pacchetti alfanumerici minuscoli per npm .
Per aggiungere un pacchetto:
Assicurati che il nome del pacchetto in
package.json
includa il parametro scope configurato per il repository. Nell'esempio che segue mostra un pacchetto con l'ambitodev-repo
."name": "@dev-repo/my-package"
Se utilizzi l'helper credenziali per l'autenticazione con un token di accesso, ottieni un nuovo token.
Aggiungi pacchetti al repository. Puoi utilizzare un comando
npm
oyarn
.Per taggare il pacchetto, includi il flag
--tag
e sostituisci TAG con il tag che vuoi utilizzare. Se non includi il flag--tag
, npm imposta automaticamente il tag sulatest
.npm publish --tag=TAG
yarn publish --tag TAG
Visualizzazione di pacchetti e versioni
Modalità repository: standard, remota, virtuale
Per ricevere informazioni su un pacco con npm
o yarn
:
Se utilizzi l'helper credenziali per l'autenticazione con un token di accesso, ottieni un nuovo token.
Esegui il comando appropriato:
npm view
yarn info
Visualizzazione di pacchetti e versioni dei pacchetti utilizzando la console Google Cloud
o gcloud
:
Console
Apri la pagina Repository nella console Google Cloud.
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti presenti nel repository.
Fai clic su un pacchetto per visualizzare le sue versioni.
gcloud
Per elencare i pacchetti contenuti in un repository, esegui questo comando:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Dove
- REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è un una o più regioni località. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se configurato una località predefinita, puoi omettere questo flag per utilizzare per impostazione predefinita.
Per visualizzare le versioni di un pacchetto, esegui il comando seguente:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Dove
- PACKAGE è l'ID del pacchetto o dell'identificatore completo per il pacchetto.
- REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è un una o più regioni località. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una posizione predefinita, puoi omettere questo flag per utilizzare la posizione predefinita.
Visualizzazione di pacchetti e versioni dalla console Google Cloud oppure gcloud CLI è disponibile solo per i repository standard e remoti.
Per i repository remoti, l'elenco restituito deve includere tutti i repository diretti e e le dipendenze transitive, memorizzate nella cache nel repository.
Elenco dei file
Modalità repository: standard, remota
Puoi elencare i file di un repository, i file in tutte le versioni di un un pacchetto o file in una versione specifica di un pacchetto.
Per tutti i comandi seguenti, puoi impostare un numero massimo di file da restituire
aggiungendo il flag --limit
al comando.
Per elencare tutti i file nel progetto, nel repository e posizione quando sono configurati i valori predefiniti:
gcloud artifacts files list
Per elencare i file in un progetto, un repository e una posizione specifici, esegui il comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Per elencare i file per tutte le versioni di un pacchetto specifico:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Per elencare i file per una specifica versione del pacchetto:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Per elencare i file per un tag specifico:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--tag=TAG
Sostituisci i seguenti valori:
LOCATION
: il valore una o più regioni località del repository.PROJECT
: il tuo account Google Cloud ID progetto. Se l'ID progetto contiene i due punti (":"), vedi Progetti con ambito dominio.REPOSITORY
: il nome del repository in cui è stata creata l'immagine viene archiviato.PACKAGE
: il nome del pacchetto.VERSION
: la versione del pacchetto.TAG
: il tag associato al pacchetto.
Esempi
Considera le seguenti informazioni sul pacchetto:
- Progetto:
my-project
- Repository:
my-repo
- Località del repository:
us-west1
- Pacco:
my-app
Il comando seguente elenca tutti i file del repository my-repo
nella
località us-west1
all'interno del progetto predefinito:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
Il seguente comando elenca i file nella versione 1.0
del pacchetto.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Il comando seguente elenca i file presenti nella versione del pacchetto con il
tag 1.0-dev
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--tag=1.0-dev
Tagging dei pacchetti
Modalità repository: standard
Puoi visualizzare, aggiungere, aggiornare ed eliminare i tag. I tag possono aiutarti a gestire le versioni semantiche dei pacchetti e semplificare l'installazione dei pacchetti in una fase specifica di sviluppo.
Ad esempio, puoi taggare la build candidata alla release attuale con rc
. Il tuo team potrà quindi installare la versione corretta in base al tag anziché a un specificatore di versione e la mancata pubblicazione delle versioni pre-release inutilizzate non interromperà le dipendenze dal pacchetto release candidate.
Visualizzazione dei tag
Per visualizzare i tag per un pacchetto:
Console
Apri la pagina Repository nella console Google Cloud.
Fai clic sul pacchetto per visualizzare le versioni e i tag associati.
Seleziona la versione del pacchetto da taggare.
Nella riga della versione selezionata, fai clic su Altre azioni (), e poi fai clic su Modifica tag.
Digita nuovi tag nel campo e fai clic su SALVA.
gcloud
Esegui il comando:
gcloud artifacts tags list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Dove
- PACKAGE è il nome del pacchetto nel repository.
- REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una posizione predefinita, puoi omettere questo flag per utilizzare la posizione predefinita.
Ad esempio, per visualizzare i tag per il pacchetto my-package
nel repositorymy-repo
nella posizione predefinita, esegui il comando:
gcloud artifacts tags list --package=my-pkg --repository=my-repo
Creazione di tag
Puoi creare un tag per una versione specifica di un pacchetto.
Per taggare un'immagine esistente in un repository:
Console
Apri la pagina Repository nella console Google Cloud.
Fai clic sul pacchetto per visualizzare le relative versioni.
Seleziona la versione del pacchetto da taggare.
Nella riga della versione selezionata, fai clic su Altre azioni () e poi su Modifica tag.
Digita i nuovi tag nel campo e poi fai clic su SALVA.
gcloud
Esegui questo comando:
gcloud artifacts tags create TAG --package=PACKAGE \
version=VERSION [--location=LOCATION] [--repository=REPOSITORY]
Dove
- TAG è il tag da applicare al pacchetto.
- PACKAGE è il nome del pacchetto nel repository.
- VERSION è la versione del pacchetto che vuoi taggare.
- LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se configurato una località predefinita, puoi omettere questo flag per utilizzare per impostazione predefinita.
- REPOSITORY è il nome del repository. Se hai configurato default, puoi omettere questo flag per utilizzare quello predefinito.
Ad esempio, per creare il tag release-candidate
per la versione 1.0.0
del pacchetto
my-package
nel repository my-repo
nella località predefinita, esegui
:
gcloud artifacts tags create release-candidate --version=1.0.0 \
--package=my-pkg --repository=my-repo
Aggiornamento dei tag
Puoi modificare un tag associato a una versione del pacchetto.
Per modificare un tag esistente:
Console
Apri la pagina Repository nella console Google Cloud.
Fai clic sul pacchetto per visualizzarne le versioni.
Seleziona la versione del pacchetto con il tag da modificare.
Nella riga della versione selezionata, fai clic su Altre azioni (), e poi fai clic su Modifica tag.
Modifica il tag e fai clic su SALVA.
gcloud
Esegui questo comando:
gcloud artifacts tags update TAG --package=PACKAGE \
version=VERSION [--location=LOCATION] [--repository=REPOSITORY]
Dove
- TAG è il tag da applicare al pacchetto.
- PACKAGE è il nome del pacchetto nel repository.
- VERSION è la versione del pacchetto che vuoi taggare.
- LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una posizione predefinita, puoi omettere questo flag per utilizzare la posizione predefinita.
- REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
Ad esempio, per modificare il tag della versione 1.0.0
del pacchetto
my-package
in production
nel repository my-repo
nella posizione predefinita, esegui il comando:
gcloud artifacts tags update production --version=1.0.0 \
--package=my-pkg --repository=my-repo
Annullamento del tagging delle versioni del pacchetto
Puoi rimuovere un tag esistente da una versione del pacchetto.
Per rimuovere un tag:
Console
Apri la pagina Repository nella console Google Cloud.
Fai clic sull'immagine per visualizzarne le versioni.
Seleziona la versione dell'immagine da rimuovere dal tag.
Nella riga della versione selezionata, fai clic su Altre azioni (), e poi fai clic su Modifica tag.
Elimina il tag e fai clic su SALVA.
gcloud
Esegui questo comando:
gcloud artifacts tags delete TAG --package=PACKAGE \
[--location=<LOCATION] [--repository=REPOSITORY]
Dove
- TAG è il tag da applicare al pacchetto.
- PACKAGE è il nome del pacchetto nel repository.
- LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una posizione predefinita, puoi omettere questo flag per utilizzare la posizione predefinita.
- REPOSITORY è il nome del repository. Se hai configurato default, puoi omettere questo flag per utilizzare quello predefinito.
Ad esempio, per rimuovere il tag release-candidate
dal pacchetto
my-package
nel repository my-repo
nel valore predefinito
posizione, esegui il comando:
gcloud artifacts tags delete release-candidate --package=my-pkg \
--repository=my-repo
Installazione dei pacchetti
Modalità repository: standard, remota, virtuale
Per installare un pacchetto dal repository di pacchetti Node.js:
Se utilizzi l'helper credenziali per l'autenticazione con un token di accesso, ottieni un nuovo token.
Usa il comando
npm install
oyarn add
.npm
Per installare la versione con il tag
latest
:npm install @SCOPE/PACKAGE
Per installare una versione con un tag diverso:
npm install @SCOPE/PACKAGE@TAG
Per installare una versione specifica:
npm install @SCOPE/PACKAGE@VERSION
filo
Per installare la versione con il tag
latest
:yarn add @SCOPE/PACKAGE
Per installare una versione con un tag diverso:
yarn add @SCOPE/PACKAGE@TAG
Per installare una versione specifica:
yarn add @SCOPE/PACKAGE@VERSION
Sostituisci i seguenti valori:
- SCOPE è l'ambito associato al repository. Se le tue
Il repository di pacchetti Node.js non è configurato con un ambito, ometti
@SCOPE/
dal comando. - PACKAGE è il nome del pacchetto nel repository.
- TAG è il tag della versione da installare.
- VERSION è il numero di versione che vuoi installare.
- SCOPE è l'ambito associato al repository. Se le tue
Il repository di pacchetti Node.js non è configurato con un ambito, ometti
Quando specifichi un pacchetto come dipendenza in package.json
, assicurati che:
includi l'ambito per il repository. L'esempio seguente mostra
@dev-repo
ambito per un pacchetto denominato my-package
.
"dependencies": {
"@dev-repo/my-package": ">=1.0.0"
}
Per i repository standard, puoi scaricare un pacchetto direttamente dal repository.
Per un repository remoto, devi scaricare una copia memorizzata nella cache del pacchetto e dei relativi delle dipendenze. Se non esiste una copia memorizzata nella cache, il repository remoto viene scaricato il pacchetto dall'origine upstream e lo memorizza nella cache prima di pubblicarlo. Puoi verificare che il repository remoto abbia recuperato i pacchetti dalla l'origine upstream visualizzando l'elenco di pacchetti nel repository.
Per un repository virtuale, Artifact Registry cerca nei repository upstream per il pacchetto richiesto.
- I repository remoti a monte scaricheranno e memorizzano nella cache il pacchetto richiesto se non esiste una copia memorizzata nella cache. I repository virtuali gestiscono solo le richieste pacchetti, non li archiviano.
- Se richiedi una versione che è disponibile in più di un upstream repository, Artifact Registry sceglie un repository upstream da utilizzare in base alle impostazioni di priorità configurate per il repository virtuale.
Ad esempio, considera un repository virtuale con le seguenti impostazioni di priorità per i repository upstream:
main-repo
: priorità impostata su100
secondary-repo1
: priorità impostata su80
.secondary-repo2
: priorità impostata su80
.test-repo
: priorità impostata su20
.
main-repo
ha il valore di priorità più alto, quindi il repository virtuale
lo cerca sempre per primo.
Sia secondary-repo1
che secondary-repo2
hanno la priorità impostata su 80
. Se
il pacchetto richiesto non è disponibile in main-repo
, Artifact Registry
a cercare successivamente questi repository. Poiché entrambi hanno lo stesso valore di priorità,
Artifact Registry può scegliere di gestire un pacchetto da entrambi i repository
se la versione è disponibile in entrambi.
test-repo
ha il valore di priorità più basso e pubblicherà un artefatto archiviato se
ma nessuno degli altri repository upstream lo contiene.
Eliminazione dei pacchetti
Modalità repository: standard, remota
Puoi eliminare un pacchetto e tutte le sue versioni oppure eliminare una versione specifica.
- L'operazione non può essere annullata dopo l'eliminazione del pacchetto.
- Per i repository remoti, viene eliminata solo la copia memorizzata nella cache del pacchetto. La l'origine upstream non è interessata. Se elimini un pacchetto memorizzato nella cache, Artifact Registry lo scaricherà e memorizzerà nella cache la prossima volta il repository riceve una richiesta per la stessa versione del pacchetto.
Dopo la pubblicazione di una versione del pacchetto, non puoi ripubblicare un pacchetto con la stessa combinazione di nome e versione, anche dopo aver eliminato la versione. Si tratta di un restrizione npm per garantire che i contenuti di una versione di pacchetto pubblicato siano sempre gli stessi.
Se vuoi incoraggiare gli utenti a installare una versione aggiornata del pacchetto, utilizza npm deprecate per contrassegnare precedente del pacchetto come deprecata. Quando un utente tenta di installare pacchetto deprecato, Artifact Registry restituisce un avviso di deprecazione.
Prima di eliminare un pacchetto o una versione del pacchetto, verifica di avere che abbia comunicato o gestito eventuali dipendenze importanti.
Per eliminare un pacchetto:
Console
Apri la pagina Repositories (Repositoi) nella console Google Cloud.
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti presenti nel repository.
Seleziona il pacchetto da eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Dove
- PACKAGE è il nome del pacchetto nel repository.
- REPOSITORY è il nome del repository. Se hai configurato default, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è un una o più regioni località. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se configurato una località predefinita, puoi omettere questo flag per utilizzare per impostazione predefinita.
--async
Torna immediatamente, senza attendere che l'operazione in corso venga completato.
Per eliminare versioni di un pacchetto:
Console
Apri la pagina Repositories (Repositoi) nella console Google Cloud.
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti presenti nel repository.
Fai clic su un pacchetto per visualizzare le relative versioni.
Seleziona le versioni da eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Dove
- PACKAGE è il nome del pacchetto nel repository.
- REPOSITORY è il nome del repository. Se hai configurato default, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è un una o più regioni località. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una posizione predefinita, puoi omettere questo flag per utilizzare la posizione predefinita.
--async
ritorna immediatamente, senza attendere che l'operazione in corso venga completato.
Passaggi successivi
- Scopri di più sulla gestione dei pacchetti Maven
- Scopri di più sulla gestione delle immagini container
- Download di singoli file all'interno di un pacchetto