Crea y administra instancias de Cloud Run

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-west1
  • us-central1
  • us-east1

Antes de comenzar

  1. Configura un proyecto nuevo para Cloud Run, como se describe en la página de configuración.

  2. Habilita la API de Cloud Run Admin:

    gcloud services enable run.googleapis.com
    
  3. Actualiza los componentes de gcloud a la versión más reciente:

    gcloud components update
  4. 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:

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 contenedor
  • PORT: 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?