En esta página, se describe cómo crear y administrar instancias singleton de Cloud Run que se pueden direccionar de forma individual. A diferencia de los servicios de Cloud Run, que se ajustan según el tráfico entrante, una instancia es un contenedor de procesamiento dedicado que se administra de forma manual con transiciones de ciclo de vida (crear, detener, iniciar, actualizar y borrar).
Regiones admitidas
Las instancias de Cloud Run se pueden crear en cualquiera de las regiones admitidas, excepto en las siguientes:
europe-west1us-central1us-east1
Antes de comenzar
Configura un proyecto nuevo para Cloud Run, como se describe en la página de configuración.
Habilita la API de Cloud Run Admin:
gcloud services enable run.googleapis.comActualiza los componentes de
gclouda la versión más reciente:gcloud components update
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.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y, luego, implementar las instancias de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Desarrollador de Cloud Run (
roles/run.developer) en la instancia de Cloud Run - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la identidad del servicio
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 instancia 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.
Crea una instancia
Puedes implementar una imagen de contenedor para crear una instancia nueva. Si no proporcionas un nombre, se generará uno automáticamente.
gcloud
Para crear una instancia de Cloud Run nueva con el comando gcloud beta run instances create, haz lo siguiente:
gcloud beta run instances create INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
Para crear una instancia de Cloud Run nueva con el comando gcloud beta run instances deploy, haz lo siguiente:
gcloud beta run instances deploy INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
Reemplaza lo siguiente:
INSTANCE_NAME: Es el nombre de la instancia que crearás. El nombre de la instancia debe ser único en tu proyecto y región. No puedes crear una instancia con el mismo nombre que una instancia o un servicio de Cloud Run existentes.IMAGE_URL: Una referencia a la imagen del contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/instances:latest.REGION: La región Google Cloud en la que ejecutas tu instancia, por ejemplo,europe-west1.
Bibliotecas cliente
Para crear una instancia nueva desde el código, haz lo siguiente:
API de REST
Para crear una instancia nueva de Cloud Run, envía una solicitud HTTP POST al extremo instances.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "containers": [{ "image": "IMAGE_URL", "ports": [{"containerPort": PORT}] }], "ingress": "INGRESS_TRAFFIC_ALL", "invokerIamDisabled": true, "timeout": "3600s" }' \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances?instance_id=INSTANCE_NAME"
Reemplaza lo siguiente:
IMAGE_URL: La URL de tu imagen de contenedorPORT: El puerto en el que escucha tu contenedor.PROJECT_ID: Es el ID del proyecto de Google Cloud .REGION: La Google Cloud región de tu implementación.INSTANCE_NAME: Es el nombre de tu instancia nueva.
Después de crear una instancia, esta recibe una URL de Cloud Run con el siguiente formato:
https://INSTANCE_NAME-PROJECT_NUMBER.REGION.run.app
Actualizar una instancia
Cuando actualizas una instancia, como su imagen de contenedor, puerto o variables de entorno, la instancia se reinicia.
gcloud
Para actualizar una instancia de Cloud Run con el comando gcloud beta run instances update, haz lo siguiente:
gcloud beta run instances update INSTANCE_NAME \ --image NEW_IMAGE_URL \ --region REGION
Para actualizar una instancia de Cloud Run con el comando gcloud beta run instances deploy, haz lo siguiente:
gcloud beta run instances deploy INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
API de REST
Para actualizar la configuración de una instancia de Cloud Run desde la API, envía una solicitud HTTP PATCH al extremo URI de la instancia.
curl -H "Content-Type: application/json" \ -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"
Detener una instancia
Usa el comando o método de detención para detener una instancia de Cloud Run en ejecución.
gcloud
Para detener una instancia, sigue estos pasos:
gcloud beta run instances stop INSTANCE_NAME \ --region REGION
Bibliotecas cliente
Para detener una instancia en ejecución desde el código, sigue estos pasos:
API de REST
Para detener una instancia, envía una solicitud HTTP POST con el decorador :stop:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:stop"
Inicia o reinicia una instancia
Usa el comando o método de inicio para iniciar una instancia detenida o forzar un reinicio en una instancia existente.
gcloud
Para iniciar o reiniciar una instancia, haz lo siguiente:
gcloud beta run instances start INSTANCE_NAME \ --region REGION
Bibliotecas cliente
Para iniciar una instancia detenida desde el código, haz lo siguiente:
API de REST
Para iniciar una instancia, envía una solicitud HTTP POST con el decorador :start:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:start"
Visualiza la lista de instancias en tu proyecto
Puedes ver todas las instancias activas e inactivas de tu proyecto.
gcloud
Para enumerar las instancias en una región específica, haz lo siguiente:
gcloud beta run instances list \ --region REGION
Reemplaza REGION por la Google Cloud región
en la que ejecutas tu instancia.
Bibliotecas cliente
Para enumerar las instancias activas e inactivas desde el código, haz lo siguiente:
API de REST
Para recuperar una lista de instancias, envía una solicitud HTTP GET:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances"
Ve los detalles de la instancia
Usa el comando o el método describe para ver los detalles de la configuración y el estado actual.
gcloud
Para describir una instancia, haz lo siguiente:
gcloud beta run instances describe INSTANCE_NAME \ --region REGION
Bibliotecas cliente
Para ver los detalles y el estado de la configuración de la instancia desde el código, haz lo siguiente:
API de REST
Para describir una instancia, envía una solicitud HTTP GET:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"
Borrar una instancia
Borra una instancia para quitar de forma permanente su configuración, metadatos, asignación de URL directa pública y roles de identidad de tu proyecto.
gcloud
Para borrar una instancia, haz lo siguiente:
gcloud beta run instances delete INSTANCE_NAME \ --region REGION
Bibliotecas cliente
Para borrar una instancia del código, sigue estos pasos:
API de REST
Para borrar una instancia, envía una solicitud DELETE HTTP:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"
¿Qué sigue?
- Para ver las transacciones de registro de tus instancias, consulta Registro y visualización de registros en Cloud Run.
- Configura tu instancia de Cloud Run: