Gestionar servicios de Cloud Run

En esta página se describe cómo crear un servicio y ver información sobre él.

Cada servicio tiene una URL run.app única y permanente que no cambiará con el tiempo a medida que implementes nuevas revisiones. Las funciones implementadas en Cloud Run también se tratan como un servicio y se les asigna una dirección run.app. El dominio permanente del servicio consta del nombre del servicio y un hash.

Roles obligatorios

Para obtener los permisos que necesitas para gestionar servicios y revisiones de Cloud Run, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Desarrollador de Cloud Run (roles/run.developer) en tu servicio de Cloud Run.

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.

Crear un servicio

Para crear un servicio, debes desplegar una imagen de contenedor en él por primera vez. En Desplegar un servicio nuevo encontrarás más instrucciones.

Ver la lista de servicios de tu proyecto

Puedes ver una lista de los servicios disponibles en tu proyecto mediante laGoogle Cloud consola o la línea de comandos de gcloud:

Consola

Para ver la lista de servicios, sigue estos pasos:

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Consulta la lista de servicios que se muestra en tu proyecto:

    lista de servicios

gcloud

Para enumerar los servicios de tu proyecto, sigue estos pasos:

gcloud run services list

Ten en cuenta que cada servicio tiene una URL asociada.

Puedes filtrar esta lista por propiedades de la definición del servicio, como una etiqueta asignada.

Cloud Code

Para ver la lista de servicios con Cloud Code, consulta las guías del explorador de Cloud Run para IntelliJ y Visual Studio Code.

Bibliotecas de cliente

Para ver la lista de servicios desde el código, haz lo siguiente:

API REST

Para ver la lista de servicios de tu proyecto, envía una solicitud HTTP GET al endpoint service de la API Admin de Cloud Run.

Por ejemplo, si usas curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X GET \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services

Sustituye:

Ver la lista de funciones de un proyecto

Puedes ver una lista de las funciones disponibles en tu proyecto mediante laGoogle Cloud consola:

Consola

Para filtrar las funciones de tu lista de servicios, sigue estos pasos:

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Consulta la lista de servicios que se muestra en tu proyecto:

    lista de servicios

  3. Selecciona Filtrar servicios > Tipo de implementación > Función.

    Si has desplegado tu función anteriormente con la API Cloud Functions v2, en la columna Desplegado por se mostrará Cloud Functions.

Copiar un servicio

Puedes hacer una copia de un servicio que ya tengas con la consola de Google Cloud o con YAML. Puedes cambiar lo que quieras de la copia, como el nombre y la región.

Consola

Para copiar un servicio, sigue estos pasos:

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Selecciona el servicio del que quieras copiar de la lista de servicios de tu proyecto:

    lista de servicios

    1. Haz clic en Copiar.

    2. En la página de copia del servicio, define o cambia los valores que quieras modificar, como la región, etc. Si vas a mantener la misma región, debes proporcionar un nombre nuevo para el servicio.

    3. Haz clic en Crear para hacer una copia e implementarla con el nuevo nombre de servicio.

YAML

  1. 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
  2. Haz los cambios de configuración que quieras en el servicio.

     apiVersion: serving.knative.dev/v1
     kind: Service
     metadata:
       annotations:
         ...
       name: SERVICE
       ...
     spec:
       template:
         metadata:
           annotations:
           ...
           name: REVISION
    
    • Si no vas a implementar la copia en otra región, sustituye SERVICE por el nombre que quieras usar para la copia. Si vas a desplegar la copia en otra región, puedes usar el nombre antiguo.
    • Sustituye REVISION por un nuevo nombre de revisión o elimínalo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir los siguientes criterios:
      • Empieza por SERVICE-
      • Contiene solo letras minúsculas, números y -
      • No termina con -
      • No supera los 63 caracteres
  3. Copia el servicio con el siguiente comando:

    gcloud run services replace service.yaml

    Usa la marca --region para implementar la copia en otra región.

Ver más detalles sobre un servicio

Para ver más detalles sobre un servicio,

Consola

Para ver los detalles de un servicio, sigue estos pasos:

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. En la lista de servicios de tu proyecto, haz clic en el que quieras para abrir la vista de detalles del servicio.

gcloud

Para ver los detalles de un servicio, sigue estos pasos:

gcloud run services describe SERVICE
Sustituye SERVICE por el nombre del servicio.

Puedes usar la marca --format para dar formato al resultado. Por ejemplo, en formato YAML:

gcloud run services describe SERVICE --region REGION --format yaml

Sustituye:

  • SERVICE con el nombre del servicio.
  • REGION con la región del servicio. Google Cloud

Puedes usar --format export para exportar como YAML sin etiquetas ni estados generados automáticamente:

gcloud run services describe SERVICE --region REGION --format export

También puedes usar la marca --format para obtener la URL del servicio:

gcloud run services describe SERVICE --region REGION --format='value(status.url)'

Cloud Code

Para ver los detalles de un servicio con Cloud Code, consulta las guías del explorador de Cloud Run para IntelliJ y Visual Studio Code.

Para obtener más información sobre las revisiones de servicios, consulta Gestionar revisiones.

Bibliotecas de cliente

Para ver los detalles de un servicio desde el código, sigue estos pasos:

API REST

Para ver los detalles de un servicio, envía una solicitud HTTP GET al endpoint service de la API Cloud Run Admin.

Por ejemplo, si usas curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X GET \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME

Sustituye:

Inhabilitar un servicio

Para obtener los permisos que necesitas para inhabilitar un servicio y una revisión de Cloud Run, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Cloud Run (roles/run.admin) en tu proyecto.

Cuando inhabilita un servicio, se permite que se completen las solicitudes que se estén procesando en ese momento. Sin embargo, las solicitudes posteriores a la URL del servicio fallarán con un error Service unavailable o Service disabled.

Las solicitudes de revisiones de servicios que solo están activas debido a las etiquetas de tráfico no se ven afectadas porque esas revisiones no están inhabilitadas.

Para inhabilitar un servicio, debes definir el escalado en cero. Puedes inhabilitar un servicio mediante la Google Cloud consola, la CLI de Google Cloud, un archivo YAML o una API:

Consola

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Haga clic en el servicio que quiera inhabilitar para que se muestre su panel de detalles y, a continuación, haga clic en el icono de lápiz situado junto a Escalado en la parte superior derecha del panel de detalles.

  3. Busca el formulario Editar escalado y selecciona Escalado manual.

    imagen

    En el campo Número de instancias, introduce el valor 0 (cero).

  4. Haz clic en Guardar.

gcloud

Para inhabilitar un servicio, usa el siguiente comando para definir el escalado en cero:

gcloud run services update SERVICE --scaling=0

Sustituye SERVICE por el nombre de tu servicio.

YAML

  1. Descarga la configuración YAML de tu servicio:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Asigna el valor cero (0) al atributo manualInstanceCount:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
      run.googleapis.com/scalingMode: manual
      run.googleapis.com/manualInstanceCount: `0`

    Sustituye SERVICE por el nombre de tu servicio de Cloud Run.

  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

API REST

Para inhabilitar un servicio, envía una solicitud HTTP PATCH al endpoint service de la API Cloud Run Admin.

Por ejemplo, si usas curl:

    curl -H "Content-Type: application/json" \
    -H "Authorization: Bearer ACCESS_TOKEN" \
    -X PATCH \
    -d '{"scaling":{"manualInstanceCount":0 }}' \
    https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE?update_mask=scaling.manualInstanceCount

Haz los cambios siguientes:

Terraform

Para inhabilitar un servicio, asigna el valor cero (0) al atributo manual_instance_count:

resource "google_cloud_run_v2_service" "default" {
  name     = "SERVICE_NAME"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }
  scaling {
    scaling_mode = "MANUAL"
    manual_instance_count = "0"
  }
}

Haz los cambios siguientes:

  • SERVICE_NAME: el nombre de tu servicio de Cloud Run.
  • REGION: la Google Cloud región. Por ejemplo, europe-west1.
  • 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

Eliminar servicios

A la hora de eliminar un servicio, debes tener en cuenta lo siguiente:

  • Si eliminas un servicio, se borrarán todos los recursos relacionados con él, incluidas todas las revisiones del servicio, tanto si están sirviendo tráfico como si no.
  • Si eliminas un servicio, las imágenes de contenedor no se quitarán automáticamente de Artifact Registry. Para eliminar las imágenes de contenedor que usan las revisiones eliminadas de Artifact Registry, consulta Eliminar imágenes.
  • Si eliminas un servicio con uno o varios activadores de Eventarc, estos no se eliminarán automáticamente. Para eliminar los activadores, consulta Gestionar activadores.
  • Después de la eliminación, el servicio sigue visible en la consola Google Cloud y en la interfaz de línea de comandos hasta que se complete por completo. Sin embargo, no puedes actualizar el servicio.
  • La eliminación de un servicio es permanente: no se puede deshacer ni restaurar. Sin embargo, si después de eliminar un servicio, implementas uno nuevo con el mismo nombre en la misma región, tendrá la misma URL de endpoint.

Consola

Para eliminar un servicio, sigue estos pasos:

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Busca el servicio que quieras eliminar en la lista de servicios y marca la casilla correspondiente para seleccionarlo.

  3. Haz clic en ELIMINAR. Se eliminarán todas las revisiones del servicio.

gcloud

Para eliminar un servicio, usa el comando:

gcloud run services delete SERVICE --region REGION

Sustituir

  • SERVICE con el nombre de tu servicio.
  • REGION con la región del servicio. Google Cloud

Bibliotecas de cliente

Para eliminar un servicio del código:

API REST

Para eliminar un servicio, envía una solicitud HTTP DELETE al endpoint service de la API Admin de Cloud Run.

Por ejemplo, si usas curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X DELETE \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME

Sustituye: