GSP1076

Descripción general
Como la evolución de Container Registry, Artifact Registry permite a tu organización administrar imágenes de contenedor y paquetes de lenguajes (como Maven y npm) en un solo lugar. Está completamente integrado a las herramientas y entornos de ejecución de Google Cloud y, además, incluye compatibilidad para protocolos de artefactos nativos. Esto facilita la integración con las herramientas de CI/CD para configurar canalizaciones automatizadas.
En este lab, aprenderás sobre algunas de las funciones disponibles en Artifact Registry.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
- Crear repositorios para contenedores y paquetes de lenguajes
- Administrar imágenes de contenedor con Artifact Registry
- Integrar Artifact Registry con Cloud Code
- Configurar Maven y usar Artifact Registry para dependencias de Java
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
- Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón para abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debes usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haz clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
-
Haz clic en Activar Cloud Shell
en la parte superior de la consola de Google Cloud.
-
Haz clic para avanzar por las siguientes ventanas:
- Continúa en la ventana de información de Cloud Shell.
- Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
- Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud
, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
Debes esperar a que el lab se aprovisione antes de realizar cambios en el entorno. Apenas el lab indique que está listo, estarán disponibles las partes preconfiguradas del entorno con las que necesita trabajar.
Tarea 1: Prepara el entorno del lab
Configura variables
- Establece el ID y número del proyecto en Cloud Shell. Guárdalos como variables
PROJECT_ID
y PROJECT_NUMBER
:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export REGION={{{ project_0.default_region | "REGION" }}}
gcloud config set compute/region $REGION
Habilita los servicios de Google
- Ejecuta lo siguiente para habilitar los servicios de Google necesarios:
gcloud services enable \
cloudresourcemanager.googleapis.com \
container.googleapis.com \
artifactregistry.googleapis.com \
containerregistry.googleapis.com \
containerscanning.googleapis.com
Obtén el código fuente
El código fuente de este lab se encuentra en la organización GoogleCloudPlatform en GitHub.
- Clona el código fuente con el comando que aparece a continuación y, luego, cambia al directorio.
git clone https://github.com/GoogleCloudPlatform/cloud-code-samples/
cd ~/cloud-code-samples
Aprovisiona la infraestructura que se usa en este lab
En este lab, implementarás código en Kubernetes Engine (GKE).
- Ejecuta la siguiente secuencia de comandos de configuración para preparar esta infraestructura:
gcloud container clusters create container-dev-cluster --zone={{{ project_0.default_zone | "ZONE" }}}
Haz clic en Revisar mi progreso para verificar el objetivo.
Habilitar los servicios de Google y crear un clúster de GKE
Tarea 2: Trabaja con imágenes de contenedor
Crea un repositorio de Docker en Artifact Registry
Artifact Registry admite la administración de imágenes de contenedores y paquetes de lenguajes. Los diferentes tipos de artefactos requieren especificaciones diferentes. Por ejemplo, las solicitudes de dependencias de Maven son diferentes de las de Node.
Para admitir las diferentes especificaciones de la API, Artifact Registry necesita saber qué formato quieres que tengan las respuestas de la API. Para ello, crearás un repositorio y pasarás la marca --repository-format
, que indica el tipo de repositorio deseado.
- Desde Cloud Shell, ejecuta el siguiente comando para crear un repositorio de imágenes de Docker:
gcloud artifacts repositories create container-dev-repo --repository-format=docker \
--location=$REGION \
--description="Docker repository for Container Dev Workshop"
Haz clic en Autorizar si aparece la solicitud de autorización de Cloud Shell.
- En la consola de Cloud, ve a Artifact Registry > Repositorios y observa tu repositorio de Docker recién creado con el nombre
container-dev-repo
. Si le haces clic, verás que está vacío por el momento.
Haz clic en Revisar mi progreso para verificar el objetivo. (La validación puede tardar algo de tiempo. Si completaste la verificación correctamente y no se valida, espera un minuto y vuelve a intentarlo).
Trabajar con imágenes de contenedor
Configura la autenticación de Docker en Artifact Registry
Cuando te conectas a Artifact Registry, se requieren credenciales para proporcionar acceso. En lugar de establecer credenciales separadas, Docker puede configurarse para usar tus credenciales de gcloud
sin problemas.
- Desde Cloud Shell, ejecuta el siguiente comando para configurar Docker de modo que use Google Cloud CLI para autenticar solicitudes a Artifact Registry en la región :
gcloud auth configure-docker {{{ project_0.default_region | "Filled in at lab start" }}}-docker.pkg.dev
- El comando solicitará una confirmación para cambiar la configuración de Docker de Cloud Shell. Haz clic en INTRO.
Explora la aplicación de ejemplo
Se proporciona una aplicación de ejemplo en el repositorio de Git que clonaste.
- Cambia al directorio de Java y revisa el código de la aplicación:
cd ~/cloud-code-samples/java/java-hello-world
La carpeta tiene una aplicación de Java de ejemplo que renderiza una página web sencilla: además de varios archivos que no son relevantes para este lab específico, contiene el código fuente, en la carpeta src
y un Dockerfile que usarás para compilar una imagen de contenedor de forma local.
Compila la imagen del contenedor
Antes de poder almacenar imágenes de contenedor en Artifact Registry, debes crear una.
- Ejecuta el siguiente comando para compilar la imagen de contenedor y etiquetarla correctamente:
docker build -t {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-repo/java-hello-world:tag1 .
Envía la imagen del contenedor a Artifact Registry
- Ejecuta el siguiente comando para enviar la imagen del contenedor al repositorio que creaste:
docker push {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-repo/java-hello-world:tag1
Revisa la imagen en Artifact Registry
-
En Artifact Registry > Repositorios, haz clic en container-dev-repo
y verifica que la imagen java-hello-world
esté allí.
-
Haz clic en la imagen y ten en cuenta la presencia de la imagen etiquetada como tag1
. Puedes ver que el análisis de vulnerabilidades se está ejecutando o ya se completó, y se puede ver la cantidad de vulnerabilidades detectadas.

Haz clic en la cantidad de vulnerabilidades y verás la lista de vulnerabilidades detectadas en la imagen, con el nombre del boletín de CVE y la gravedad. Haz clic en VER para cada vulnerabilidad de la lista para obtener más detalles:

Tarea 3: Realiza la integración con Cloud Code
En esta sección, usarás el repositorio de imágenes de Docker de Artifact Registry con Cloud Code.
Implementa la aplicación en el clúster de GKE desde Cloud Code
- Desde la carpeta
java-hello-world
, ejecuta el siguiente comando para abrir el Editor de Cloud Shell y agregar la carpeta de la aplicación a este espacio de trabajo:
cd ~/cloud-code-samples/
cloudshell workspace .
Se abrirá el Editor de Cloud Shell con el explorador en la carpeta de la aplicación.
- En el menú de la izquierda, selecciona Cloud Code y, luego, expande la opción COMPUTE ENGINE, haz clic en Seleccionar un proyecto y elige el ID del proyecto proporcionado en las instrucciones del lab.

Además, expande la opción KUBERNETES. Podrás ver la carga del clúster.
Espera hasta que veas el clúster en KUBERNETES y en COMPUTE ENGINE.
- En los siguientes pasos, deberás ingresar la ubicación de tu repositorio de Artifact Registry. El formato de la ubicación es el siguiente:
{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-repo
Haz clic en Menú de navegación en el Editor de Cloud Shell
Ver > Paleta de comandos…, escribe Run on Kubernetes y selecciona Cloud Code: Run on Kubernetes.

-
Elige cloud-code-samples/java/java-hello-world/skaffold.yaml y, luego, dockerfile.
-
Si se te solicita un contexto, selecciona Sí para usar el contexto actual.
-
En la instrucción para el registro de imágenes, selecciona Ingresa la dirección de un repositorio de imágenes, coloca la dirección que encontraste abajo y presiona Intro.

{{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-repo
- Cuando usas Run on Kubernetes por primera vez, Cloud Code te solicita la ubicación del repositorio de imágenes de destino. Una vez que se proporciona, la URL del repositorio se almacena en el archivo
.vscode/launch.json
, que se crea en la carpeta de la aplicación.
En el panel de salida, verás que la compilación comienza para la imagen de la aplicación java-hello-world
y que la imagen se sube al repositorio de Artifact Registry configurado anteriormente.
- En Artifact Registry > Repositorios, haz clic en
container-dev-repo
y verifica que la imagen java-hello-world
esté allí. Presta atención a la nueva imagen etiquetada como latest
.
Revisa la aplicación implementada
- Vuelve al Editor de Cloud Shell. Cuando se complete la implementación, Skaffold o Cloud Code imprimirán la URL expuesta a la que se reenvió el servicio. Haz clic en el vínculo Seguir vínculo:

En la nueva ventana del navegador, verás la página de la app de Hello World.

Código de la aplicación de actualización
Ahora actualiza la aplicación para ver el cambio reflejado de inmediato en la implementación del clúster:
-
Abre HelloWorldController.java
haciendo clic en el menú de navegación en el Editor de Cloud Shell
Ver > Paleta de comandos… y, luego, haz clic en el retroceso y, a continuación, ingresa la ruta src/main/java/cloudcode/helloworld/web y haz clic en la opción que comienza con Hello…
-
Cambia el texto de la fila 20 de "It's running!" a "It's updated!". Deberías ver que el proceso de compilación y de implementación comienza de inmediato.
-
Al final de la implementación, haz clic de nuevo en la URL reenviada o actualiza la ventana del navegador con la aplicación para ver el cambio implementado:

- En la consola de Cloud, ve a Menú de navegación > Artifact Registry > Repositorios y haz clic en
container-dev-repo
para verificar que la imagen java-hello-world
esté allí y observa la nueva imagen.
Haz clic en Revisar mi progreso para verificar el objetivo.
Integración en Cloud Code
Tarea 4: Trabaja con paquetes de lenguajes
En esta sección, configurarás un repositorio de Java de Artifact Registry y subirás paquetes a él para aprovecharlos en diferentes aplicaciones.
Crea un repositorio de paquetes de Java
- Desde Cloud Shell, ejecuta el siguiente comando para crear un repositorio de artefactos de Java:
gcloud artifacts repositories create container-dev-java-repo \
--repository-format=maven \
--location={{{ project_0.default_region | "REGION" }}} \
--description="Java package repository for Container Dev Workshop"
-
Haz clic en Autorizar si aparece la solicitud de autorización de Cloud Shell.
-
En la consola de Cloud, ve a Artifact Registry > Repositorios y observa el repositorio de Maven recién creado con el nombre container-dev-java-repo
. Si le haces clic, verás que está vacío por el momento.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear un repositorio de paquetes de Java
Configura la autenticación en Artifact Repository
- Usa el siguiente comando para actualizar la ubicación conocida de las credenciales predeterminadas de la aplicación (ADC) con las credenciales de tu cuenta de usuario de modo que el auxiliar de credenciales de Artifact Registry pueda autenticarse con ellas al conectarse a los repositorios:
gcloud auth login --update-adc
Si se te solicita que te autentiques, haz lo siguiente:
- Elige Y.
- Pega el código en una ventana del navegador.
- Selecciona Acceder con Google y accede con las credenciales del lab.
- Copia el código de autenticación del navegador y pégalo en la consola para completar la autenticación.
Configura Maven para Artifact Registry
- Ejecuta el siguiente comando para imprimir la configuración del repositorio que deseas agregar a tu proyecto de Java:
gcloud artifacts print-settings mvn \
--repository=container-dev-java-repo \
--location={{{ project_0.default_region | "REGION" }}}
- Abre el archivo
pom.xml
en el Editor de Cloud Shell y agrega la configuración devuelta a las secciones correspondientes del archivo:
- Agrega la sección distributionManagement.
<distributionManagement>
<snapshotRepository>
<id>artifact-registry</id>
<url>artifactregistry://{{{ project_0.default_region | "REGION" }}}-maven.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-java-repo</url>
</snapshotRepository>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://{{{ project_0.default_region | "REGION" }}}-maven.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-java-repo</url>
</repository>
</distributionManagement>
- Agrega la sección repositories.
<repositories>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://{{{ project_0.default_region | "REGION" }}}-maven.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-java-repo</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
- Actualiza las extensiones en la sección Builds.
<extensions>
<extension>
<groupId>com.google.cloud.artifactregistry</groupId>
<artifactId>artifactregistry-maven-wagon</artifactId>
<version>2.1.0</version>
</extension>
</extensions>
Este es un ejemplo del archivo completo como referencia.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>hello-world</artifactId>
<packaging>jar</packaging>
<name>Cloud Code Hello World</name>
<description>Getting started with Cloud Code</description>
<version>1.0.0</version>
<distributionManagement>
<snapshotRepository>
<id>artifact-registry</id>
<url>artifactregistry://{{{ project_0.default_region | "REGION" }}}-maven.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-java-repo</url>
</snapshotRepository>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://{{{ project_0.default_region | "REGION" }}}-maven.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-java-repo</url>
</repository>
</distributionManagement>
<repositories>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://{{{ project_0.default_region | "REGION" }}}-maven.pkg.dev/{{{ project_0.project_id | "PROJECT_ID" }}}/container-dev-java-repo</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
</parent>
<properties>
<java.version>1.8</java.version>
<checkstyle.config.location>./checkstyle.xml</checkstyle.config.location>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>com.google.cloud.artifactregistry</groupId>
<artifactId>artifactregistry-maven-wagon</artifactId>
<version>2.1.0</version>
</extension>
</extensions>
</build>
<!-- The Spring Cloud GCP BOM will manage spring-cloud-gcp version numbers for you. -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-dependencies</artifactId>
<version>1.2.8.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-logging</artifactId>
</dependency>
</dependencies>
</project>
Sube tu paquete de Java a Artifact Registry
Con Artifact Registry configurado en Maven, ahora puedes usar Artifact Registry para almacenar archivos JAR de Java y usarlos en otros proyectos de tu organización.
- Ingresa el siguiente comando para cambiar a la carpeta
java-hello-world
.
cd ~/cloud-code-samples/java/java-hello-world
- Ejecuta el siguiente comando para subir tu paquete de Java a Artifact Registry:
mvn deploy
Verifica el paquete de Java en Artifact Registry
En la consola de Cloud, ve a Artifact Registry > Repositorios y haz clic en container-dev-java-repo
para verificar que el artefacto binario hello-world
esté allí:

¡Felicitaciones!
En este lab, aprendiste sobre algunas de las funciones disponibles en Artifact Registry. Primero, creaste repositorios para contenedores y paquetes de lenguajes. Luego, administraste imágenes de contenedor con Artifact Registry y lo integraste con Cloud Code. Por último, configuraste Maven para usar Artifact Registry como repositorio de dependencias Java. Ahora tienes conocimientos sólidos de las funciones disponibles en Artifact Registry.
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 9 de mayo de 2024
Prueba más reciente del lab: 9 de mayo de 2025
Copyright 2025 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.