Concetti del registro artifact

Rivedere i concetti e i termini correlati al registro artifact.

Un artifact è un pacchetto software, una libreria, un file zip o qualsiasi altro tipo di file utilizzato per la distribuzione delle applicazioni. Esempi sono le librerie Python o Maven. Gli artifact vengono raggruppati in repositori, ovvero raccolte di artifact correlati. Ad esempio, è possibile raggruppare diverse versioni di un artifact Maven in un repository Maven oppure caricare le librerie Python in un repository Python.

Nomi di repository e artifact nel registro artifact

Quando si crea un repository in cui raggruppare artifact simili, viene assegnato il nome repository <repo-name>. Il nome deve iniziare con una lettera o un carattere di sottolineatura, seguito da lettere, numeri, trattini o caratteri di sottolineatura. La lunghezza può essere di 1-255 caratteri. Evitare di fornire informazioni riservate.

Esempio: web-app-repo

Se si lascia vuoto il nome, il sistema genera automaticamente un nome che è possibile modificare in seguito. Un nome generato automaticamente ha il seguente pattern: artifactrepository<timestamp>

Esempio: artifactrepository20210423180901

Quando si carica un artifact in un repository, è necessario specificarne il percorso e la versione. In base all'input, all'artifact viene assegnato un nome artifact nel seguente formato:

<percorso-artifact>:<version>

Esempio: project01/my-web-app/artifact-abc:1.0.0

  • Il percorso artifact <artifact-path> è un percorso definito dall'utente che descrive la posizione dell'artifact nel repository. Le barre non creano una struttura di directory, ma è possibile utilizzare le barre per organizzare il repository.

    Esempio: project01/my-web-app/artifact-abc

  • La versione <version> è la versione dell'artifact. A causa degli aggiornamenti incrementali agli artifact, è possibile assegnare versioni agli artifact. In questo modo, è possibile associare le build alle versioni dell'artifact ed eseguire il rollback alle versioni precedenti.

    Esempi: 1.1.0 o 1.2-beta-2

Un nome artifact viene troncato a una lunghezza massima di 255.

Artifact immutabili nel registro artifact

Quando si crea un repository, è possibile designarlo come immutabile, il che significa che gli artifact caricati in esso diventano immutabili. Questi artifact vengono utilizzati così com'è e non possono essere sostituiti. I repository immutabili garantiscono l'integrità degli artifact. Di seguito sono riportati alcuni casi d'uso comuni per gli artifact immutabili.

  • Rollback di una distribuzione: per un rollback, utilizzare i file esatti della versione di lavoro precedente di una distribuzione. Gli artifact immutabili garantiscono che nessuno abbia modificato l'ultima versione di lavoro dopo il caricamento degli artifact nel repository.
  • Codice di contribuzione: in un progetto di distribuzione, per garantire che la modifica del codice di uno sviluppatore non influisca sugli altri, è consigliabile rendere immutabili tutti gli artifact. Ad esempio, se si dispone dell'immagine di un coniglio nel sito Web image.png, nessuno può sovrascriverla con l'immagine di una volpe. La sostituzione di un'immagine non interrompe il codice, ma ne modifica il risultato. Anziché sostituire un artifact immutabile, è possibile caricare un nuovo artifact.
Importante

L'eliminazione di un artifact e quindi l'utilizzo dello stesso nome artifact per caricare un nuovo artifact è uguale alla sovrascrittura del contenuto di tale artifact.

Un artifact non modificabile può essere eliminato ma non può essere sostituito. Se si elimina un artifact non modificabile, non è possibile assegnarne il nome a un altro artifact. Pertanto, non è possibile caricare un nuovo artifact e assegnargli il percorso e la versione dell'artifact eliminato. Tuttavia, puoi dare lo stesso percorso con una nuova versione.

Se un repository non è modificabile, è possibile sovrascrivere gli artifact in esso contenuti. Ad esempio, è possibile utilizzare snapshot mutabili di repository immutabili per il test.

Stati artifact in Registro artifact

È possibile filtrare gli artifact in un repository per il relativo stato. Gli stati possibili sono:

  • AVAILABLE
  • DELETED

Ad esempio, prima di assegnare un nome a un artifact, è possibile filtrare gli artifact con uno stato DELETED. In questo modo, è possibile assicurarsi di non utilizzare il nome di un artifact eliminato quando si carica un nuovo artifact.

Quando si carica un artifact in un repository, Registro artifact calcola il SHA256 digest per l'artifact e lo aggiunge alle proprietà dell'artifact. Il digest SHA256 è un algoritmo hash sicuro a 256 bit.

Identificazione degli artifact con hash sicuro in Artifact Registry

Quando si esegue il rollback o si utilizza un artifact nel codice, confrontare il relativo digest SHA256 con il digest SHA256 dell'artifact nel repository. Se gli artifact hanno digest SHA256 diversi, il loro contenuto è diverso.