Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Tutorial: extrair de um repositório de pacotes

Modo de foco
Tutorial: extrair de um repositório de pacotes - Amazon CodeCatalyst

Neste tutorial, você aprende a criar um fluxo de trabalho que executa uma aplicação cujas dependências são extraídas de um repositório de pacotes do CodeCatalyst. A aplicação é um Node.js simples que imprime uma mensagem “Hello World” nos logs do CodeCatalyst. A aplicação tem uma única dependência: o pacote npm lodash. O pacote lodash é usado para transformar uma string hello-world em Hello World. Você usará a versão 4.17.20 desse pacote.

Depois de configurar a aplicação e o fluxo de trabalho, você configura o CodeCatalyst para impedir que versões adicionais do lodash sejam importadas para o repositório de pacotes do CodeCatalyst a partir do registro externo público (npmjs.com). Depois, você testa se versões adicionais do lodash foram bloqueadas.

Ao final deste tutorial, você deve ter uma boa compreensão de como um fluxo de trabalho interage com repositórios de pacotes, dentro e fora do CodeCatalyst, para recuperar pacotes. Você também deve entender as interações nos bastidores que ocorrem entre o npm, seu repositório de pacotes, seu fluxo de trabalho e o arquivo package.json da aplicação.

Pré-requisitos

Antes de começar

  • Você precisa de um espaço do CodeCatalyst. Para ter mais informações, consulte Criar um espaço.

  • No espaço do CodeCatalyst, você precisa de um projeto vazio chamado:

    codecatalyst-package-project

    Use a opção Começar do zero para criar esse projeto.

    Para ter mais informações, consulte Criação de um projeto vazio no Amazon CodeCatalyst.

Etapa 1: criar um repositório de origem

Nesta etapa, você cria um repositório de origem no CodeCatalyst. Esse repositório armazena os arquivos de origem do tutorial, como os arquivos index.js e package.json.

Para ter mais informações sobre repositórios de origem, consulte Criar um repositório de origem.

Como criar um repositório de origem
  1. Abra o console do CodeCatalyst em https://codecatalyst.aws/.

  2. Navegue até o projeto, codecatalyst-package-project.

  3. No painel de navegação, selecione Código e, depois, selecione Repositórios de origem.

  4. Escolha Adicionar repositório e selecione Criar repositório.

  5. Em Nome do repositório, insira:

    hello-world-app
  6. Escolha Criar.

Etapa 2: criar os repositórios de pacotes do CodeCatalyst e do gateway

Nesta etapa, você cria um repositório de pacotes no projeto do CodeCatalyst e o conecta a um repositório de gateway, também no projeto do CodeCatalyst. Posteriormente, você importa a dependência do tutorial, lodash, de npmjs.com para os dois repositórios.

O repositório de gateway é a “cola” que conecta seu repositório de pacotes no CodeCatalyst ao público npmjs.com.

Para ter mais informações sobre repositórios de pacote, consulte Publicar e compartilhar pacotes de software no CodeCatalyst.

nota

Este tutorial usa os termos repositório de pacotes do CodeCatalyst e repositório de gateway para se referir aos dois repositórios que você cria no CodeCatalyst no procedimento a seguir.

Para criar repositórios de pacotes do CodeCatalyst e do gateway
  1. No painel de navegação, selecione Packages (pacotes).

  2. Escolha Criar repositório de pacotes.

  3. Em Nome do repositório, insira:

    codecatalyst-package-repository
  4. Escolha + Selecionar repositórios upstream.

  5. Escolha Repositórios de gateway.

  6. Na caixa npm-public-registry-gateway, selecione Criar.

  7. Escolha Selecionar.

  8. Escolha Criar.

    O CodeCatalyst cria um repositório de pacotes chamado codecatalyst-package-repository que está conectado a um repositório de gateway. O repositório de gateway está conectado ao registro npmjs.com.

Etapa 3: criar a aplicação “Hello World”

Nesta etapa, você cria uma aplicação Node.js “Hello World” e importa a dependência (lodash) para os repositórios de pacotes do gateway e do CodeCatalyst.

Para criar a aplicação, você precisa de uma máquina de desenvolvimento com o Node.js e o cliente npm associado instalado.

Este tutorial pressupõe que você usará um Ambiente de Desenvolvimento do CodeCatalyst como máquina de desenvolvimento. Embora você não precise usar um Ambiente de Desenvolvimento do CodeCatalyst, ele é recomendado porque fornece um ambiente de trabalho limpo, tem o Node.js e o npm pré-instalados e é fácil de excluir quando você terminar o tutorial. Para ter mais informações sobre Ambientes de Desenvolvimento do CodeCatalyst, consulte Criar um Ambiente de Desenvolvimento.

Use as instruções a seguir para iniciar um Ambiente de Desenvolvimento do CodeCatalyst e usá-lo para criar a aplicação “Hello World”.

Como iniciar um novo Ambiente de Desenvolvimento do CodeCatalyst
  1. No painel de navegação, escolha Código e Ambientes de Desenvolvimento.

  2. Na parte superior, escolha Criar ambiente de desenvolvimento e AWS Cloud9 (no navegador).

  3. Verifique se Repositório está definido como hello-world-app e Ramificação existente está definido como main. Escolha Criar.

    O Ambiente de Desenvolvimento é iniciado em uma nova guia do navegador e seu repositório (hello-world-app) é clonado nela.

  4. Deixe as duas guias do navegador do CodeCatalyst abertas e vá para o próximo procedimento.

Como criar a aplicação Node.js “Hello World”
  1. Acesse o Ambiente de Desenvolvimento.

  2. No prompt do terminal, mude para o diretório raiz do repositório de origem hello-world-app:

    cd hello-world-app
  3. Inicialize um projeto Node.js:

    npm init -y

    A inicialização cria um arquivo package.json no diretório raiz do hello-world-app.

  4. Conecte o cliente npm no Ambiente de Desenvolvimento ao repositório de pacotes do CodeCatalyst:

    1. Mude para o console do CodeCatalyst.

    2. No painel de navegação, selecione Packages (pacotes).

    3. Selecione codecatalyst-package-repository.

    4. Selecione Conectar ao repositório.

    5. Selecione Criar token. Um token de acesso pessoal (PAT) é criado para você.

    6. Selecione Copiar para copiar os comandos.

    7. Mude para o Ambiente de Desenvolvimento.

    8. Verifique se você está no diretório hello-world-app.

    9. Cole os comandos. Eles são semelhantes a:

      npm set registry=https://packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/codecatalyst-package-repository/ --location project npm set //packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/hello-world-app/:_authToken=username:token-secret
  5. Importe a versão 4.17.20 de lodash:

    npm install lodash@v4.17.20 --save --save-exact

    O npm procura a versão 4.17.20 de lodash nos seguintes locais, na seguinte ordem:

    • No Ambiente de Desenvolvimento. Ele não consegue encontrá-lo aqui.

    • No repositório de pacotes do CodeCatalyst. Ele não consegue encontrá-lo aqui.

    • No repositório de gateway. Ele não consegue encontrá-lo aqui.

    • Em npmjs.com. Ele o encontra aqui.

    O npm importa lodash para o repositório de gateway, o repositório de pacotes do CodeCatalyst e o Ambiente de Desenvolvimento.

    nota

    Se você não tivesse conectado o cliente npm ao repositório de pacotes do CodeCatalyst na etapa 4, o npm teria retirado lodash diretamente do npmjs.com e não teria importado o pacote para nenhum dos repositórios.

    O npm também atualiza seu arquivo package.json com a dependência lodash e cria um diretório node_modules contendo lodash e todas as dependências.

  6. Teste se lodash foi importado para seu Ambiente de Desenvolvimento. Insira:

    npm list

    A mensagem a seguir é exibida, indicando uma importação bem-sucedida:

    `-- lodash@4.17.20
  7. (Opcional) Abra hello-world-app/package.json e verifique se as linhas em negrito vermelho foram adicionadas:

    { "name": "hello-world-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", dependencies": { "lodash": "4.17.20" } }
  8. Em /hello-world-app, crie um arquivo chamado index.js com o conteúdo a seguir:

    dica

    Você pode usar a navegação lateral no Ambiente de Desenvolvimento para criar esse arquivo.

    // Importing lodash library const _ = require('lodash'); // Input string const inputString = 'hello-world'; // Transforming the string using lodash const transformedString = _.startCase(inputString.replace('-', ' ')); // Outputting the transformed string to the console console.log(transformedString);
Para testar se “lodash” foi importado para os repositórios de pacotes do gateway e do CodeCatalyst
  1. Mude para o console do CodeCatalyst.

  2. No painel de navegação, selecione Packages (pacotes).

  3. Selecione npm-public-registry-gateway.

  4. Certifique-se de que lodash seja exibido. A coluna Versão mais recente indica 4.17.20.

  5. Repita esse procedimento para o codecatalyst-package-repository. Talvez seja necessário atualizar a janela do navegador para ver o pacote importado.

Para testar o “Hello World” em seu Ambiente de Desenvolvimento
  1. Mude para o Ambiente de Desenvolvimento.

  2. Verifique se você ainda está no diretório hello-world-app e execute a aplicação:

    node index.js

    Uma mensagem Hello World é exibida. O Node.js executou a aplicação usando o pacote lodash que você baixou para o Ambiente de Desenvolvimento em uma etapa anterior.

Como ignorar o diretório “node_modules” e confirmar “Hello World”
  1. Ignore o diretório node_modules. Insira:

    echo "node_modules/" >> .gitignore

    É uma prática recomendada evitar confirmar esse diretório. Além disso, a confirmação desse diretório interferirá nas etapas posteriores neste tutorial.

  2. Adicione, confirme e envie:

    git add . git commit -m "add the Hello World application" git push

    Os arquivos da aplicação e do projeto “Hello World” são adicionados ao repositório de origem.

Etapa 4: criar um fluxo de trabalho que execute o “Hello World”

Nesta etapa, crie um fluxo de trabalho que executará a aplicação “Hello World” usando a dependência lodash. O fluxo de trabalho inclui uma única ação ou tarefa chamada RunHelloWorldApp. A ação RunHelloWorldApp inclui os seguintes comandos e seções notáveis:

  • Packages

    Esta seção indica o nome do repositório de pacotes do CodeCatalyst ao qual a ação deve se conectar durante a execução de npm install.

  • - Run: npm install

    Esse comando instrui o npm a instalar as dependências especificadas no arquivo package.json. A única dependência especificada no arquivo package.json é lodash. O npm procura lodash nos seguintes locais:

    • Na imagem do Docker que executa a ação. Ele não consegue encontrá-lo aqui.

    • No repositório de pacotes do CodeCatalyst. Ele o encontra aqui.

    Depois que o npm encontra lodash, ele o importa para a imagem do Docker que executa a ação.

  • - Run: npm list

    Esse comando imprime qual versão do lodash foi baixada para a imagem do Docker que executa a ação.

  • - Run: node index.js

    Esse comando executa a aplicação “Hello World” usando a dependência especificada no arquivo package.json.

Observe que a ação RunHelloWorldApp é uma ação de criação, conforme indicado pelo identificador aws/build@v1 próximo à parte superior do fluxo de trabalho. Para ter mais informações sobre a ação de criação, consulte Criação com fluxos de trabalho.

Use as instruções a seguir para criar um fluxo de trabalho que extraia a dependência lodash do repositório de pacotes do CodeCatalyst e, depois, execute a aplicação “Hello World”.

Como criar um fluxo de trabalho
  1. Mude para o console do CodeCatalyst.

  2. No painel de navegação, escolha CI/CD e Fluxos de trabalho.

  3. Selecione Criar fluxo de trabalho.

  4. Em Repositório de origem, selecione hello-world-app.

  5. Em Ramificação, selecione main.

    O arquivo de definição do fluxo de trabalho será criado no repositório de origem e na ramificação escolhidos.

  6. Escolha Criar.

  7. Selecione YAML na parte superior.

  8. Exclua o código de amostra YAML.

  9. Adicione o seguinte código YAML:

    Name: codecatalyst-package-workflow SchemaVersion: "1.0" # Required - Define action configurations. Actions: RunHelloWorldApp: # Identifies the action. Do not modify this value. Identifier: aws/build@v1 Compute: Type: Lambda Inputs: Sources: - WorkflowSource # This specifies your source repository. Configuration: Steps: - Run: npm install - Run: npm list - Run: node index.js Container: # This specifies the Docker image that runs the action. Registry: CODECATALYST Image: CodeCatalystLinuxLambda_x86_64:2024_03 Packages: NpmConfiguration: PackageRegistries: - PackagesRepository: codecatalyst-package-repository

    No código anterior, substitua codecatalyst-package-repository pelo nome do repositório de pacotes do CodeCatalyst que você criou em Etapa 2: criar os repositórios de pacotes do CodeCatalyst e do gateway.

    Para ter informações sobre as propriedades nesse arquivo, consulte a Ações de criação e de teste YAML.

  10. (Opcional) Selecione Validar para garantir que o código YAML seja válido antes de confirmar.

  11. Escolha Commit (Confirmar).

  12. Na caixa de diálogo Confirmar fluxo de trabalho, insira o seguinte:

    1. Em Nome do arquivo do fluxo de trabalho, mantenha o padrão, codecatalyst-package-workflow.

    2. Em Confirmar mensagem, insira:

      add initial workflow file
    3. Em Repositório, selecione hello-world-app.

    4. Em Nome da ramificação, selecione principal.

    5. Escolha Commit (Confirmar).

    Agora você criou um fluxo de trabalho.

Para executar o fluxo de trabalho
  1. Ao lado do fluxo de trabalho que você acabou de criar (codecatalyst-package-workflow), selecione Ações e, depois, selecione Executar.

    A execução do fluxo de trabalho é iniciada.

  2. Na notificação verde na parte superior, à direita, escolha o link para a execução. O link é semelhante a View Run-1234.

    Um diagrama do fluxo de trabalho é exibido, mostrando quem iniciou a execução e a ação RunHelloWorldApp.

  3. Escolha a caixa RunHelloWorldApp para observar o progresso da ação.

  4. Quando a execução terminar, vá para Etapa 5: verificar o fluxo de trabalho.

Etapa 5: verificar o fluxo de trabalho

Nesta etapa, você verifica se o fluxo de trabalho executou a aplicação “Hello World” com a dependência lodash.

Como verificar se a aplicação “Hello World” foi executada usando a dependência
  1. No diagrama do fluxo de trabalho, escolha a caixa RunHelloWorldApp.

    Uma lista de mensagens de log é exibida.

  2. Expanda a mensagem de log node index.js.

    A seguinte mensagem é exibida:

    [Container] 2024/04/24 21:15:41.545650 Running command node index.js Hello World

    A aparência de Hello Word (em vez de hello-world) indica que a dependência lodash foi usada.

  3. Expanda o log npm list.

    Uma mensagem semelhante à seguinte é exibida:

    └── lodash@4.17.20

    Essa mensagem indica que a versão 4.17.20 de lodash foi baixada para a imagem do Docker que executa a ação do fluxo de trabalho.

Etapa 6: bloquear importações de npmjs.com

Agora que a versão 4.17.20 de lodash está presente nos repositórios de pacotes do gateway e do CodeCatalyst, você pode bloquear importações de outras versões. O bloqueio impede que você importe acidentalmente versões posteriores (ou anteriores) dolodash, que podem conter código malicioso. Para ter mais informações, consulte Editar controles de origem do pacote e Ataques de substituição de dependências.

Use as instruções a seguir para bloquear as importações de lodash do seu repositório de gateway. Quando você bloqueia pacotes no gateway, eles também são bloqueados em locais posteriores.

Para bloquear importações para o repositório de gateway
  1. No painel de navegação, selecione Packages (pacotes).

  2. Selecione npm-publish-registry-gateway.

  3. Selecione lodash.

  4. Na parte superior, selecione Controles de origem.

  5. Em Upstream, selecione Bloquear.

  6. Escolha Salvar.

    Agora você bloqueou as importações para seu repositório de gateway (e repositórios e computadores downstream) em npmjs.com.

Etapa 7: testar o recurso de bloqueio

Nesta seção, você verifica se o bloqueio configurado em Etapa 6: bloquear importações de npmjs.com está funcionando. Você começa configurando o “Hello World” para solicitar a versão 4.17.21 de lodash em vez da disponível no seu repositório de gateway, que é a 4.17.20. Depois, você confere se a aplicação não pode extrair a versão 4.17.21 do nmpjs.com, indicando um bloqueio bem-sucedido. Como teste final, você desbloqueia as importações para o repositório do gateway e confere se a aplicação consegue extrair a versão 4.17.21 de lodash.

Use o conjunto de procedimentos a seguir para testar o recurso de bloqueio.

Antes de começar
  1. Mude para o Ambiente de Desenvolvimento.

  2. Extraia o arquivo codecatalyst-package-workflow.yaml que você criou usando o console do CodeCatalyst anteriormente:

    git pull
Como configurar “Hello World” para solicitar a versão 4.17.21 de “lodash”
  1. Abra o /hello-world-app/package.json.

  2. Altere a versão de lodash para 4.17.21 conforme mostrado em negrito vermelho:

    { "name": "hello-world-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "lodash": "4.17.21" } }

    Agora há uma incompatibilidade entre a versão no arquivo package.json (4.17.21) e a versão nos repositórios de pacotes do gateway e do CodeCatalyst (4.17.20).

  3. Adicione, confirme e envie:

    git add . git commit -m "update package.json to use lodash 4.17.21" git push
Como testar se o “Hello World” não pode receber a versão 4.17.21 de “lodash”
  1. Execute o fluxo de trabalho com a incompatibilidade de versão:

    1. Mude para o console do CodeCatalyst.

    2. No painel de navegação, escolha CI/CD e Fluxos de trabalho.

    3. Ao lado de codecatalyst-package-workflow, selecione Ação e Executar.

      O npm examina em package.json as dependências e vê que a versão 4.17.21 de lodash é exigida pelo “Hello World”. O npm procura a dependência nos seguintes locais, na seguinte ordem:

      • Na imagem do Docker que executa a ação. Ele não consegue encontrá-lo aqui.

      • No repositório de pacotes do CodeCatalyst. Ele não consegue encontrá-lo aqui.

      • No repositório de gateway. Ele não consegue encontrá-lo aqui.

      • Em npmjs.com. Ele o encontra aqui.

      Depois que o npm encontra a versão 4.17.21 em npmjs.com, ele tenta importá-la para o repositório do gateway, mas como você configura o gateway para bloquear as importações de lodash, a importação não ocorre.

      Como a importação não ocorre, o fluxo de trabalho falha.

  2. Verifique se o fluxo de trabalho falhou:

    1. Na notificação verde na parte superior, à direita, escolha o link para a execução. O link é semelhante a View Run-2345.

    2. No diagrama do fluxo de trabalho, escolha a caixa RunHelloWorldApp.

    3. Expanda a mensagem de log npm install.

      A seguinte mensagem é exibida:

      [Container] 2024/04/25 17:20:34.995591 Running command npm install npm ERR! code ETARGET npm ERR! notarget No matching version found for lodash@4.17.21. npm ERR! notarget In most cases you or one of your dependencies are requesting npm ERR! notarget a package version that doesn't exist. npm ERR! A complete log of this run can be found in: /tmp/.npm/_logs/2024-05-08T22_03_26_493Z-debug-0.log

      O erro indica que a versão 4.17.21 não foi encontrada. Isso é esperado porque você a bloqueou.

Para desbloquear importações de npmjs.com
  1. No painel de navegação, selecione Packages (pacotes).

  2. Selecione npm-publish-registry-gateway.

  3. Selecione lodash.

  4. Na parte superior, selecione Controles de origem.

  5. Em Upstream, selecione Permitir.

  6. Escolha Salvar.

    Agora você desbloqueou as importações de lodash.

    Seu fluxo de trabalho agora pode importar a versão 4.17.21 de lodash.

Para testar se as importações de npmjs.com estão desbloqueadas
  1. Execute o fluxo de trabalho novamente. Desta vez, o fluxo de trabalho deve ser bem-sucedido porque a importação de 4.17.21 agora deve funcionar. Para executar o fluxo de trabalho novamente:

    1. Selecione CI/CD e, depois, selecione Fluxos de trabalho.

    2. Ao lado de codecatalyst-package-workflow, selecione Ações e Executar.

    3. Na notificação verde na parte superior, à direita, escolha o link para a execução. O link é semelhante a View Run-3456.

      Um diagrama do fluxo de trabalho é exibido, mostrando quem iniciou a execução e a ação RunHelloWorldApp.

    4. Escolha a caixa RunHelloWorldApp para observar o progresso da ação.

    5. Expanda a mensagem de log npm list e verifique se uma mensagem semelhante à seguinte é exibida:

      └── lodash@4.17.21

      Essa mensagem indica que a versão 4.17.21 de lodash foi baixada.

  2. Verifique se a versão 4.17.21 foi importada para seus repositórios do CodeCatalyst e de gateway:

    1. No painel de navegação, selecione Packages (pacotes).

    2. Selecione npm-public-registry-gateway.

    3. Encontre lodash e verifique se a versão é 4.17.21.

      nota

      Embora a versão 4.17.20 não esteja listada nesta página, você pode encontrá-la escolhendo lodash e Versões na parte superior.

    4. Repita essas etapas para verificar se a versão 4.17.21 foi importada para o codecatalyst-package-repository.

Limpeza

Limpe os arquivos e serviços usados neste tutorial para evitar cobranças por eles.

Para limpar os pacotes (tutorial)
  1. Exclua o codecatalyst-package-project:

    1. No console do CodeCatalyst, navegue até o projeto codecatalyst-package-project se você ainda não estiver lá.

    2. No painel de navegação, escolha Configurações do projeto.

    3. Selecione Excluir projeto, insira delete e selecione Excluir projeto.

      O CodeCatalyst exclui todos os recursos do projeto, incluindo os repositórios de origem, gateway e pacotes do CodeCatalyst. O Ambiente de Desenvolvimento também é excluído.

  2. Exclua o token PAT:

    1. Escolha seu nome de usuário à direita e selecione Minhas configurações.

    2. Em Tokens de acesso pessoal, escolha o token que você criou neste tutorial e selecione Excluir.

Neste tutorial, você aprendeu a criar um fluxo de trabalho que executa uma aplicação que extrai as dependências de um repositório de pacotes do CodeCatalyst. Você também aprendeu a bloquear e desbloquear a entrada de pacotes nos repositórios de pacotes do gateway e do CodeCatalyst.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.