Concepts relatifs à Artifact Registry
Consultez les concepts et termes relatifs à Artifact Registry.
Un artefact est un package logiciel, une bibliothèque, un fichier ZIP ou tout autre type de fichier utilisé pour le déploiement d'applications. Par exemple, des bibliothèques Python ou Maven. Les artefacts sont regroupés dans des référentiels, qui sont des ensembles d'artefacts associés. Par exemple, vous pouvez regrouper plusieurs versions d'un artefact Maven dans un référentiel Maven ou télécharger vos bibliothèques Python vers un référentiel Python.
Noms de référentiel et d'artefact dans Artifact Registry
Lorsque vous créez un référentiel pour regrouper des artefacts similaires, vous lui donnez un nom <nom-référentiel>. Le nom doit commencer par une lettre ou un trait de soulignement, suivi de lettres, de chiffres, de traits d'union ou de traits de soulignement. Il peut comporter entre 1 et 255 caractères. Evitez de saisir des informations confidentielles.
Exemple : web-app-repo
Si vous laissez le champ Nom vide, le système génère automatiquement un nom que vous pourrez modifier ultérieurement. Un nom généré automatiquement respecte le modèle suivant : artifactrepository<horodatage>.
Exemple : artifactrepository20210423180901
Lorsque vous téléchargez un artefact vers un référentiel, vous indiquez un chemin et une version pour celui-ci. En fonction de la valeur saisie, un nom est affecté à l'artefact au format suivant :
<chemin-artefact>:<version>
Exemple : project01/my-web-app/artifact-abc:1.0.0
- Le chemin d'artefact <artifact-path> est un chemin défini par l'utilisateur qui décrit l'emplacement de l'artefact dans le référentiel. Les barres obliques ne créent pas de structure de répertoires, mais vous pouvez utiliser des barres obliques pour organiser le référentiel.
Exemple : project01/my-web-app/artifact-abc
- La version <version> est la version de l'artefact. En raison des mises à jour incrémentielles des artefacts, vous pouvez affecter des versions aux artefacts. Ainsi, vous pouvez associer des builds aux versions d'artefact et revenir aux versions précédentes.
Exemples : 1.1.0 ou 1.2-beta-2
Un nom d'artefact est tronqué à une longueur maximale de 255 caractères.
Artefacts immuables dans Artifact Registry
Lorsque vous créez un référentiel, vous pouvez le définir comme non mutable, ce qui signifie que les artefacts téléchargés vers celui-ci deviennent non mutables. Ces artefacts sont utilisés tels quels et ne peuvent pas être remplacés. Les référentiels non mutables garantissent l'intégrité des artefacts. Voici quelques cas d'emploi courants pour les artefacts non mutables :
- Annulation (rollback) d'un déploiement : pour une annulation (rollback), vous devez utiliser les fichiers exacts de la version de travail précédente d'un déploiement. Les artefacts non mutables garantissent que personne n'a modifié la dernière version de travail après leur téléchargement vers le référentiel.
- Code de contribution : dans un projet de déploiement, pour garantir que la modification du code par un développeur n'affecte pas les autres, la meilleure pratique consiste à rendre tous les artefacts non mutables. Par exemple, si vous avez une image de lapin dans website-image.png, personne ne peut l'écraser avec une image de renard. Le remplacement d'une image ne casse pas le code, mais modifie le résultat. Au lieu de remplacer un artefact non mutable, vous devez télécharger un nouvel artefact.
La suppression d'un artefact, puis l'utilisation du même nom d'artefact pour télécharger un nouvel artefact sont identiques à l'écrasement du contenu de cet artefact.
Un artefact non mutable peut être supprimé mais ne peut pas être remplacé. Si vous supprimez un artefact non mutable, vous ne pouvez pas affecter son nom à un autre artefact. Par conséquent, vous ne pouvez pas télécharger un nouvel artefact et lui affecter le chemin et la version de l'artefact supprimé. Toutefois, vous pouvez lui attribuer le même chemin avec une nouvelle version.
Si un référentiel n'est pas immuable, les artefacts qu'il contient peuvent être écrasés. Par exemple, vous pouvez utiliser des clichés mutables de référentiels non mutables pour effectuer des tests.
Etats des artefacts dans Artifact Registry
Vous pouvez filtrer les artefacts d'un référentiel par leur état. Les états possibles sont les suivants :
AVAILABLE
DELETED
Par exemple, avant de nommer un artefact, vous pouvez filtrer les artefacts à l'aide d'un état DELETED
. Ainsi, vous pouvez vous assurer que lorsque vous téléchargez un nouvel artefact, vous n'utilisez pas le nom d'un artefact supprimé.
Lorsque vous téléchargez un artefact vers un référentiel, Artifact Registry calcule son condensé SHA256 et l'ajoute à ses propriétés. Le condensé SHA256 est un algorithme de hachage sécurisé 256 bits.
Identification des artefacts avec un hachage sécurisé dans Artifact Registry
Lorsque vous annulez (rollback) ou utilisez un artefact dans votre code, comparez son condensé SHA256 au condensé SHA256 de l'artefact dans le référentiel. Si les artefacts ont des condensés SHA256 différents, leur contenu est différent.