Guía de inicio rápido: Compila e implementa una app web de Next.js en Cloud Run
Aprende a usar un solo comando para compilar y, luego, implementar una aplicación web de “Hello World” a partir de un muestra de código en Google Cloudcon Cloud Run.
Si sigues los pasos de esta guía de inicio rápido, Cloud Run compilará automáticamente un Dockerfile por ti cuando realices la implementación desde el código fuente.
Para la integración automática en GitHub y las implementaciones optimizadas con CDN para apps de Next.js renderizadas por el servidor, considera usar Firebase App Hosting.
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
-
Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
-
Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
- A fin de configurar el proyecto predeterminado para tu servicio de Cloud Run, haz lo siguiente:
Reemplaza PROJECT_ID por el nombre del proyecto que creaste para esta guía de inicio rápido.gcloud config set project PROJECT_ID
- Si no tienes instalado Node.js 20 o una versión superior, instala Node.js.
Si estás bajo una política de la organización de restricción de dominios que restringe las invocaciones no autenticadas para tu proyecto, deberás acceder al servicio implementado como se describe en Prueba servicios privados.
-
Habilita las APIs de Cloud Run Admin y Cloud Build:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com Después de habilitar la API de Cloud Run Admin, se crea de forma automática la cuenta de servicio predeterminada de Compute Engine.
- Revisa los precios de Cloud Run o estima los costos con la calculadora de precios.
Roles obligatorios
Si quieres obtener los permisos que necesitas para completar esta guía de inicio rápido, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Administrador de Cloud Run (
roles/run.admin) en el proyecto -
Desarrollador de origen de Cloud Run (
roles/run.sourceDeveloper) en el proyecto -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la identidad del servicio -
Visualizador de registros (
roles/logging.viewer) en el proyecto
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Otorga acceso a tu proyecto a la cuenta de servicio de Cloud Build
Cloud Build usa automáticamente la cuenta de servicio predeterminada de Compute Engine como la cuenta de servicio predeterminada de Cloud Build para compilar tu código fuente y el recurso de Cloud Run, a menos que anules este comportamiento.
Para que Cloud Build compile tus fuentes, otorga a la cuenta de servicio de Cloud Build el rol de Cloud Run Builder (roles/run.builder) en tu proyecto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Reemplaza PROJECT_ID por tu ID del proyecto Google Cloudy SERVICE_ACCOUNT_EMAIL_ADDRESS por la dirección de correo electrónico de la cuenta de servicio de Cloud Build. Si usas la cuenta de servicio predeterminada de Compute Engine como la cuenta de servicio de Cloud Build, usa el siguiente formato para la dirección de correo electrónico de la cuenta de servicio:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Reemplaza PROJECT_NUMBER por el número
del proyecto de Google Cloud.
Para obtener instrucciones detalladas sobre cómo encontrar el ID y el número de tu proyecto, consulta Crea y administra proyectos.
El otorgamiento del rol de compilador de Cloud Run tarda un par de minutos en propagarse.
Escribe el servicio de muestra
Puedes implementar una app de Next.js existente en Cloud Run. Para crear e implementar un servicio de Next.js nuevo, sigue estos pasos:
Para crear un proyecto de Next.js nuevo llamado
helloworld, usa el siguiente comando:npx -y create-next-app@16 helloworld --yesSi se te solicita, presiona
Enterpara aceptar los valores predeterminados.Cambia el directorio a
helloworld:cd helloworld
La app está lista para implementarse.
Implementa en Cloud Run desde la fuente
La implementación desde la fuente compila automáticamente una imagen de contenedor a partir del código fuente y la implementa.
Para implementar desde la fuente, realiza estas acciones:
En el directorio del código fuente, implementa la carpeta actual con el siguiente comando:
gcloud run deploy --source .
Cuando se te solicite el nombre del servicio, presiona Intro para aceptar el nombre predeterminado, por ejemplo,
helloworld.Si se te solicita que habilites las APIs adicionales en el proyecto, por ejemplo, la API de Artifact Registry, presiona
ypara responder.Cuando se te solicite la región, selecciona la región que prefieras, por ejemplo,
europe-west1.Si se te solicita que crees un repositorio en la región especificada, presiona
ypara responder.Si se te solicita permitir acceso público, responde
y. Es posible que no veas este mensaje si hay una política de la organización de restricción de dominio que lo impida. Para obtener más información, consulta la sección Antes de comenzar.
Luego, espera un momento a que finalice la implementación. Si la operación se completa de forma correcta, la línea de comandos mostrará la URL de servicio.
Abre la URL de servicio en un navegador web para visitar el servicio implementado.
Ubicaciones de Cloud Run
Cloud Run es regional, lo que significa que la infraestructura que ejecuta los servicios se ubica en una región específica, y Google la administra para que esté disponible de manera redundante en todas las zonas de esa región.
El cumplimiento de los requisitos de latencia, disponibilidad o durabilidad es el factor principal para seleccionar la región en la que se ejecutan los servicios de Cloud Run.
Por lo general, puedes seleccionar la región más cercana a tus usuarios, pero debes considerar la ubicación de los otros productos Google Cloud que usa tu servicio de Cloud Run.
Si usas Google Cloud productos en varias ubicaciones, la latencia y el costo del servicio pueden verse afectados.
Cloud Run está disponible en las siguientes regiones:
Sujetas a los Precios del nivel 1
asia-east1(Taiwán)asia-northeast1(Tokio)asia-northeast2(Osaka)asia-south1(Bombay, India)asia-southeast3(Bangkok)europe-north1(Finlandia)Bajo nivel de CO2
europe-north2(Estocolmo)Bajo nivel de CO2
europe-southwest1(Madrid)Bajo nivel de CO2
europe-west1(Bélgica)Bajo nivel de CO2
europe-west4(Países Bajos)Bajo nivel de CO2
europe-west8(Milán)europe-west9(París)Bajo nivel de CO2
me-west1(Tel Aviv)northamerica-south1(México)us-central1(Iowa)Bajo nivel de CO2
us-east1(Carolina del Sur)us-east4(Virginia del Norte)us-east5(Columbus)us-south1(Dallas)Bajo nivel de CO2
us-west1(Oregón)Bajo nivel de CO2
Sujetas a los Precios del nivel 2
africa-south1(Johannesburgo)asia-east2(Hong Kong)asia-northeast3(Seúl, Corea del Sur)asia-southeast1(Singapur)asia-southeast2(Yakarta)asia-south2Delhi (India)australia-southeast1(Sídney)australia-southeast2(Melbourne)europe-central2(Varsovia, Polonia)europe-west10(Berlín)europe-west12(Turín)europe-west2(Londres, Reino Unido)Bajo nivel de CO2
europe-west3(Fráncfort, Alemania)europe-west6(Zúrich, Suiza)Bajo nivel de CO2
me-central1(Doha)me-central2(Dammam)northamerica-northeast1(Montreal)Bajo nivel de CO2
northamerica-northeast2(Toronto)Bajo nivel de CO2
southamerica-east1(São Paulo, Brasil)Bajo nivel de CO2
southamerica-west1(Santiago, Chile)Bajo nivel de CO2
us-west2(Los Ángeles)us-west3(Salt Lake City)us-west4(Las Vegas)
Si ya creaste un servicio de Cloud Run, puedes ver la región en el panel de Cloud Run en la consola.Google Cloud
Realiza una limpieza
Para evitar cargos adicionales en tu cuenta de Google Cloud , borra todos los recursos que implementaste con esta guía de inicio rápido.
Borra tu repositorio
Cloud Run no te cobra cuando el servicio implementado no está en uso. Sin embargo, es posible que se te cobre por almacenar la imagen del contenedor en Artifact Registry. Para borrar repositorios de Artifact Registry, sigue los pasos que se indican en Borra repositorios en la documentación de Artifact Registry.
Borra tu servicio
Los servicios de Cloud Run no generan costos hasta que reciben solicitudes. Para borrar tu servicio de Cloud Run, sigue uno de estos pasos:
Console
Para borrar un servicio, debes hacer lo siguiente:
En la consola de Google Cloud , ve a la página Servicios de Cloud Run:
Buscar el servicio que deseas borrar en la lista de servicios y hacer clic en su casilla de verificación para seleccionarlo
Haz clic en Borrar. Esta acción borra todas las revisiones del servicio
gcloud
Para borrar un servicio, ejecuta el siguiente comando:
gcloud run services delete SERVICE --region REGION
Reemplaza lo siguiente:
- SERVICE: Nombre de tu servicio.
- REGION: Google Cloud región del servicio.
Borra tu proyecto de prueba
Si borras tu proyecto de Google Cloud , se detendrá la facturación de todos los recursos que contenga. Para liberar todos los recursos Google Cloud de tu proyecto, sigue estos pasos:
Borra un Google Cloud proyecto:
gcloud projects delete PROJECT_ID
¿Qué sigue?
Para obtener más información sobre cómo compilar un contenedor a partir de código fuente y enviarlo a un repositorio, consulta los siguientes vínculos:
- Cómo desarrollar servicios de Cloud Run
- Compila contenedores
- Prueba un servicio de Cloud Run de forma local
- Implementa a partir del código fuente
Para la integración automática en GitHub y las implementaciones optimizadas con CDN para apps de Next.js renderizadas por el servidor, considera usar Firebase App Hosting.