Auf dieser Seite werden die folgenden Aufgaben beschrieben:
- Pakete und Paketversionen ansehen und löschen
- Tags anzeigen, erstellen, aktualisieren und löschen
Hinweise
- Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository.
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
- Konfigurieren Sie die Authentifizierung für npm.
- (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.
- Wenn Sie das npm-Credential Helper für die Authentifizierung verwenden, rufen Sie ein Zugriffstoken ab, bevor Sie mit npm eine Verbindung zu einem Repository herstellen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Repository zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Paketen benötigen:
-
Pakete, Dateien in Paketen und Tags ansehen:
Artifact Registry-Leser (
roles/artifactregistry.reader) -
Pakete herunterladen oder installieren:
Artifact Registry-Leser (
roles/artifactregistry.reader) -
Pakete einem Repository hinzufügen:
Artifact Registry Writer (
roles/artifactregistry.writer) -
Pakete löschen:
Repository-Administrator für Artifact Registry (
roles/artifactregistry.repoAdmin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Zugriffstoken abrufen
Zugriffstokens sind 60 Minuten lang gültig. Generieren Sie ein Zugriffstoken kurz vor dem Ausführen von Befehlen, die mit Repositories interagieren.
Sie haben folgende Möglichkeiten, ein Token zu erhalten:
Verwenden Sie den Befehl
npx, um das Zugriffstoken zu aktualisieren.Die Anmeldedaten für die Verbindung zur öffentlichen npm-Registry befinden sich in der npm-Konfigurationsdatei des Nutzers
~/.npmrc.Führen Sie den folgenden Befehl in Ihrem Node.js-Projektverzeichnis aus.
npx google-artifactregistry-authWenn Ihr Artifact Registry-Repository als globale Registry festgelegt ist und Ihre Pakete keinen Bereich haben, verwenden Sie stattdessen den folgenden Befehl, damit der Anmeldedaten-Helper aus der öffentlichen npm-Registry anstelle Ihres Artifact Registry-Repositorys heruntergeladen werden kann.
npm_config_registry=https://registry.npmjs.org npx google-artifactregistry-auth
Fügen Sie der Datei
package.jsonin Ihrem Projekt ein Skript hinzu."scripts": { "artifactregistry-login": "npx google-artifactregistry-auth" }Führen Sie das Skript in Ihrem Node.js-Projektverzeichnis aus.
npm run artifactregistry-login
Artifact Registry liest die Einstellungen für Artifact Registry-Repositories in der .npmrc-Datei Ihres Projekts und verwendet sie, um Ihrer Nutzerdatei .npmrc Tokenanmeldedaten hinzuzufügen. Wenn Sie das Token in der Datei .npmrc Ihres Nutzers speichern, werden Ihre Anmeldedaten von Ihrem Quellcode und Ihrem Versionsverwaltungssystem isoliert.
Pakete hinzufügen
Repository-Modi:Standard
Sie können jeweils nur eine bestimmte Version eines Pakets veröffentlichen. Dies ist eine npm-Einschränkung, damit der Inhalt einer veröffentlichten Paketversion immer gleich ist. Folgendes ist dann nicht möglich:
- Überschreiben einer Paketversion durch erneutes Veröffentlichen im Repository.
- Entfernen eines Pakets oder seiner Version aus dem Repository und Veröffentlichen eines Pakets mit demselben Namen und derselben Versionsnummer.
Wenn Sie beim Veröffentlichen eines Pakets kein Tag angeben, fügt npm das latest-Tag hinzu.
Um die Installation Ihrer Pakete in einer bestimmten Entwicklungsphase zu vereinfachen, sollten Sie Ihre Pakete mit einem Tag wie beta oder dev veröffentlichen.
In Artifact Registry müssen Paketnamen für npm-Pakete alphanumerisch und kleingeschrieben sein.
So fügen Sie ein Paket hinzu:
Der Paketname in
package.jsonmuss den für Ihr Repository konfigurierten Bereich enthalten. Das folgende Beispiel zeigt ein Paket mit dem Bereichdev-repo."name": "@dev-repo/my-package"Wenn Sie den Credential Helper verwenden, um sich mit einem Zugriffstoken zu authentifizieren, rufen Sie ein neues Token ab.
Fügen Sie dem Repository Pakete hinzu. Sie können dazu einen
npm- oderyarn-Befehl verwenden.Fügen Sie das Flag
--tagein und ersetzen Sie TAG durch das gewünschte Tag, um das Paket zu taggen. Wenn Sie das Flag--tagnicht angeben, legt npm das Tag automatisch auflatestfest.npm publish --tag=TAGyarn publish --tag TAG
Pakete und Versionen ansehen
Repository-Modi:Standard, Remote, virtuell
So rufen Sie Paketinformationen mit npm oder yarn ab:
Wenn Sie den Credential Helper verwenden, um sich mit einem Zugriffstoken zu authentifizieren, rufen Sie ein neues Token ab.
Führen Sie den entsprechenden Befehl aus:
npm viewyarn info
So rufen Sie die Pakete und Paketversionen mit der Google Cloud Console oder gcloud ab:
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Klicken Sie in der Liste der Repositories auf das entsprechende Repository.
Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.
Klicken Sie auf das Paket, um die Versionen des Pakets aufzurufen.
gcloud
Führen Sie den folgenden Befehl aus, um die Pakete in einem Repository aufzulisten:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Ersetzen Sie Folgendes:
REPOSITORYist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.-
LOCATIONist der regionale oder multiregionale Speicherort des Repositorys. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.
Um die Versionen für ein Paket aufzurufen, führen Sie folgenden Befehl aus:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Ersetzen Sie Folgendes:
PACKAGEist die ID des Pakets oder die vollqualifizierte Kennzeichnung für das Paket.REPOSITORYist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.-
LOCATIONist der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.
Das Aufrufen von Paketen und Versionen über die Google Cloud -Konsole oder die gcloud CLI ist nur für Standard- und Remote-Repositories verfügbar.
Bei Remote-Repositories sollte die zurückgegebene Liste alle direkten und transitiven Abhängigkeiten enthalten, die im Repository zwischengespeichert sind.
Dateien auflisten
Repository-Modi:Standard, Remote
Sie können Dateien in einem Repository, Dateien in allen Versionen eines angegebenen Pakets oder Dateien in einer bestimmten Version eines Pakets auflisten.
Für alle folgenden Befehle können Sie eine maximale Anzahl von zurückzugebenden Dateien festlegen, indem Sie dem Befehl das Flag --limit hinzufügen.
So listen Sie alle Dateien im Standardprojekt, im Standard-Repository und am Standard-Speicherort auf, wenn die Standardwerte konfiguriert sind:
gcloud artifacts files list
Führen Sie den folgenden Befehl aus, um Dateien in einem angegebenen Projekt, Repository und Speicherort aufzulisten:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
So listen Sie Dateien für alle Versionen eines bestimmten Pakets auf:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
So listen Sie Dateien für eine bestimmte Paketversion auf:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--tag=TAG
Ersetzen Sie die folgenden Werte:
LOCATION: der regionale oder multiregionale Speicherort für das Repository.PROJECT: Ihre Google Cloud Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.REPOSITORY: der Name des Repositorys, in dem das Image gespeichert ist.PACKAGE: der Name des Pakets.VERSION: die Version des Pakets.TAG: Das mit dem Paket verknüpfte Tag.
Beispiele
Sehen Sie sich die folgenden Paketinformationen an:
- Projekt:
my-project - Repository:
my-repo - Speicherort des Repositorys:
us-west1 - Paket:
my-app
Mit dem folgenden Befehl werden alle Dateien im Repository my-repo am Speicherort us-west1 im Standardprojekt aufgelistet:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0 des Pakets aufgelistet.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
1.0-dev aufgelistet.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--tag=1.0-dev
Pakete taggen
Repository-Modi:Standard
You can view, add, update, and delete tags. Tags can help you manage semantic versions of your packages and streamline installation of packages at a specific stage of development.
For example, you can tag the current release candidate build with rc. Your
team can then install the correct version based on the tag instead of a
version specifier, and unpublishing unused pre-release versions won't break
your dependencies on the release candidate package.
Viewing tags
To view tags for a package:
Console
Open the Repositories page in the Google Cloud console.
Click the package to view versions and the associated tags.
Select the package version to tag.
In the row of the selected version, click More actions (
),
and then click Edit tags.Type new tags into the field and then click SAVE.
gcloud
Run the command:
gcloud artifacts tags list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Where
- PACKAGE is the name of the package in the repository.
- REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
- LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
For example, to view tags for the package my-package in the repository
my-repo in the default location, run the command:
gcloud artifacts tags list --package=my-pkg --repository=my-repo
Creating tags
You can create a tag for a specific version of a package.
To tag an existing image in a repository:
Console
Open the Repositories page in the Google Cloud console.
Click the package to view versions of the package.
Select the package version to tag.
In the row of the selected version, click More actions (
),
and then click Edit tags.Type new tags into the field and then click SAVE.
gcloud
Run the following command:
gcloud artifacts tags create TAG --package=PACKAGE \
version=VERSION [--location=LOCATION] [--repository=REPOSITORY]
Where
- TAG is the tag you want to apply to the package.
- PACKAGE is the name of the package in the repository.
- VERSION is version of the package that you want to tag.
- LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
- REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
For example, to create the tag release-candidate for version 1.0.0 of package
my-package in the repository my-repo in the default location, run the
command:
gcloud artifacts tags create release-candidate --version=1.0.0 \
--package=my-pkg --repository=my-repo
Updating tags
You can change a tag associated with a package version.
To change an existing tag:
Console
Open the Repositories page in the Google Cloud console.
Click the package to view versions of the package.
Select the package version with the tag to change.
In the row of the selected version, click More actions (
),
and then click Edit tags.Edit the tag and then click SAVE.
gcloud
Run the following command:
gcloud artifacts tags update TAG --package=PACKAGE \
version=VERSION [--location=LOCATION] [--repository=REPOSITORY]
Where
- TAG is the tag you want to apply to the package.
- PACKAGE is the name of the package in the repository.
- VERSION is version of the package that you want to tag.
- LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
- REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
For example, to change the tag for version 1.0.0 of package
my-package to production in the repository my-repo in the default
location, run the command:
gcloud artifacts tags update production --version=1.0.0 \
--package=my-pkg --repository=my-repo
Untagging package versions
You can remove an existing tag from a package version.
To remove a tag:
Console
Open the Repositories page in the Google Cloud console.
Click the image to view versions of the image.
Select the image version to untag.
In the row of the selected version, click More actions (
),
and then click Edit tags.Delete the tag and then click SAVE.
gcloud
Run the following command:
gcloud artifacts tags delete TAG --package=PACKAGE \
[--location=<LOCATION] [--repository=REPOSITORY]
Where
- TAG is the tag you want to apply to the package.
- PACKAGE is the name of the package in the repository.
- LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
- REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
For example, to remove the tag release-candidate from package
my-package in the repository my-repo in the default
location, run the command:
gcloud artifacts tags delete release-candidate --package=my-pkg \
--repository=my-repo
Pakete installieren
Repository-Modi:Standard, Remote, virtuell
So installieren Sie ein Paket aus dem Node.js-Paket-Repository:
Wenn Sie den Credential Helper verwenden, um sich mit einem Zugriffstoken zu authentifizieren, rufen Sie ein neues Token ab.
Verwenden Sie den Befehl
npm installoderyarn add.npm
So installieren Sie die Version mit dem Tag
latest:npm install @SCOPE/PACKAGESo installieren Sie eine Version mit einem anderen Tag:
npm install @SCOPE/PACKAGE@TAGSo installieren Sie eine bestimmte Version:
npm install @SCOPE/PACKAGE@VERSIONyarn
So installieren Sie die Version mit dem Tag
latest:yarn add @SCOPE/PACKAGESo installieren Sie eine Version mit einem anderen Tag:
yarn add @SCOPE/PACKAGE@TAGSo installieren Sie eine bestimmte Version:
yarn add @SCOPE/PACKAGE@VERSIONErsetzen Sie die folgenden Werte:
- SCOPE ist der mit dem Repository verknüpfte Bereich. Wenn Ihr Node.js-Paketrepository nicht mit einem Bereich konfiguriert ist, lassen Sie
@SCOPE/aus dem Befehl weg. - PACKAGE ist der Name des Pakets im Repository.
- TAG ist das Tag für die Version, die Sie installieren möchten.
- VERSION ist die Versionsnummer, die Sie installieren möchten.
- SCOPE ist der mit dem Repository verknüpfte Bereich. Wenn Ihr Node.js-Paketrepository nicht mit einem Bereich konfiguriert ist, lassen Sie
Wenn Sie ein Paket als Abhängigkeit in package.json angeben, muss der Bereich für das Repository enthalten sein. Das folgende Beispiel zeigt den Bereich @dev-repo für ein Paket mit dem Namen my-package.
"dependencies": {
"@dev-repo/my-package": ">=1.0.0"
}
Bei Standard-Repositories laden Sie ein Paket direkt aus dem Repository herunter.
Bei einem Remote-Repository laden Sie eine im Cache gespeicherte Kopie des Pakets und seiner Abhängigkeiten herunter. Wenn keine Kopie im Cache vorhanden ist, lädt das Remote-Repository das Paket von der Upstream-Quelle herunter und speichert es im Cache, bevor es an Sie gesendet wird. Sie können prüfen, ob das Remote-Repository die Pakete aus der Upstream-Quelle abgerufen hat, indem Sie die Liste der Pakete im Repository aufrufen.
Bei einem virtuellen Repository durchsucht Artifact Registry Upstream-Repositories nach dem angeforderten Paket.
- Upstream-Remote-Repositories laden das angeforderte Paket herunter und speichern es im Cache, wenn keine im Cache gespeicherte Kopie vorhanden ist. Virtuelle Repositories stellen nur angeforderte Pakete bereit, sie speichern sie nicht.
- Wenn Sie eine Version anfordern, die in mehreren Upstream-Repositories verfügbar ist, wählt Artifact Registry ein Upstream-Repository basierend auf den für das virtuelle Repository konfigurierten Prioritätseinstellungen aus.
Angenommen, Sie haben ein virtuelles Repository mit den folgenden Prioritätseinstellungen für Upstream-Repositories:
main-repo: Priorität auf100festgelegtsecondary-repo1: Die Priorität ist auf80festgelegt.secondary-repo2: Die Priorität ist auf80festgelegt.test-repo: Die Priorität ist auf20festgelegt.
main-repo hat den höchsten Prioritätswert, daher wird immer zuerst in diesem virtuellen Repository gesucht.
Sowohl für secondary-repo1 als auch für secondary-repo2 ist die Priorität auf 80 festgelegt. Wenn ein angefordertes Paket nicht in main-repo verfügbar ist, durchsucht Artifact Registry als Nächstes diese Repositories. Da beide denselben Prioritätswert haben, kann Artifact Registry ein Paket aus einem der beiden Repositorys bereitstellen, wenn die Version in beiden verfügbar ist.
test-repo hat den niedrigsten Prioritätswert und es wird ein gespeichertes Artefakt bereitgestellt, wenn es in keinem der anderen Upstream-Repositories vorhanden ist.
Pakete löschen
Repository-Modi:Standard, Remote
Sie können ein Paket und alle seine Versionen oder eine bestimmte Version löschen.
- Das Löschen eines Pakets kann nicht rückgängig gemacht werden.
- Bei Remote-Repositories wird nur die im Cache gespeicherte Kopie des Pakets gelöscht. Die Upstream-Quelle ist nicht betroffen. Wenn Sie ein im Cache gespeichertes Paket löschen, wird es von Artifact Registry heruntergeladen und wieder im Cache gespeichert, wenn das Repository das nächste Mal eine Anfrage für dieselbe Paketversion erhält.
Nach der Veröffentlichung einer Paketversion können Sie ein Paket mit demselben Namen und derselben Versionskombination nicht noch einmal veröffentlichen, auch wenn diese Version gelöscht wurde. Dies ist eine npm-Einschränkung, damit der Inhalt einer veröffentlichten Paketversion immer gleich ist.
Wenn Sie die Nutzer auffordern möchten, eine aktualisierte Paketversion zu installieren, verwenden Sie den Befehl npm deprecate, um die alte Version des Pakets als verworfen zu kennzeichnen. Wenn ein Nutzer versucht, das verworfene Paket zu installieren, gibt Artifact Registry eine Warnung zurück, dass diese Version verworfen wurde.
Bevor Sie ein Paket oder eine Paketversion löschen, prüfen Sie, ob Sie alle wichtigen Abhängigkeiten davon kommuniziert oder behoben haben.
So löschen Sie ein Paket:
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Klicken Sie in der Liste der Repositories auf das entsprechende Repository.
Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.
Wählen Sie das Paket aus, das Sie löschen möchten.
Klicken Sie auf Löschen.
Klicken Sie im Bestätigungsdialogfeld auf Löschen.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Ersetzen Sie Folgendes:
PACKAGEist der Name des Pakets im Repository.REPOSITORYist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.-
LOCATIONist der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.
Durch das Flag --async wird der Befehl sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.
So löschen Sie Versionen eines Pakets:
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Klicken Sie in der Liste der Repositories auf das entsprechende Repository.
Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.
Klicken Sie auf das Paket, um die Versionen des Pakets aufzurufen.
Wählen Sie die Versionen aus, die Sie löschen möchten.
Klicken Sie auf Löschen.
Klicken Sie im Bestätigungsdialogfeld auf Löschen.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Ersetzen Sie Folgendes:
VERSIONist der Name der Version, die gelöscht werden soll.PACKAGEist der Name des Pakets im Repository.REPOSITORYist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.-
LOCATIONist der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.
Durch das Flag --async wird der Befehl sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.