En esta página, se describe cómo implementar un servicio nuevo o una revisión del servicio en Cloud Run directamente desde el código fuente con un solo comando de gcloud CLI, gcloud run deploy
, con la marca --source
. Para ver una explicación de ejemplo de cómo implementar un servicio de Hello World, consulta Implementa desde guías de inicio rápido de origen.
Este comando usa los paquetes de compilación de Google Cloud y Cloud Build en segundo plano para compilar automáticamente imágenes de contenedor a partir del código fuente sin tener que instalar Docker en tu máquina ni configurar los paquetes de compilación o Cloud Build. De forma predeterminada, Cloud Run usa el tipo de máquina predeterminado que proporciona Cloud Build.
Ejecutar gcloud run deploy --source
elimina la necesidad de ejecutar también el comando gcloud builds submit
.
Ten en cuenta que las implementaciones de origen usan Artifact Registry para almacenar contenedores compilados. Si tu proyecto aún no tiene un repositorio de Artifact Registry con el nombre cloud-run-source-deploy
en la región en la que realizas la implementación, esta función crea de forma automática un repositorio de Artifact Registry con el nombre cloud-run-source-deploy
.
Si hay un Dockerfile en el directorio del código fuente, el código fuente subido se compila con ese Dockerfile. Si no hay ningún Dockerfile en el directorio del código fuente, los paquetes de compilación de Google Cloud detectan automáticamente el idioma que estás usando y recuperan las dependencias del código para crear una imagen de contenedor lista para la producción con una imagen base segura administrada por Google.
De forma predeterminada, las correcciones de seguridad solo se aplican cuando se implementa el servicio de Cloud Run. Cuando habilitas las actualizaciones de seguridad automáticas para un servicio, este recibe parches automáticamente sin tiempo de inactividad. Obtén más información para configurar las actualizaciones de seguridad.Idiomas compatibles
Además de las fuentes con un Dockerfile, la implementación desde el origen admite los siguientes lenguajes con los paquetes de compilación de Google Cloud:
Entorno de ejecución | Implementación de la fuente | Configuración del paquete de compilación |
---|---|---|
Go | Implementa un servicio de Go | Configura los buildpacks de Go |
Node.js | Implementa un servicio de Node.js | Configura paquetes de compilación de Node.js |
Python | Implementa un servicio de Python | Configura buildpacks de Python |
Java (incluye Kotlin, Groovy y Scala) |
Implementa un servicio de Java | Configura buildpacks de Java |
.NET | Implementa un servicio de .NET | Configura los paquetes de compilación de .NET |
Ruby | Implementa un servicio de Ruby | Cómo configurar buildpacks de Ruby |
PHP | Implementa un servicio de PHP | Configura buildpacks de PHP |
Limitaciones de esta función
- La implementación desde la fuente usa Artifact Registry y Cloud Build, por lo que esta función solo está disponible en las regiones compatibles con Artifact Registry y Cloud Build.
- La implementación desde el código fuente es una función práctica y no permite la personalización completa de la compilación. Para obtener más control, compila la imagen del contenedor con Cloud Build, por ejemplo, con
gcloud builds submit
y, luego, implementa la imagen del contenedor con, por ejemplo,gcloud run deploy --image
. - La implementación desde la fuente con los paquetes de compilación de Google Cloud establece la última fecha de modificación de los archivos de origen en el 1 de enero de 1980. Este es el comportamiento predeterminado de los paquetes de compilación y está diseñado para admitir compilaciones reproducibles. Según el framework del idioma, esto puede afectar el almacenamiento en caché del archivo estático del navegador. Si tu aplicación se ve afectada, Google recomienda inhabilitar los encabezados HTTP
etag
yLast-Modified
en tu aplicación. - La implementación desde el origen con los paquetes de compilación de Google Cloud siempre usa
gcr.io/buildpacks/builder:latest
. Si tu lenguaje o configuración del SO preferido no están disponibles enlatest
, usa un compilador específico para crear una imagen de la aplicación con tu compilador preferido. Puedes implementar tu servicio desde la fuente con Kotlin y otros lenguajes de JVM, como Java. El idioma que uses debe cumplir con las siguientes reglas:
- Puedes compilar la aplicación a través de Maven o Gradle.
- El archivo de compilación contiene todos los complementos necesarios para las clases de productos.
Antes de comenzar
- Asegúrate de haber configurado un proyecto nuevo para Cloud Run, como se describe en la página de configuración.
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.
-
Enable the Cloud Run Admin API and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.Después de habilitar la API de Cloud Run Admin, se crea de forma automática la cuenta de servicio predeterminada de Compute Engine.
Roles requeridos
Tú o tu administrador deben otorgar los siguientes roles de IAM a la cuenta del implementador y a la cuenta de servicio de Cloud Build.
Haz clic para ver los roles necesarios para la cuenta del implementador
Para obtener los permisos que necesitas para compilar e implementar desde la fuente, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Desarrollador de origen de Cloud Run (
roles/run.sourceDeveloper
) en tu proyecto - Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer
) en tu proyecto - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad del servicio de Cloud Run
Haz clic para ver los roles necesarios para 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, pídele a tu administrador que otorgue el rol de Compilador de Cloud Run (roles/run.builder
) a la cuenta de servicio predeterminada de Compute Engine en tu proyecto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Reemplaza PROJECT_NUMBER
por el número de tu proyecto Google Cloudy PROJECT_ID
por el ID del proyecto proyecto 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 a la cuenta de servicio predeterminada de Compute Engine tarda un par de minutos en propagarse.
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu servicio de Cloud Run interactúa con las APIs deGoogle Cloud , como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta permisos de implementación y administra el acceso.
Implementa desde la fuente
Para realizar la implementación desde el código fuente, haz clic en la pestaña para obtener instrucciones sobre cómo usar la herramienta que elijas.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Cambia al directorio del código fuente. El directorio del código fuente usa un Dockerfile si está presente, aunque no es obligatorio.
Compila e implementa tu servicio:
gcloud run deploy SERVICE --source .
Reemplaza
SERVICE
por el nombre que deseas usar para el servicio.De manera opcional, si tu código fuente usa uno de los entornos de ejecución de lenguajes compatibles y quieres configurar actualizaciones automáticas de imágenes base para tu entorno de ejecución, especifica la marca
--automatic-updates
y la marca--base-image
con la imagen base para tu servicio, por ejemplo,nodejs22
.Responde a cualquier solicitud para instalar las API obligatorias. Para ello, responde
y
cuando se te solicite. Solo debes hacer esto una vez en un proyecto. Para responder a otras solicitudes, suministra la plataforma y la región si no configuraste los valores predeterminados de estas como se describe en la página de configuración.Espera a que se completen la compilación y la implementación. Cuando finalice, Cloud Run mostrará un mensaje de éxito.
Instala la versión más reciente de la CLI de Gemini en uno de los siguientes entornos de desarrollo:
- Terminal
- Cloud Shell
- VS Code con el modo de agente de Gemini Code Assist (consulta la pestaña "VS Code")
Instala la extensión de Cloud Run:
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
Accede a Google Cloud CLI:
gcloud auth login
Configura las credenciales predeterminadas de la aplicación:
gcloud auth application-default login
Cambia al directorio del código fuente.
Inicia Gemini CLI:
gemini
Compila e implementa tu servicio:
/deploy
- Si se te solicita que proporciones el proyecto Google Cloud , ingresa el nombre de tu proyecto.
- Si se te solicita que selecciones una herramienta, elige
deploy_local_folder
.
Espera a que se completen la compilación y la implementación. Cuando finalice, Cloud Run mostrará un mensaje de éxito.
Después de la implementación, esta revisión del servicio entrega el 100% del tráfico.
Cloud Code
Para realizar la implementación desde la fuente con Cloud Code, consulta las guías de IntelliJ y Visual Studio Code.
CLI de Gemini
Usa el comando /deploy
en la herramienta de CLI de Gemini para implementar un servicio de Cloud Run desde el código fuente.
Para usar la CLI de Gemini con la extensión del servidor del Protocolo de contexto del modelo (MCP) de Cloud Run, sigue estos pasos:
VS Code
Para implementar un servicio de Cloud Run desde el código fuente con el modo de agente de Gemini Code Assist en VS Code, consulta cómo usar el comando /deploy
.
Para que el servidor del Protocolo de contexto del modelo (MCP) de Cloud Run esté disponible para su uso en el modo de agente de Gemini Code Assist, agrega la siguiente configuración en tu archivo JSON de configuración de Gemini:
"mcpServers":{ "cloud-run": { "command": "npx", "args": ["-y", "@google-cloud/cloud-run-mcp"] } }
Automatiza la compilación a partir del código fuente
Para evitar cambios sin versión en una fuente local, Google recomienda que implementes automáticamente cuando los cambios se envíen a tu repositorio de Git. Para facilitar esto, puedes conectar la implementación continua a tu servicio de Cloud Run y configurarla. Si conectas tus repositorios de GitHub a Cloud Run, puedes configurar compilaciones y, luego, implementar tus repositorios sin tener que escribir Dockerfiles o archivos de compilación.
Para configurar compilaciones automatizadas, configura la automatización como se describe en la página de compilaciones continuas, y asegúrate de elegir la opción para compilar fuentes con buildpacks.¿Qué sigue?
Después de implementar un servicio de Cloud Run, puedes hacer lo siguiente:
- Lanzamientos graduales, revisiones de reversión, migración de tráfico
- Visualizar registros de servicio
- Supervisar el rendimiento del servicio
- Establecer límites de memoria
- Configurar las variables de entorno
- Cambiar la simultaneidad del servicio
- Administrar el servicio
- Administra revisiones de servicios
Obtén más información sobre las opciones de configuración de la implementación de origen:
- Actualizaciones automáticas de imágenes base
- Variables de entorno de compilación
- Crea la cuenta de servicio
- Crea grupos de trabajadores
Puedes automatizar las implementaciones y compilaciones de los servicios de Cloud Run con los activadores de Cloud Build: