Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Tutorial: Extracción de un repositorio de paquetes

Modo de enfoque
Tutorial: Extracción de un repositorio de paquetes - Amazon CodeCatalyst

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

En este tutorial, aprenderá a crear un flujo de trabajo que ejecute una aplicación cuyas dependencias se extraigan de un repositorio de CodeCatalyst paquetes. La aplicación es una sencilla aplicación de Node.js que imprime un mensaje de «Hola mundo» en los registros. CodeCatalyst La aplicación tiene una sola dependencia: el paquete npm lodash. El paquete lodash se usa para transformar una cadena hello-world en Hello World. Utilizará la versión 4.17.20 de este paquete.

Tras configurar la aplicación y el flujo de trabajo, debe configurarlos CodeCatalyst para bloquear la importación de lodash versiones adicionales de al repositorio de CodeCatalyst paquetes desde el registro público externo (npmjs.com). A continuación, compruebe que las versiones adicionales de lodash se hayan bloqueado correctamente.

Al final de este tutorial, deberías tener una buena idea de cómo interactúa un flujo de trabajo con los repositorios de paquetes, tanto internos como externos CodeCatalyst, para recuperar los paquetes. También debes entender las behind-the-scenes interacciones que se producen entre npm, tu repositorio de paquetes, tu flujo de trabajo y el archivo de tu aplicación. package.json

Requisitos previos

Antes de empezar:

Paso 1: creación de un repositorio de código fuente

En este paso, crearás un repositorio de origen en CodeCatalyst. Este repositorio almacena los archivos de código fuente del tutorial, como los archivos index.js y package.json.

Para obtener más información sobre los repositorios de código fuente, consulte Creación de un repositorio de código fuente.

Creación de un repositorio de código fuente
  1. Abra la CodeCatalyst consola en https://codecatalyst.aws/.

  2. Vaya a su proyecto, codecatalyst-package-project.

  3. En el panel de navegación, elija Código y, a continuación, elija Repositorios de origen.

  4. Elija Agregar repositorio y, a continuación, elija Crear repositorio.

  5. En Nombre del repositorio, escriba:

    hello-world-app
  6. Seleccione Crear.

Paso 2: Cree los repositorios de paquetes CodeCatalyst y gateway

En este paso, creará un repositorio de paquetes en su CodeCatalyst proyecto y lo conectará a un repositorio de puerta de enlace, también en su CodeCatalyst proyecto. Luego, importará la dependencia del tutorial (lodash) desde npmjs.com a ambos repositorios.

El repositorio de puerta de enlace es el «pegamento» que conecta tu repositorio de paquetes con el npmjs.com público. CodeCatalyst

Para obtener más información sobre los repositorios de paquetes, consulte Publica y comparte paquetes de software en CodeCatalyst.

nota

En este tutorial, se utilizan los términos repositorio de CodeCatalyst paquetes y repositorio de puerta de enlace para hacer referencia a los dos repositorios en los que se crean CodeCatalyst en el siguiente procedimiento.

Para crear repositorios de CodeCatalyst paquetes y puertas de enlace
  1. En el panel de navegación, elija Paquetes.

  2. Seleccione Crear repositorio de paquetes.

  3. En Nombre del repositorio, escriba:

    codecatalyst-package-repository
  4. Elija + Seleccionar repositorios ascendentes.

  5. Seleccione Repositorios de puerta de enlace.

  6. En el npm-public-registry-gatewaycuadro, selecciona Crear.

  7. Elija Seleccionar.

  8. Seleccione Crear.

    CodeCatalyst crea un repositorio de paquetes denominado codecatalyst-package-repository que está conectado a un repositorio de puerta de enlace. El repositorio de puerta de enlace está conectado al registro npmjs.com.

Paso 3: creación de la aplicación “Hola, mundo”

En este paso, crea una aplicación Node.js de «Hello World» e importa su dependencia (lodash) a su pasarela y a los repositorios de paquetes. CodeCatalyst

Para crear la aplicación, necesita un equipo de desarrollo con Node.js y tener instalado el cliente de npm asociado.

En este tutorial se asume que utilizarás un entorno de CodeCatalyst desarrollo como máquina de desarrollo. Aunque no es necesario utilizar un entorno CodeCatalyst de desarrollo, es recomendable porque proporciona un entorno de trabajo limpio, tiene Node.js npm preinstalado y es fácil de eliminar cuando haya terminado el tutorial. Para obtener más información sobre los CodeCatalyst entornos de desarrollo, consulteCreación de un entorno de desarrollo.

Siga las instrucciones siguientes para iniciar un entorno CodeCatalyst de desarrollo y utilizarlo para crear la aplicación «Hello World».

Para lanzar un entorno de desarrollo CodeCatalyst
  1. En el panel de navegación, elija Código y, a continuación, Entornos de desarrollo.

  2. Cerca de la parte superior, elija Crear entorno de desarrollo y, a continuación, elija AWS Cloud9 (en el navegador).

  3. Asegúrese de que Repositorio se haya configurado como hello-world-app y que Ramificación existente se haya configurado como main. Seleccione Crear.

    El entorno de desarrollo se abrirá en una nueva pestaña del navegador y el repositorio (hello-world-app) se clonará en este.

  4. Deje abiertas las dos pestañas CodeCatalyst del navegador y continúe con el siguiente procedimiento.

Creación de la aplicación Node.js “Hola, mundo”
  1. Vaya a su entorno de desarrollo.

  2. En la línea de comandos del terminal, cambie al directorio raíz del repositorio de código fuente de hello-world-app.

    cd hello-world-app
  3. Inicialice un proyecto de Node.js:

    npm init -y

    La inicialización crea un archivo package.json en el directorio raíz de hello-world-app.

  4. Conecte el cliente npm de su entorno de desarrollo a su repositorio de CodeCatalyst paquetes:

    1. Cambie a la CodeCatalyst consola.

    2. En el panel de navegación, elija Paquetes.

    3. Elija codecatalyst-package-repository.

    4. Seleccione Establecer conexión con el repositorio.

    5. Seleccione Crear token. Se creará un token de acceso personal (PAT) para usted.

    6. Seleccione Copiar para copiar los comandos.

    7. Cambie a su entorno de desarrollo.

    8. Asegúrese de estar en el directorio hello-world-app.

    9. Pegue los comandos. Tendrán un aspecto similar al siguiente:

      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 la versión 4.17.20 de lodash:

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

    npm busca la versión 4.17.20 de lodash en las siguientes ubicaciones y en el siguiente orden:

    • En el entorno de desarrollo. No lo encuentra aquí.

    • En el repositorio de CodeCatalyst paquetes. No lo encuentra aquí.

    • En el repositorio de puerta de enlace. No lo encuentra aquí.

    • En npmjs.com. Lo encuentra aquí.

    npm importa lodash al repositorio de la puerta de enlace, al repositorio de CodeCatalyst paquetes y al entorno de desarrollo.

    nota

    Si no hubieras conectado el cliente npm a tu repositorio de CodeCatalyst paquetes en el paso 4, npm lo habría extraído lodash directamente de npmjs.com y no habría importado el paquete a ninguno de los repositorios.

    npm también actualiza el archivo package.json con la dependencia lodash y crea un directorio node_modules que contiene lodash y todas sus dependencias.

  6. Compruebe que lodash se haya importado correctamente a su entorno de desarrollo. Escriba:

    npm list

    Aparecerá el siguiente mensaje que indica que la importación se ha realizado correctamente:

    `-- lodash@4.17.20
  7. (Opcional) Abre hello-world-app/package.json y verifica que se hayan agregado las líneas: red bold

    { "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. En /hello-world-app, cree un archivo llamado index.js con el siguiente contenido:

    sugerencia

    Puede utilizar la navegación lateral de su entorno de desarrollo para crear este archivo.

    // 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 comprobar que 'lodash' se importó a su puerta de enlace y a los repositorios de CodeCatalyst paquetes
  1. Cambie a la consola. CodeCatalyst

  2. En el panel de navegación, elija Paquetes.

  3. Elija npm-public-registry-gateway.

  4. Asegúrese de que aparezca lodash. La columna Última versión indica 4.17.20.

  5. Repita este procedimiento para el codecatalyst-package-repository. Puede que tenga que actualizar la ventana del navegador para ver el paquete importado.

Prueba de “Hola, mundo” en el entorno de desarrollo
  1. Cambie a su entorno de desarrollo.

  2. Compruebe que aún se encuentra en el directorio hello-world-app y ejecute la aplicación:

    node index.js

    Aparecerá un mensaje Hello World. Node.js ejecutó la aplicación con el paquete lodash que ha descargado en el entorno de desarrollo en un paso anterior.

Método para ignorar el directorio “node_modules” y confirmar “Hola, mundo”
  1. Ignore el directorio node_modules. Escriba:

    echo "node_modules/" >> .gitignore

    Es recomendable evitar confirmar este directorio. Además, confirmar este directorio interferirá con pasos futuros en este tutorial.

  2. Añada, confirme y envíe:

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

    Los archivos de la aplicación y del proyecto “Hola, mundo” se añaden al repositorio de código fuente.

Paso 4: creación de un flujo de trabajo que ejecute “Hola, mundo”

En este paso, creará un flujo de trabajo que ejecute la aplicación “Hola, mundo” con la dependencia lodash. El flujo de trabajo incluye una sola acción o tarea llamada RunHelloWorldApp. La acción RunHelloWorldApp incluye los siguientes comandos y secciones importantes:

  • Packages

    En esta sección se indica el nombre del repositorio de CodeCatalyst paquetes al que se debe conectar la acción cuando se ejecuta. npm install

  • - Run: npm install

    Este comando le indica a npm que instale las dependencias especificadas en el archivo package.json. La única dependencia especificada en el archivo package.json es lodash; npm busca lodash en las siguientes ubicaciones:

    • En la imagen de Docker que ejecuta la acción. No lo encuentra aquí.

    • En el repositorio de CodeCatalyst paquetes. Lo encuentra aquí.

    Cuando npm encuentra lodash, lo importa a la imagen de Docker que ejecuta la acción.

  • - Run: npm list

    Este comando imprime qué versión de lodash se ha descargado en la imagen de Docker que ejecuta la acción.

  • - Run: node index.js

    Este comando ejecuta la aplicación “Hola, mundo” mediante la dependencia especificada en el archivo package.json.

Como puede ver, la acción RunHelloWorldApp es una acción de creación, como lo indica el identificador aws/build@v1 situado cerca de la parte superior del flujo de trabajo. Para obtener más información sobre la acción de compilación, consulte Compilación con flujos de trabajo.

Usa las siguientes instrucciones para crear un flujo de trabajo que extraiga la lodash dependencia del repositorio de CodeCatalyst paquetes y, a continuación, ejecute la aplicación «Hello World».

Para crear un flujo de trabajo
  1. Cambie a la consola. CodeCatalyst

  2. En el panel de navegación, elija CI/CD y, a continuación, elija Flujos de trabajo.

  3. Seleccione Crear flujo de trabajo.

  4. En Repositorio de código fuente, elija hello-world-app.

  5. En Ramificación, elija main.

    El archivo de definición del flujo de trabajo se creará en el repositorio y la ramificación de origen elegidos.

  6. Seleccione Crear.

  7. Seleccione YAML cerca de la parte superior.

  8. Elimine el código de ejemplo de YAML.

  9. Añada el código de YAML siguiente:

    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

    En el código anterior, codecatalyst-package-repository sustitúyalo por el nombre del repositorio de CodeCatalyst paquetes en el que lo creastePaso 2: Cree los repositorios de paquetes CodeCatalyst y gateway.

    Para obtener información sobre las propiedades de este archivo, consulte el Acciones de compilación y prueba de YAML.

  10. (Opcional) Seleccione Validar para asegurarse de que el código de YAML del flujo de trabajo sea válido antes de confirmarlo.

  11. Elija Confirmar.

  12. En el cuadro de diálogo Confirmar flujo de trabajo, escriba lo siguiente:

    1. En Nombre del archivo de flujo de trabajo, deje el valor predeterminado, codecatalyst-package-workflow.

    2. En Mensaje de confirmación, escriba:

      add initial workflow file
    3. En Repositorio, elija hello-world-app.

    4. En Nombre de la ramificación, elija principal.

    5. Elija Confirmar.

    Ahora ha creado un flujo de trabajo.

Ejecución del flujo de trabajo
  1. Junto al flujo de trabajo que acaba de crear (codecatalyst-package-workflow), seleccione Acciones y, a continuación, Ejecutar.

    Se inicia una ejecución de flujo de trabajo.

  2. En la notificación verde de la parte superior, a la derecha, seleccione el enlace a la ejecución. El enlace tiene un aspecto similar a View Run-1234.

    Aparece un diagrama de flujo de trabajo que muestra quién inició la ejecución y la RunHelloWorldAppacción.

  3. Selecciona la casilla de RunHelloWorldAppacción para ver el progreso de la acción.

  4. Cuando termine la ejecución, vaya a Paso 5: verificación del flujo de trabajo.

Paso 5: verificación del flujo de trabajo

En este paso, comprobará que el flujo de trabajo haya ejecutado correctamente la aplicación “Hola, mundo” con su dependencia lodash.

Verificación de la ejecución de la aplicación “Hola, mundo” utilizando su dependencia
  1. En el diagrama de flujo de trabajo, selecciona la RunHelloWorldAppcasilla.

    Aparecerá una lista de mensajes de registro.

  2. Amplíe el mensaje de registro node index.js.

    Aparecerá el siguiente mensaje:

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

    La aparición de Hello Word (en lugar de hello-world) indica que la dependencia lodash se ha empleado correctamente.

  3. Amplíe el registro npm list.

    Aparecerá un mensaje similar al siguiente:

    └── lodash@4.17.20

    Este mensaje indica que la versión 4.17.20 de lodash se descargó en la imagen de Docker que ejecutaba la acción del flujo de trabajo.

Paso 6: bloqueo de las importaciones desde npmjs.com

Ahora que la lodash versión 4.17.20 está presente en tu gateway y en los repositorios de CodeCatalyst paquetes, puedes bloquear las importaciones de otras versiones. El bloqueo impide importar accidentalmente versiones posteriores (o anteriores) de lodash, que podrían contener código malicioso. Para obtener más información, consulte Edición de los controles de origen del paquete y Ataques de sustitución de dependencias.

Siga las instrucciones a continuación para bloquear las importaciones de lodash en el repositorio de puerta de enlace. Al bloquear los paquetes en la puerta de enlace, también se bloquean en las ubicaciones descendentes.

Bloqueo de las importaciones en el repositorio de puerta de enlace
  1. En el panel de navegación, elija Paquetes.

  2. Elija npm-publish-registry-gateway.

  3. Elija lodash.

  4. Cerca de la parte superior, seleccione Controles de origen.

  5. En Ascendente, seleccione Bloquear.

  6. Seleccione Guardar.

    Ahora, ha bloqueado las importaciones al repositorio de puerta de enlace (y a los repositorios y ordenadores descendentes) desde npmjs.com.

Paso 7: prueba de la característica de bloqueo

En esta sección, verificará el funcionamiento del bloqueo que configuró en Paso 6: bloqueo de las importaciones desde npmjs.com. Para empezar, configure “Hola, mundo” de tal modo que solicite la versión 4.17.21 de lodash en lugar de la que está disponible en el repositorio de puerta de enlace, que es la versión 4.17.20. A continuación, compruebe que la aplicación no pueda extraer la versión 4.17.21 de nmpjs.com, lo que indica que el bloqueo es correcto. Como prueba final, desbloquee las importaciones al repositorio de puerta de enlace y compruebe que la aplicación pueda extraer correctamente la versión 4.17.21 de lodash.

Utilice el siguiente conjunto de procedimientos para probar la característica de bloqueo.

Antes de empezar
  1. Cambie a su entorno de desarrollo.

  2. Extraiga el codecatalyst-package-workflow.yaml archivo que creó anteriormente con la CodeCatalyst consola:

    git pull
Configuración de “Hola, mundo” para solicitar la versión 4.17.21 de lodash
  1. Abra /hello-world-app/package.json.

  2. Cambie la lodash versión a la 4.17.21 como se muestra en: red bold

    { "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" } }

    Ahora hay una discrepancia entre la versión del package.json archivo (4.17.21) y la versión de los repositorios de CodeCatalyst paquetes y de la puerta de enlace (4.17.20).

  3. Añada, confirme y envíe:

    git add . git commit -m "update package.json to use lodash 4.17.21" git push
Comprobación de que “Hola, mundo” no puede extraer la versión 4.17.21 de lodash
  1. Ejecute el flujo de trabajo con la discrepancia de versiones:

    1. Cambie CodeCatalyst a la consola.

    2. En el panel de navegación, elija CI/CD y, a continuación, elija Flujos de trabajo.

    3. Junto a codecatalyst-package-workflow, seleccione Acciones y Ejecutar.

      npm busca las dependencias en package.json y ve que “Hola, mundo” necesita la versión 4.17.21 de lodash; npm busca la dependencia en las siguientes ubicaciones y en el siguiente orden:

      • En la imagen de Docker que ejecuta la acción. No lo encuentra aquí.

      • En el repositorio de CodeCatalyst paquetes. No lo encuentra aquí.

      • En el repositorio de puerta de enlace. No lo encuentra aquí.

      • En npmjs.com. Lo encuentra aquí.

      Cuando npm encuentra la versión 4.17.21 en npmjs.com, intenta importarla al repositorio de puerta de enlace, pero la importación no ocurre porque ha configurado la puerta de enlace para que bloquee las importaciones de lodash.

      Como no hay importación, se produce un error en el flujo de trabajo.

  2. Compruebe que ha habido un error en el flujo de trabajo:

    1. En la notificación verde de la parte superior, a la derecha, seleccione el enlace a la ejecución. El enlace tiene un aspecto similar a View Run-2345.

    2. En el diagrama de flujo de trabajo, seleccione la RunHelloWorldAppcasilla.

    3. Amplíe el mensaje de registro npm install.

      Aparecerá el siguiente mensaje:

      [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

      El error indica que no se ha encontrado la versión 4.17.21. Esto es de esperar porque la ha bloqueado.

Desbloqueo de las importaciones desde npmjs.com
  1. En el panel de navegación, elija Paquetes.

  2. Elija npm-publish-registry-gateway.

  3. Elija lodash.

  4. Cerca de la parte superior, seleccione Controles de origen.

  5. En Ascendente, seleccione Permitir.

  6. Seleccione Guardar.

    Ahora, ha desbloqueado las importaciones de lodash.

    Ahora, el flujo de trabajo puede importar la versión 4.17.21 de lodash.

Prueba de que las importaciones de npmjs.com se han desbloqueado
  1. Ejecute el flujo de trabajo de nuevo. Esta vez, el flujo de trabajo debería funcionar correctamente porque la importación de la versión 4.17.21 debería ocurrir. Para ejecutar el flujo de trabajo de nuevo:

    1. Elija CI/CD y, a continuación, elija Flujos de trabajo.

    2. Junto a codecatalyst-package-workflow, seleccione Acciones y Ejecutar.

    3. En la notificación verde de la parte superior, a la derecha, seleccione el enlace a la ejecución. El enlace tiene un aspecto similar a View Run-3456.

      Aparece un diagrama de flujo de trabajo que muestra quién inició la ejecución y la RunHelloWorldAppacción.

    4. Selecciona la casilla de RunHelloWorldAppacción para ver el progreso de la acción.

    5. Expanda el mensaje de registro de npm list y compruebe que haya un mensaje similar al siguiente:

      └── lodash@4.17.21

      Este mensaje indica que se ha descargado la versión 4.17.21 de lodash.

  2. Compruebe que la versión 4.17.21 se haya importado a sus repositorios CodeCatalyst y a los de Gateway:

    1. En el panel de navegación, elija Paquetes.

    2. Elija npm-public-registry-gateway.

    3. Busque lodash y asegúrese de que la versión sea 4.17.21.

      nota

      Aunque la versión 4.17.20 no aparezca en esta página, puede encontrarla seleccionando lodash y, a continuación, seleccionando Versiones en la parte superior.

    4. Repita estos pasos para comprobar que la versión 4.17.21 se haya importado en codecatalyst-package-repository.

Limpieza

Limpie los archivos y servicios utilizados en este tutorial para evitar que le cobren por ellos.

Limpieza de los paquetes del tutorial
  1. Elimine codecatalyst-package-project:

    1. En la CodeCatalyst consola, navegue hasta el codecatalyst-package-project proyecto si aún no está allí.

    2. En el panel de navegación, seleccione Configuración del proyecto.

    3. Elija Eliminar proyecto, introduzca delete y elija Eliminar proyecto.

      CodeCatalyst elimina todos los recursos del proyecto, incluidos los repositorios de código fuente, puerta de enlace y CodeCatalyst paquetes. También se elimina el entorno de desarrollo.

  2. Elimine el token (PAT):

    1. Elija el nombre de usuario, a la derecha y seleccione Mi configuración.

    2. En Tokens de acceso personal, seleccione el token que ha creado en este tutorial y, luego, elija Eliminar.

En este tutorial, aprendió a crear un flujo de trabajo que ejecute una aplicación que extraiga sus dependencias de un repositorio de paquetes. CodeCatalyst También aprendiste a bloquear y desbloquear paquetes para que no ingresen a tu puerta de enlace y a los repositorios de CodeCatalyst paquetes.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.