Archiviazione di pacchetti Node.js in Artifact Registry

Questa guida rapida mostra come configurare un repository di pacchetti Node.js privato di Artifact Registry e caricare un pacchetto al suo interno.

Prima di iniziare

  1. Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  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. Installa Google Cloud CLI.

  7. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  8. Per inizializzare gcloud CLI, esegui questo comando:

    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. Installa Google Cloud CLI.

  14. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  15. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  16. Installa PowerShell, se vuoi connetterti a un repository di pacchetti Node.js da Windows.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e gestire i repository di pacchetti Node.js di Artifact Registry, chiedi all'amministratore di concederti il ruolo IAM Amministratore di Artifact Registry (roles/artifactregistry.admin) nel tuo progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Avvia Cloud Shell

In questa guida rapida utilizzerai Cloud Shell, un ambiente shell per la gestione delle risorse ospitate su Google Cloud.

Cloud Shell è preinstallato con il Google Cloud CLI. gcloud CLI fornisce l'interfaccia a riga di comando principale per Google Cloud.

Avvia Cloud Shell:

  1. Vai alla Google Cloud console.

    Google Cloud console

  2. Nella barra degli strumenti della Google Cloud console, fai clic su Attiva Cloud Shell:

Una sessione di Cloud Shell si apre in un frame nella parte inferiore della console. Utilizza questa shell per eseguire i comandi gcloud.

Crea un repository di pacchetti Node.js

Crea il repository per gli artefatti Node.js.

  1. Crea il repository.

    Console

    1. Apri la pagina Repository nella Google Cloud console.

      Apri la pagina Repositori

    2. Fai clic su Crea repository.

    3. Specifica quickstart-nodejs-repo come nome del repository.

    4. Scegli npm come formato e Standard come modalità.

    5. In Tipo di località, seleziona Regione, quindi scegli la località us-central1.

    6. Fai clic su Crea.

    Il repository viene aggiunto all'elenco dei repository

    gcloud

    1. Esegui il comando seguente per creare un nuovo repository di pacchetti Node.js denominato quickstart-nodejs-repo nella località us-central1 con la descrizione "Repository Node.js".

      gcloud artifacts repositories create quickstart-nodejs-repo --repository-format=npm \
      --location=us-central1 --description="Node.js package repository"
      
    2. Esegui questo comando per verificare che il repository sia stato creato.

      gcloud artifacts repositories list
      

    Per ulteriori informazioni sui comandi di Artifact Registry, esegui il comando gcloud artifacts.

  2. Per semplificare i comandi gcloud, imposta il repository predefinito su quickstart-nodejs-repo e la località predefinita su us-central1. Una volta impostati i valori, non devi specificarli nei comandi gcloud che richiedono un repository o una località.

    Per impostare il repository, esegui il comando:

    gcloud config set artifacts/repository quickstart-nodejs-repo
    

    Per impostare la località, esegui il comando:

    gcloud config set artifacts/location us-central1
    

    Per ulteriori informazioni su questi comandi, consulta la documentazione di gcloud config set.

Configura npm

Per caricare e scaricare i pacchetti, devi configurare i progetti npm con le impostazioni per l'autenticazione con il repository che hai creato. Per questa guida rapida, caricherai un pacchetto e poi lo installerai in un secondo pacchetto come dipendenza.

  1. Scarica il pacchetto emoji-regex, un pacchetto che fornisce un'espressione regolare per trovare tutti i simboli e le sequenze di emoji.

    npm pack emoji-regex
    

    Il comando scarica un archivio del pacchetto.

  2. Estrai l'archivio in una directory emoji-regex. Il comando seguente è per un archivio della versione 10.1.0 di emoji-regex:

    mkdir emoji-regex && tar xvf emoji-regex-10.1.0.tgz -C emoji-regex --strip-components 1
    
  3. Crea un secondo pacchetto npm che utilizzerai per installare il pacchetto emoji-regex da Artifact Registry. Per questo pacchetto, utilizza il comando npm init per creare un pacchetto di base.

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

    Quando richiesto, accetta i valori predefiniti.

  4. Configura i progetti emoji-regex e npm-package2 per l'autenticazione con il repository Artifact Registry che hai creato.

    1. Esegui questo comando. Il comando restituisce le impostazioni di configurazione da aggiungere al file di configurazione npm.

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

      L'ambito quickstart quickstart è associato al repository. Quando includi l'ambito nei comandi per pubblicare o installare i pacchetti, npm utilizza il repository. Quando pubblichi o installi pacchetti senza un ambito, viene utilizzato il repository predefinito configurato. Per ulteriori informazioni, consulta la panoramica di Node.js overview.

      L'output del comando gcloud è simile all'esempio seguente. PROJECT è l'ID Google Cloud progetto.

      @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. Aggiungi le impostazioni di configurazione del passaggio precedente al file .npmrc del progetto in ogni progetto npm. Il file si trova nella stessa directory del file package.json.

      Per saperne di più sul file .npmrc, consulta la panoramica di Node.js.

      Ogni repository di pacchetti Node.js di Artifact Registry è associato a un endpoint del registro npm https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY. Se crei un altro repository di pacchetti Node.js di Artifact Registry, npm interagisce con questo come un registro separato con il proprio ambito.

  5. Modifica package.json nei progetti emoji-regex e npm-package2.

    1. Assicurati che il valore di name includa l'ambito quickstart.

      • Per emoji-regex:
      "name": "@quickstart/emoji-regex"
      
      • Per npm-package2:
      "name": "@quickstart/npm-package2"
      
    2. In scripts, aggiungi uno script per google-artifactregistry-auth, una libreria client che aggiorna le credenziali per i repository Artifact Registry.

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

Carica un pacchetto nel repository

  1. Aggiorna il token di accesso per la connessione al repository.

    npm run artifactregistry-login
    
  2. Aggiungi il pacchetto al repository. Puoi utilizzare un comando npm o yarn.

    npm publish
    
    yarn publish
    

Visualizza il pacchetto nel repository

Per verificare che il pacchetto sia stato aggiunto al repository:

Console

  1. Apri la pagina Repository nella Google Cloud console.

    Apri la pagina Repository

  2. Nell'elenco dei repository, fai clic sul repository quickstart-nodejs-repo.

    La pagina Pacchetti elenca i pacchetti nel repository.

  3. Fai clic su un pacchetto per visualizzarne le versioni.

gcloud

Per elencare le immagini nel repository predefinito quickstart-nodejs-repo, esegui questo comando:

 gcloud artifacts packages list

Per visualizzare le versioni di un pacchetto, esegui questo comando:

gcloud artifacts versions list --package=PACKAGE

Dove PACKAGE è l'ID pacchetto.

Installazione dei pacchetti

Installa il pacchetto emoji-regex dal repository Artifact Registry in npm-package2.

Nella directory npm-package2, esegui il comando npm install o yarn add:

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

Il comando installa il pacchetto emoji-regex nel progetto npm-package2. Aggiorna anche package.json per impostare emoji-regex come dipendenza.

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

Libera spazio

Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Prima di rimuovere un repository, assicurati che tutti i pacchetti che vuoi conservare siano disponibili in un'altra posizione.

Per eliminare il repository:

Console

  1. Apri la pagina Repository nella Google Cloud console.

    Apri la pagina Repository

  2. Nell'elenco dei repository, seleziona il repository quickstart-nodejs-repo.

  3. Fai clic su Elimina.

gcloud

  1. Per eliminare il repository quickstart-nodejs-repo, esegui questo comando:

    gcloud artifacts repositories delete quickstart-nodejs-repo
    
  2. Se vuoi rimuovere il repository predefinito e le impostazioni di localizzazione configurate per la configurazione gcloud attiva, esegui i comandi seguenti:

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

Passaggi successivi