Armazenar pacotes Node.js no Artifact Registry

Neste guia de início rápido, mostramos como configurar um repositório de pacotes Node.js privado do Artifact Registry e fazer upload de um pacote para ele.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
  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, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  6. Install the Google Cloud CLI.

  7. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  8. To initialize the gcloud CLI, run the following command:

    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, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  13. Install the Google Cloud CLI.

  14. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  15. To initialize the gcloud CLI, run the following command:

    gcloud init
  16. Instale o PowerShell se quiser se conectar a um Package Repository Node.js do Windows.

Funções exigidas

Para receber as permissões necessárias para criar e gerenciar repositórios de pacotes do Node.js do Artifact Registry, peça ao administrador para conceder a você o papel do IAM de Administrador do Artifact Registry (roles/artifactregistry.admin) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Iniciar o Cloud Shell

Neste guia de início rápido, você usará o Cloud Shell, um ambiente shell para gerenciar recursos hospedados no Google Cloud.

O Cloud Shell vem pré-instalado com a Google Cloud CLI. A CLI gcloud fornece a principal interface de linha de comando para o Google Cloud.

Inicie o Cloud Shell

  1. Acesse o console do Google Cloud .

    Google Cloud console

  2. Na barra de ferramentas do console Google Cloud , clique em Ativar o Cloud Shell:

Uma sessão do Cloud Shell é aberta dentro de um quadro inferior no console. Use esse shell para executar comandos gcloud.

Criar um repositório de pacotes do Node.js

Crie o repositório para seus artefatos do Node.js.

  1. Crie o repositório.

    Console

    1. Abra a página Repositórios no console do Google Cloud .

      Abrir a página Repositórios

    2. Clique em Criar repositório.

    3. Especifique quickstart-nodejs-repo como o nome do repositório.

    4. Escolha npm como o formato e Standard como o modo.

    5. Em Tipo de local, selecione Região e escolha o local us-central1.

    6. Clique em Criar.

    O repositório é adicionado à lista de repositórios

    gcloud

    1. Execute o comando a seguir para criar um Package Repository Node.js chamado quickstart-nodejs-repo no local us-central1 com a descrição "Repositório Node.js".

      gcloud artifacts repositories create quickstart-nodejs-repo --repository-format=npm \
      --location=us-central1 --description="Node.js package repository"
      
    2. Execute o seguinte comando para verificar se o repositório foi criado.

      gcloud artifacts repositories list
      

    Para mais informações sobre os comandos do Artifact Registry, execute o comando gcloud artifacts.

  2. Para simplificar os comandos gcloud, defina o repositório padrão como quickstart-nodejs-repo e o local padrão como us-central1. Depois que os valores são definidos, não é necessário especificá-los em comandos gcloud que exigem um repositório ou um local.

    Para definir o repositório, execute o comando:

    gcloud config set artifacts/repository quickstart-nodejs-repo
    

    Para definir o local, execute o comando:

    gcloud config set artifacts/location us-central1
    

    Saiba mais sobre esses comandos na documentação do gcloud config set.

Configurar NPM

Para fazer upload e download de pacotes, é preciso definir as configurações dos seus projetos npm para autenticar com o repositório que você criou. Neste guia de início rápido, você vai fazer upload de um pacote e instalá-lo em um segundo pacote como uma dependência.

  1. Faça o download do pacote emoji-regex, que fornece uma expressão regular para corresponder a todos os símbolos e sequências de emojis.

    npm pack emoji-regex
    

    O comando faz o download de um arquivo do pacote.

  2. Extraia o arquivo em um diretório emoji-regex. O comando a seguir é para um arquivo da versão 10.1.0 do emoji-regex:

    mkdir emoji-regex && tar xvf emoji-regex-10.1.0.tgz -C emoji-regex --strip-components 1
    
  3. Crie um segundo pacote npm que será usado para instalar o pacote emoji-regex do Artifact Registry. Para esse pacote, use o comando npm init para criar um pacote básico.

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

    Quando solicitado, aceite os valores padrão.

  4. Configure os projetos emoji-regex e npm-package2 para autenticar com o repositório do Artifact Registry que você criou.

    1. Execute o comando a seguir. O comando retorna definições de configuração para adicionar ao arquivo de configuração do npm.

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

      O escopo quickstart está associado ao seu repositório. Quando você inclui o escopo nos comandos para publicar ou instalar pacotes, o npm usa seu repositório. Quando você publica ou instala pacotes sem um escopo, o repositório padrão configurado é usado. Para mais informações, consulte a visão geral do Node.js.

      A saída do comando gcloud é semelhante ao exemplo a seguir. PROJECT é o ID do projeto do 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. Adicione as configurações da etapa anterior ao arquivo .npmrc do projeto em cada projeto npm. O arquivo no mesmo diretório que o arquivo package.json.

      Para saber mais sobre o arquivo .npmrc, consulte a visão geral do Node.js.

      Cada Package Repository Node.js do Artifact Registry está associado a um endpoint de registro npm https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY. Se você criar outro Package Repository de pacotes Node.js do Artifact Registry, o npm vai interagir com ele como um registro separado com escopo próprio.

  5. Edite package.json nos projetos emoji-regex e npm-package2.

    1. Verifique se o valor de name inclui o escopo quickstart.

      • Para obter emoji-regex:
      "name": "@quickstart/emoji-regex"
      
      • Para obter npm-package2:
      "name": "@quickstart/npm-package2"
      
    2. Em scripts, adicione um script para google-artifactregistry-auth, uma biblioteca de cliente que atualiza as credenciais dos repositórios do Artifact Registry.

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

Fazer upload de um pacote para o repositório

  1. Atualize o token de acesso para se conectar ao repositório.

    npm run artifactregistry-login
    
  2. Adicione o pacote ao repositório. Use um comando npm ou yarn.

    npm publish
    
    yarn publish
    

Ver o pacote no repositório

Para verificar se o pacote foi adicionado ao repositório:

Console

  1. Abra a página Repositórios no console do Google Cloud .

    Abrir a página Repositórios

  2. Na lista de repositórios, selecione o repositório quickstart-nodejs-repo.

    A página Pacotes lista os pacotes no repositório.

  3. Clique em um pacote para ver as versões dele.

gcloud

Para listar as imagens no repositório padrão quickstart-nodejs-repo, execute o seguinte comando:

 gcloud artifacts packages list

Para ver as versões de um pacote, execute o seguinte comando:

gcloud artifacts versions list --package=PACKAGE

Em que PACKAGE é o ID do pacote.

Como instalar pacotes

Instale o pacote emoji-regex do repositório do Artifact Registry em npm-package2.

No diretório npm-package2, execute o comando npm install ou yarn add:

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

O comando instala o pacote emoji-regex no projeto npm-package2. Ele também atualiza package.json para definir emoji-regex como uma dependência.

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

Limpar

Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.

Antes de remover um repositório, verifique se os pacotes que você quer manter estão disponíveis em outro local.

Para excluir o repositório:

Console

  1. Abra a página Repositórios no console do Google Cloud .

    Abrir a página Repositórios

  2. Na lista de repositórios, selecione o repositório quickstart-nodejs-repo.

  3. Clique em Excluir.

gcloud

  1. Para excluir o repositório quickstart-nodejs-repo, execute o seguinte comando:

    gcloud artifacts repositories delete quickstart-nodejs-repo
    
  2. Se você quiser remover as configurações padrão de repositório e localização que definiu para a configuração ativa gcloud, execute os seguintes comandos:

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

A seguir