Stocker des packages Node.js dans Artifact Registry

Ce guide de démarrage rapide vous explique comment configurer un dépôt de packages Node.js Artifact Registry privé et y importer un package.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. Installez la Google Cloud CLI.

  7. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  8. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  11. Verify that billing is enabled for your Google Cloud project.

  12. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  13. Installez la Google Cloud CLI.

  14. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  15. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  16. Installez PowerShell si vous souhaitez vous connecter à un dépôt de packages Node.js à partir de Windows.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et gérer des dépôts de packages Node.js Artifact Registry, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Artifact Registry (roles/artifactregistry.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Lancer Cloud Shell

Dans ce guide de démarrage rapide, vous allez utiliser Cloud Shell, un environnement shell permettant de gérer les ressources hébergées surGoogle Cloud.

Cloud Shell est préinstallé avec la Google Cloud CLI. gcloud CLI fournit l'interface de ligne de commande principale pour Google Cloud.

Lancez Cloud Shell :

  1. Accédez à la console Google Cloud .

    ConsoleGoogle Cloud

  2. Dans la barre d'outils de la console Google Cloud , cliquez sur Activer Cloud Shell :

Une session Cloud Shell s'ouvre dans un cadre situé en bas de la console. Cette interface système vous permet d'exécuter les commandes gcloud.

Créer un dépôt de packages Node.js

Créez le dépôt pour vos artefacts Node.js.

  1. Créez le dépôt.

    Console

    1. Ouvrez la page Dépôts dans la console Google Cloud .

      Ouvrir la page "Dépôts"

    2. Cliquez sur Créer un dépôt.

    3. Spécifiez quickstart-nodejs-repo comme nom de dépôt.

    4. Choisissez npm comme format et Standard comme mode.

    5. Sous Type d'emplacement, sélectionnez Région, puis l'emplacement us-central1.

    6. Cliquez sur Create (Créer).

    Le dépôt est ajouté à la liste des dépôts.

    gcloud

    1. Exécutez la commande suivante pour créer un dépôt de packages Node.js nommé quickstart-nodejs-repo à l'emplacement us-central1 avec la description "Dépôt Node.js".

      gcloud artifacts repositories create quickstart-nodejs-repo --repository-format=npm \
      --location=us-central1 --description="Node.js package repository"
      
    2. Exécutez la commande suivante pour vérifier que votre dépôt a bien été créé.

      gcloud artifacts repositories list
      

    Exécutez la commande gcloud artifacts pour en savoir plus sur les commandes Artifact Registry.

  2. Pour simplifier les commandes gcloud, définissez le dépôt par défaut sur quickstart-nodejs-repo et l'emplacement par défaut sur us-central1. Une fois les valeurs définies, vous n'avez pas besoin de les spécifier dans les commandes gcloud nécessitant un dépôt ou un emplacement.

    Pour définir le dépôt, exécutez la commande suivante :

    gcloud config set artifacts/repository quickstart-nodejs-repo
    

    Pour définir l'emplacement, exécutez la commande suivante :

    gcloud config set artifacts/location us-central1
    

    Pour plus d'informations sur ces commandes, consultez la documentation gcloud config set.

Configurer npm

Pour importer et télécharger des packages, vous devez configurer vos projets npm avec des paramètres permettant de s'authentifier auprès du dépôt que vous avez créé. Pour ce guide de démarrage rapide, vous allez importer un package, puis l'installer dans un deuxième package en tant que dépendance.

  1. Téléchargez le package emoji-regex, qui fournit une expression régulière permettant de faire correspondre tous les symboles et séquences emoji.

    npm pack emoji-regex
    

    La commande télécharge une archive du package.

  2. Extrayez l'archive dans un répertoire emoji-regex. La commande suivante concerne une archive de emoji-regex version 10.1.0 :

    mkdir emoji-regex && tar xvf emoji-regex-10.1.0.tgz -C emoji-regex --strip-components 1
    
  3. Créez un deuxième package npm que vous utiliserez pour installer le package emoji-regex à partir d'Artifact Registry. Pour ce package, utilisez la commande npm init pour créer un package de base.

    mkdir npm-package2
    cd npm-package2
    
    npm init -y
    

    Lorsque vous y êtes invité, acceptez les valeurs par défaut.

  4. Configurez les projets emoji-regex et npm-package2 pour qu'ils s'authentifient auprès du dépôt Artifact Registry que vous avez créé.

    1. Exécutez la commande ci-dessous. La commande renvoie les paramètres de configuration à ajouter à votre fichier de configuration npm.

      gcloud artifacts print-settings npm --scope=@quickstart
      

      Le champ d'application quickstart est associé à votre dépôt. Lorsque vous incluez le champ d'application dans les commandes permettant de publier ou d'installer des packages, npm utilise votre dépôt. Lorsque vous publiez ou installez des packages sans champ d'application, le dépôt par défaut configuré est utilisé. Pour en savoir plus, consultez la présentation de Node.js.

      Le résultat de la commande gcloud ressemble à l'exemple suivant. PROJECT est l'ID de votre projet Google Cloud .

      @quickstart:registry=https://us-central1-npm.pkg.dev/PROJECT/quickstart-nodejs-repo/
      //us-central1-npm.pkg.dev/PROJECT/quickstart-nodejs-repo/:always-auth=true
      
    2. Ajoutez les paramètres de configuration de l'étape précédente au fichier .npmrc du projet dans chaque projet npm. Le fichier se trouve dans le même répertoire que le fichier package.json.

      Pour en savoir plus sur le fichier .npmrc, consultez la présentation de Node.js.

      Chaque dépôt de packages Node.js Artifact Registry est associé à un point de terminaison de registre npm https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY. Si vous créez un autre dépôt de packages Node.js Artifact Registry, npm interagit avec celui-ci en tant que registre distinct avec son propre champ d'application.

  5. Modifiez package.json dans les projets emoji-regex et npm-package2.

    1. Assurez-vous que la valeur de name inclut le champ d'application quickstart.

      • Pour emoji-regex :
      "name": "@quickstart/emoji-regex"
      
      • Pour npm-package2 :
      "name": "@quickstart/npm-package2"
      
    2. Sous scripts, ajoutez un script pour google-artifactregistry-auth, une bibliothèque cliente qui met à jour les identifiants pour les dépôts Artifact Registry.

      "scripts": {
        "artifactregistry-login": "npx google-artifactregistry-auth --repo-config=./.npmrc --credential-config=./.npmrc"
      }
      

Importer un package dans le dépôt

  1. Actualisez le jeton d'accès pour vous connecter au dépôt.

    npm run artifactregistry-login
    
  2. Ajoutez votre package au dépôt. Vous pouvez utiliser une commande npm ou yarn.

    npm publish
    
    yarn publish
    

Afficher le package dans le dépôt

Pour vérifier que votre package a bien été ajouté au dépôt :

Console

  1. Ouvrez la page Dépôts dans la console Google Cloud .

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, cliquez sur le dépôt quickstart-nodejs-repo.

    La page Packages répertorie les packages du dépôt.

  3. Cliquez sur un package pour afficher ses versions.

gcloud

Pour répertorier les images dans le dépôt quickstart-nodejs-repo par défaut, exécutez la commande suivante :

 gcloud artifacts packages list

Pour afficher les versions d'un package, exécutez la commande suivante :

gcloud artifacts versions list --package=PACKAGE

PACKAGE correspond à l'ID de package.

Installer des packages

Installez le package emoji-regex à partir de votre dépôt Artifact Registry dans npm-package2.

Dans le répertoire npm-package2, exécutez la commande npm install ou yarn add :

npm install @quickstart/emoji-regex
yarn add @quickstart/emoji-regex

La commande installe le package emoji-regex dans le projet npm-package2. Il met également à jour package.json pour définir emoji-regex comme dépendance.

"dependencies": {
  "@quickstart/emoji-regex": "^10.1.0"
}

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , procédez comme suit :

Avant de supprimer un dépôt, assurez-vous que tous les packages que vous souhaitez conserver sont disponibles dans un autre emplacement.

Pour supprimer le dépôt :

Console

  1. Ouvrez la page Dépôts dans la console Google Cloud .

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, sélectionnez le dépôt quickstart-nodejs-repo.

  3. Cliquez sur Supprimer.

gcloud

  1. Pour supprimer le dépôt quickstart-nodejs-repo, exécutez la commande suivante :

    gcloud artifacts repositories delete quickstart-nodejs-repo
    
  2. Si vous souhaitez supprimer le dépôt par défaut et les paramètres d'emplacement que vous avez définis pour la configuration gcloud active, exécutez les commandes suivantes :

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

Étapes suivantes