Artifact Registry - Konzepte
Prüfen Sie Konzepte und Begriffe im Zusammenhang mit Artifact Registry.
Ein Artefakt ist ein Softwarepackage, eine Bibliothek, eine ZIP-Datei oder ein anderer Dateityp, der zum Deployment von Anwendungen verwendet wird. Beispiele sind Python- oder Maven-Bibliotheken. Artefakte werden in Repositorys gruppiert, bei denen es sich um Collections zugehöriger Artefakte handelt. Beispiel: Sie können mehrere Versionen eines Maven-Artefakts in einem Maven-Repository gruppieren oder Ihre Python-Bibliotheken in ein Python-Repository hochladen.
Repository- und Artefaktnamen in Artifact Registry
Wenn Sie ein Repository erstellen, in dem ähnliche Artefakte gruppiert werden sollen, geben Sie ihm einen Repository-Namen <repo-name>. Der Name muss mit einem Buchstaben oder Unterstrich beginnen und darf nur Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten. Die zulässige Länge beträgt 1–255 Zeichen. Geben Sie dabei keine vertraulichen Informationen ein.
Beispiel: web-app-repo
Wenn Sie keinen Namen eingeben, generiert das System automatisch einen Namen, den Sie später ändern können. Ein automatisch generierter Name weist das folgende Muster auf: artifactrepository<timestamp>
Beispiel: artifactrepository20210423180901
Wenn Sie ein Artefakt in ein Repository hochladen, geben Sie dafür einen Pfad und eine Version an. Ausgehend von Ihrer Eingabe wird dem Artefakt ein Artefaktname im folgenden Format zugewiesen:
<artifact-path>:<version>
Beispiel: project01/my-web-app/artifact-abc:1.0.0
- Der artefaktpfad <artefaktpfad> ist ein benutzerdefinierter Pfad, der den Speicherort des Artefakts im Repository beschreibt. Schrägstriche erstellen keine Verzeichnisstruktur, Sie können das Repository jedoch mit Schrägstrichen organisieren.
Beispiel: project01/my-web-app/artifact-abc
- Die Version <version> ist die Artefaktversion. Aufgrund inkrementeller Updates an Artefakten können Sie Artefakten Versionen zuweisen. Auf diese Weise können Sie Builds mit den Artefaktversionen verknüpfen und frühere Versionen wiederherstellen.
Beispiele: 1.1.0 oder 1.2-beta-2
Ein Artefaktname wird auf eine maximale Länge von 255 Zeichen gekürzt.
Unveränderliche Artefakte in Artifact Registry
Wenn Sie ein Repository erstellen, können Sie bestimmen, dass es unveränderbar ist. Das bedeutet, dass die in das Repository hochgeladenen Artefakte unveränderbar werden. Diese Artefakte werden unverändert verwendet und können nicht ersetzt werden. Unveränderbare Repositorys stellen die Integrität der Artefakte sicher. Im Folgenden werden einige gängige Anwendungsfälle für unveränderbare Artefakte aufgeführt:
- Deployment zurücksetzen: Bei einem Rollback verwenden Sie die exakt gleichen Dateien wie in der vorherigen Arbeitsversion eines Deployments. Unveränderbare Artefakte stellen sicher, dass niemand die letzte Arbeitsversion geändert hat, nachdem die Artefakte in das Repository hochgeladen wurden.
- Beitragender Code: In einem Deployment-Projekt wird empfohlen, alle Artefakte unveränderbar zu machen, damit sich die Codeänderung eines Entwicklers nicht auf andere Artefakte auswirkt. Beispiel: Wenn website-image.png das Bild eines Kaninchens enthält, kann niemand es mit dem Bild eines Fuchses überschreiben. Das Ersetzen eines Bildes wirkt sich zwar nicht negativ auf den Code aus, aber das Ergebnis wird geändert. Anstatt ein unveränderbares Artefakt zu ersetzen, laden Sie ein neues Artefakt hoch.
Wenn Sie ein Artefakt löschen und dann den gleichen Artefaktnamen zum Hochladen eines neuen Artefakts verwenden, entspricht dem Überschreiben des Inhalts dieses Artefakts.
Ein unveränderbares Artefakt kann gelöscht, aber nicht ersetzt werden. Wenn Sie ein unveränderbares Artefakt löschen, können Sie seinen Namen keinem anderen Artefakt zuweisen. Daher können Sie kein neues Artefakt hochladen und ihm den Pfad und die Version des gelöschten Artefakts zuweisen. Sie können ihm jedoch denselben Pfad mit einer neuen Version geben.
Wenn ein Repository nicht unveränderbar ist, können die darin enthaltenen Artefakte überschrieben werden. Beispiel: Sie können veränderbare Snapshots von unveränderbaren Repositorys zum Testen verwenden.
Artefaktstatus in Artifact Registry
Sie können die Artefakte in einem Repository nach ihrem Status filtern. Mögliche Statusarten:
AVAILABLE
DELETED
Beispiel: Bevor Sie ein Artefakt benennen, können Sie nach Artefakten mit einem DELETED
-Status filtern. Auf diese Weise können Sie sicherstellen, dass Sie beim Hochladen eines neuen Artefakts nicht den Namen eines gelöschten Artefakts verwenden.
Wenn Sie ein Artefakt in ein Repository hochladen, berechnet Artifact Registry den SHA256-Digest für das Artefakt und fügt ihn den Eigenschaften des Artefakts hinzu. Der SHA256-Digest ist ein sicherer Hashalgorithmus mit 256 Bit.
Artefakte mit sicherem Hash in Artifact Registry identifizieren
Wenn Sie ein Artefakt in Ihrem Code zurücksetzen oder verwenden, vergleichen Sie seinen SHA256-Digest mit dem SHA256-Digest des Artefakts im Repository. Wenn die Artefakte unterschiedliche SHA256-Digests aufweisen, ist ihr Inhalt unterschiedlich.