ID de región
REGION_ID es un código abreviado que Google asigna en función de la región que eliges cuando creas la app. El código no corresponde a un país ni a una provincia, aunque algunos ID de región puedan parecer similares a los códigos de país y provincia que se suelen usar. En el caso de las apps creadas después de febrero de 2020, REGION_ID.r se incluye en las URL de App Engine. En el caso de las apps existentes creadas antes de esta fecha, el ID de región es opcional en la URL.
Obtén más información acerca de los ID de región.
En esta guía, se describe cómo implementar tus apps en el entorno estándar en Cloud Run con Google Cloud CLI. Las instrucciones se aplican a los entornos de ejecución de segunda generación que no usan los servicios agrupados heredados de App Engine.
Cloud Run usa gran parte de la misma infraestructura que el entorno estándar de App Engine, lo que genera muchas similitudes entre las plataformas. Para obtener más información sobre las similitudes y diferencias entre App Engine y Cloud Run, incluidos los beneficios de migrar a Cloud Run, consulta el resumen de comparación.
Para realizar la implementación en Cloud Run con el comando gcloud beta app migrate, elige una de las siguientes estrategias:
Usa el archivo
app.yamlpara implementar un servicio en Cloud Run con tu configuración existente de App Engine.Implementa una aplicación existente de App Engine directamente en Cloud Run.
Antes de comenzar
Asegúrate de tener acceso al código fuente de App Engine y de que tu aplicación de App Engine se ejecute sin errores.
Habilita la API de Cloud Run Admin y la API de Artifact Registry:
Configura tu proyecto y región con el siguiente comando:
gcloud auth login gcloud config set project PROJECT_ID gcloud config set run/region REGION gcloud components updateReemplaza lo siguiente:
- PROJECT_ID por el ID de tu proyecto de Google Cloud .
- REGION con tu región.
Revisa las funciones incompatibles en tu aplicación y quítalas antes de migrar a Cloud Run. Si hay funciones incompatibles en tu aplicación existente, el proceso de migración se detendrá y se enumerarán las incompatibilidades.
Revisa las siguientes diferencias de Cloud Run:
Cloud Run usa el término
Revision, en lugar deVersion, para representar cada vez que implementas cambios en un servicio específico. Cuando implementas tu app en un servicio en Cloud Run por primera vez, se crea su primera revisión. Cada implementación posterior de un servicio crea otra revisión. Obtén más información sobre la implementación en Cloud Run.Puedes implementar tu código fuente en Cloud Run con gcloud CLI o la Google Cloud consola para configurar y administrar la configuración de tu app. Cloud Run no requiere configuración basada en archivos. Sin embargo, se admite la configuración de YAML.
Cada servicio que implementas en Cloud Run usa el dominio
run.appen la URL para acceder al servicio públicamente.A diferencia de los servicios de App Engine que son públicos de forma predeterminada, los servicios de Cloud Run son privados de forma predeterminada y requieren que los configures para el acceso público (no autenticado).
Roles obligatorios
Puedes elegir crear una cuenta de servicio nueva o usar la misma cuenta de servicio administrada por el usuario en Cloud Run que usas en App Engine. 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 pueda compilar 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 lasGoogle Cloud APIs, 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 los permisos de implementación y cómo administrar el acceso.
Usa el archivo app.yaml
Ejecuta el siguiente comando para traducir tu archivo app.yaml de App Engine a un servicio de Cloud Run:
gcloud beta app migrate-to-run --appyaml=PATH --entrypoint=ENTRYPOINT
Reemplaza lo siguiente:
- PATH con la ruta de acceso a tu archivo
app.yaml. - ENTRYPOINT con el comando de punto de entrada para tu aplicación.
Si estás en el directorio del proyecto, ambos argumentos PATH y ENTRYPOINT son opcionales.
Para obtener más información sobre los argumentos que puedes usar con el comando gcloud beta app migrate-to-run, consulta gcloud beta app migrate-to-run.
Implementa una aplicación existente de App Engine
Ejecuta el siguiente comando para implementar una app existente de App Engine directamente en Cloud Run:
gcloud beta app migrate-to-run --service=SERVICE --version=VERSION --entrypoint=ENTRYPOINT
Este comando te solicita que especifiques la ruta de acceso relativa a tu directorio de código fuente.
Reemplaza lo siguiente:
- SERVICE por el nombre de tu servicio de App Engine.
- VERSION con el ID de la versión de tu servicio.
- ENTRYPOINT con el comando de punto de entrada para tu aplicación. Si te encuentras en el directorio del proyecto, este argumento es opcional.
Para obtener más información sobre los argumentos que puedes usar con el comando gcloud beta app migrate, consulta gcloud beta app migrate-to-run.
Funciones incompatibles
El comando de migración falla si tu archivo app.yaml contiene alguna de las siguientes configuraciones no admitidas:
Servicios de entrada:
inbound_services: - warmupPáginas de error personalizadas:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.htmlServicios agrupados en paquetes para entornos de ejecución de segunda generación:
app_engine_apis: trueVariables de entorno de compilación:
build_env_variables: Foo: BarEntornos de ejecución de primera generación:
runtime: python27
¿Qué sigue?
- Obtén información sobre cómo administrar tus servicios de Cloud Run.
- Consulta el contrato del entorno de ejecución de contenedores de Cloud Run para comprender los requisitos y el comportamiento de los contenedores en Cloud Run.
- Obtén información para almacenar las dependencias de tu servicio que requieren claves de API, contraseñas o cualquier otra información sensible con Secret Manager.