En esta página se describe cómo especificar el entorno de ejecución de las instancias de Cloud Run. De forma predeterminada, los servicios de Cloud Run no tienen especificado un entorno de ejecución, lo que significa que Cloud Run selecciona el entorno de ejecución en función de las funciones utilizadas. Si no especificas un entorno de ejecución para tu servicio, Cloud Run puede seleccionar el entorno de primera o de segunda generación.
Ten en cuenta que los trabajos de Cloud Run solo usan el entorno de ejecución de segunda generación y que no se puede cambiar.
Consulta la documentación sobre el concepto de entornos de ejecución para obtener ayuda a la hora de elegir el entorno que mejor se adapte a tu servicio.
Roles obligatorios
Para obtener los permisos que necesitas para configurar e implementar servicios de Cloud Run, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Desarrollador de Cloud Run (
roles/run.developer
) en el servicio Cloud Run -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad de servicio
Si vas a desplegar un servicio o una función a partir de código fuente, también debes tener otros roles concedidos en tu proyecto y en la cuenta de servicio de Cloud Build.
Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu servicio de Cloud Run interactúa con APIs, como las bibliotecas de cliente de Cloud, consulta la guía de configuración de la identidad del servicio.Google Cloud Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.
Definir y actualizar el entorno de ejecución
Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.
El valor predeterminado de los servicios de Cloud Run es sin especificar, lo que significa que Cloud Run selecciona un entorno de ejecución adecuado. También puedes especificar un entorno de ejecución. Para usar la segunda generación, debes especificar al menos 512 MiB de memoria.
Puedes definir el entorno de ejecución mediante la Google Cloud consola, la línea de comandos gcloud o un archivo YAML cuando creas un servicio o desplegas una revisión:
Consola
En la Google Cloud consola, ve a Cloud Run:
Seleccione Servicios en el menú y haga clic en Implementar contenedor para configurar un nuevo servicio. Si vas a configurar un servicio que ya tienes, haz clic en él y, a continuación, en Editar y desplegar nueva revisión.
Si vas a configurar un servicio nuevo, rellena la página de configuración inicial del servicio y, a continuación, haz clic en Contenedores, volúmenes, redes y seguridad para desplegar la página de configuración del servicio.
Haz clic en la pestaña Contenedor.
- Selecciona el entorno de ejecución que quieras con los botones de opción. Mantén la opción "Predeterminado" para que Cloud Run seleccione un entorno de ejecución adecuado.
Haz clic en Crear o en Implementar.
gcloud
Puedes actualizar el entorno de ejecución de un servicio determinado con el siguiente comando:
gcloud run services update SERVICE --execution-environment ENVIRONMENT
Sustituye SERVICE por el nombre de tu servicio y ENVIRONMENT por el entorno de ejecución que quieras. Especifica el valor gen1
para la primera generación o gen2
para la segunda.
También puedes definir el entorno de ejecución durante la implementación con el siguiente comando:
gcloud run deploy --image IMAGE_URL --execution-environment ENVIRONMENT
Haz los cambios siguientes:
- IMAGE_URL: una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. ENVIRONMENT
: el entorno de ejecución que quieras. Especifica el valorgen1
para la primera generación ogen2
para la segunda.
YAML
Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Configura la anotación
run.googleapis.com/execution-environment
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/execution-environment: ENVIRONMENT
Haz los cambios siguientes:
- SERVICE: el nombre de tu servicio de Cloud Run.
- ENVIRONMENT: el entorno de ejecución seleccionado.
Especifica el valor
gen1
para la primera generación ogen2
para la segunda.
Elimina la anotación
run.googleapis.com/execution-environment
del comportamiento predeterminado.Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a un recursogoogle_cloud_run_v2_service
en tu configuración de Terraform:resource "google_cloud_run_v2_service" "default" {
name = "cloudrun-service-execution-environment"
location = "REGION"
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
execution_environment = "ENVIRONMENT"
}
}
Haz los cambios siguientes:
- REGION: la Google Cloud región. Por ejemplo,
europe-west1
. - ENVIRONMENT:
EXECUTION_ENVIRONMENT_GEN1
para la primera generación oEXECUTION_ENVIRONMENT_GEN2
para la segunda.
Ver la configuración de Entorno de ejecución
Para ver la configuración actual del entorno de ejecución de tu servicio de Cloud Run, haz lo siguiente:
Consola
En la Google Cloud consola, ve a Cloud Run:
Haz clic en el servicio que te interese para abrir la página Detalles del servicio.
Haz clic en la pestaña Revisiones.
En el panel de detalles de la derecha, el ajuste Entorno de ejecución se encuentra en la pestaña Contenedor.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busca el ajuste Execution environment en la configuración devuelta.