Administra servicios

En esta página, se describe cómo crear un servicio y ver su información.

Cada servicio tiene una URL run.app única y permanente que no cambiará con el tiempo a medida que implementes revisiones nuevas. Las funciones que se implementan en Cloud Run también se consideran 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 administrar los servicios y las revisiones de Cloud Run, pídele a tu administrador que te otorgue el rol de IAM Desarrollador de Cloud Run (roles/run.developer) en el servicio de Cloud Run.

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 las APIs de Google Cloud, 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 permisos de implementación y administra el acceso.

Cómo crear un servicio

Para crear un servicio nuevo, debes implementar una imagen de contenedor en él por primera vez. Para implementar un servicio nuevo, se requieren más instrucciones.

Visualiza la lista de servicios en el proyecto

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

Console

Para ver la lista de servicios, debes hacer lo siguiente:

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

    Ir a Cloud Run

  2. Examinar la lista de servicios que se muestra para el proyecto:

    lista de servicios

gcloud

Para enumerar los servicios del proyecto, ejecuta este comando:

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

A fin de ver la lista de servicios con Cloud Code, lee las guías de Cloud Run Explorer para IntelliJ y Visual Studio Code.

Bibliotecas cliente

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

API de REST

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

Por ejemplo, con 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

Reemplaza lo siguiente:

  • ACCESS_TOKEN por un token de acceso válido para una cuenta que tenga los permisos de IAM para ver servicios. Por ejemplo, si accediste a gcloud, puedes recuperar un token de acceso con gcloud auth print-access-token. Desde una instancia de contenedor de Cloud Run, puedes recuperar un token de acceso a través del servidor de metadatos de instancias de contenedor.
  • REGION por la región de Google Cloud del servicio.
  • PROJECT-ID por el ID del proyecto de Google Cloud.

Visualiza la lista de funciones en el proyecto

Puedes ver una lista de las funciones disponibles en tu proyecto a través de la consola de Google Cloud:

Console

Para filtrar funciones en tu lista de servicios, haz lo siguiente:

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

    Ir a Cloud Run

  2. Examinar la lista de servicios que se muestra para el proyecto:

    lista de servicios

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

    Si ya implementaste tu función con Cloud Functions (API de 2nd gen), la columna Implementado por mostrará Cloud Functions.

Copia un servicio

Se puede hacer una copia de un servicio existente mediante la consola de Google Cloud o YAML. También se puede cambiar lo que quieras en la copia, incluidos el nombre y la región.

Console

Para copiar un servicio:

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

    Ir a Cloud Run

  2. Selecciona el servicio que deseas copiar de la lista de servicios que se muestra para tu proyecto:

    lista de servicios

    1. Haz clic en Copiar.

    2. En la página de copia del servicio, configura o cambia cualquier valor que desees cambiar, como región, etc. Si mantienes la misma región, debes proporcionar un nombre nuevo para el servicio.

    3. Haz clic en Create (Crear) para crear una copia y, luego, implementarla mediante el nombre del servicio nuevo.

YAML

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Realiza los cambios de configuración deseados en el servicio.

     apiVersion: serving.knative.dev/v1
     kind: Service
     metadata:
       annotations:
         ...
       name: SERVICE
       ...
     spec:
       template:
         metadata:
           annotations:
           ...
           name: REVISION
    
    • Si no estás implementando la copia en una región diferente, reemplaza SERVICE por el nombre que deseas usar para la copia. Si implementas la copia en una región diferente, puedes usar el nombre anterior.
    • Reemplaza REVISION por un nombre de revisión nuevo o bórralo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir con los siguientes criterios:
      • Comienza con SERVICE-
      • Solo contiene letras minúsculas, números y -
      • No termina con -
      • No supera los 63 caracteres
  3. Copia el servicio mediante el siguiente comando:

    gcloud run services replace service.yaml

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

Ve más detalles sobre un servicio

Para ver más detalles sobre un servicio, haz lo siguiente:

Console

Para ver los detalles de un servicio, debes hacer lo siguiente:

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

    Ir a Cloud Run

  2. Hacer clic en el servicio que deseas en la lista de servicios del proyecto que se muestra para abrir la vista de detalles del servicio:

gcloud

Para ver los detalles de un servicio, ejecuta este comando:

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

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

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

Reemplaza lo siguiente:

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

Puedes usar --format export para exportar como YAML sin etiquetas o estado generados de forma automática:

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

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

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

Cloud Code

A fin de ver los detalles de un servicio con Cloud Code, lee las guías de Cloud Run Explorer para IntelliJ y Visual Studio Code.

Para obtener más detalles sobre las revisiones de servicios, consulta Administra revisiones.

Bibliotecas cliente

Para ver los detalles de un servicio desde el código, haz lo siguiente:

API de REST

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

Por ejemplo, con 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

Reemplaza lo siguiente:

  • ACCESS_TOKEN por un token de acceso válido para una cuenta que tenga los permisos de IAM para ver los detalles del servicio. Por ejemplo, si accediste a gcloud, puedes recuperar un token de acceso con gcloud auth print-access-token. Desde una instancia de contenedor de Cloud Run, puedes recuperar un token de acceso a través del servidor de metadatos de instancias de contenedor.
  • SERVICE-NAME por el nombre del servicio
  • REGION por la región de Google Cloud del servicio.
  • PROJECT-ID por el ID del proyecto de Google Cloud.

Inhabilita un servicio existente

Para obtener los permisos que necesitas para inhabilitar un servicio y una revisión existentes de Cloud Run, pídele a tu administrador que te otorgue el rol de administrador de Cloud Run (roles/run.admin) de IAM en tu proyecto.

Cloud Run no ofrece una forma directa de hacer que un servicio deje de entregar tráfico, pero puedes lograr un resultado similar si revocas el permiso para invocar el servicio en las identidades que invocan el servicio. En particular, si tu servicio es “público”, quita allUsers de la función de invocador de Cloud Run (roles/run.invoker).

Borra servicios existentes

Las siguientes consideraciones se aplican a la eliminación de un servicio:

  • Si borras un servicio, se borrarán todos los recursos relacionados con él, incluidas todas las revisiones de ese servicio, sin importar si entregan tráfico o no.
  • Borrar un servicio no quita de forma automática las imágenes de contenedor de Container Registry Para borrar imágenes de contenedor que usan las revisiones borradas de Container Registry, consulta Borra imágenes.
  • Si borras un servicio con uno o más activadores de Eventarc, estos no se borran de forma automática. Para borrar los activadores, consulta Administra activadores.
  • Después de la eliminación, el servicio permanece visible en la consola de Google Cloud y en la interfaz de línea de comandos hasta que la eliminación se complete por completo. Sin embargo, no puedes actualizar el servicio.
  • La eliminación de un servicio es una acción permanente, es decir, no se puede deshacer ni restablecer. Sin embargo, si después de borrar un servicio, implementas un servicio nuevo con el mismo nombre en la misma región, tendrá la misma URL de extremo.

Console

Para borrar un servicio, debes hacer lo siguiente:

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

    Ve a Cloud Run

  2. Buscar el servicio que deseas borrar en la lista de servicios y hacer clic en su casilla de verificación para seleccionarlo

  3. Haz clic en BORRAR. Esta acción borra todas las revisiones del servicio

gcloud

Para borrar un servicio, usa el siguiente comando:

gcloud run services delete SERVICE --region REGION

Reemplazar

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

Bibliotecas cliente

Para borrar un servicio del código, sigue estos pasos:

API de REST

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

Por ejemplo, con 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

Reemplaza lo siguiente:

  • ACCESS_TOKEN por un token de acceso válido para una cuenta que tenga los permisos de IAM para borrar un servicio. Por ejemplo, si accediste a gcloud, puedes recuperar un token de acceso con gcloud auth print-access-token. Desde una instancia de contenedor de Cloud Run, puedes recuperar un token de acceso a través del servidor de metadatos de instancias de contenedor.
  • SERVICE-NAME por el nombre del servicio
  • REGION por la región de Google Cloud del servicio.
  • PROJECT-ID por el ID del proyecto de Google Cloud.