Analiza tu aplicación con métricas
En esta guía de inicio rápido, se muestra cómo usar Cloud Deploy para analizar tu servicio de Cloud Run implementado, en función de las métricas de Google Cloud Observability, para garantizar que la aplicación funcione según lo previsto.
En esta guía de inicio rápido, harás lo siguiente:
Crea e implementa un servicio de Cloud Run.
En este caso, no usarás Cloud Deploy para implementarlo.
Crea una verificación de tiempo de actividad en Google Cloud Observability.
Esta verificación supervisa tu servicio de Cloud Run para asegurarse de que se esté ejecutando.
Crea una política de alertas en Cloud Monitoring.
De forma predeterminada, el análisis de Cloud Deploy puede usar muchos tipos de métricas de Google Cloud Observability. Esta política crea una alerta si una verificación de tiempo de actividad indica un problema.
Crea una configuración de Skaffold para identificar el servicio de Cloud Run.
Define tu canalización y destino de entrega de Cloud Deploy.
Esta canalización incluye solo una etapa y un solo objetivo, y contiene la definición de un trabajo de análisis.
Crea una versión, que se implementará automáticamente en el destino.
Después de implementar la aplicación, el análisis se ejecuta como un trabajo en la versión.
El servicio debería implementarse correctamente en el destino, pero la versión debería fallar porque la política de alertas generará una alerta.
Cambia la definición del servicio de Cloud Run para aumentar el recuento de instancias del servicio y crear una nueva versión.
Esta vez, el servicio se implementará correctamente y el lanzamiento se completará sin problemas.
Antes de comenzar
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
Verify that billing is enabled for your Google Cloud project.
Habilita las APIs de Cloud Deploy, Cloud Build, Cloud Run y Cloud Storage.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.
Instala Google Cloud CLI.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud initIn the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
Verify that billing is enabled for your Google Cloud project.
Habilita las APIs de Cloud Deploy, Cloud Build, Cloud Run y Cloud Storage.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.
Instala Google Cloud CLI.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud initRoles obligatorios
Para asegurarte de que la cuenta de servicio de Cloud Deploy tenga los permisos necesarios para ejecutar operaciones de Cloud Deploy y realizar implementaciones en Cloud Run, pídele a tu administrador que otorgue los siguientes roles de IAM a la cuenta de servicio de Cloud Deploy en tu proyecto:
-
Desarrollador de Cloud Run (
roles/run.developer) -
Ejecutor de Cloud Deploy (
roles/clouddeploy.jobRunner) -
Usuario de cuenta de servicio de IAM (
roles/iam.serviceAccountUser) -
Visualizador de alertas de Monitoring (
roles/monitoring.alertViewer) -
Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgar a la cuenta de servicio de Cloud Deploy los permisos necesarios a través de roles personalizados o de otros roles predefinidos.
Obtén más información sobre la cuenta de servicio de Cloud Deploy.
Implementa un servicio de Cloud Run
En esta guía de inicio rápido, se usa una política de alertas que requiere que ya exista Cloud Run. Por lo tanto, implementaremos uno aquí y, en una sección posterior, definiremos un service.yaml con el mismo nombre de servicio.
Ejecuta el siguiente comando para crear el servicio inicial:
gcloud run deploy my-analysis-run-service \
--image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a \
--project=PROJECT_ID \
--region=us-central1 \
--allow-unauthenticated
Reemplaza PROJECT_ID con el ID del proyecto.
Crea una verificación de tiempo de actividad de Google Cloud Observability
Esta verificación de tiempo de actividad supervisa el servicio en ejecución para confirmar que se esté ejecutando. En una sección posterior, crearás una política de alertas de Google Cloud Observability que generará una alerta si tu servicio no tiene al menos una instancia disponible en ejecución.
Para crear la verificación de tiempo de actividad, ejecuta el siguiente comando:
gcloud monitoring uptime create my-analysis-run-service-cloud-run-uptime-check \ --resource-type=cloud-run-revision \ --resource-labels="project_id=PROJECT_ID,location=us-central1,service_name=my-analysis-run-service" \ --project=PROJECT_ID \ --protocol=https \ --path="/" \ --port=443 \ --period=1 \ --timeout=10 \ --service-agent-auth="oidc-token" \ --status-classes="2xx"Copia el ID de la verificación de tiempo de actividad.
El resultado del comando que acabas de ejecutar contiene el ID.
Prepara la configuración de Skaffold y la definición del servicio
En esta guía de inicio rápido, crearás un archivo skaffold.yaml, que identifica el manifiesto que se usará para implementar el servicio de Cloud Run de ejemplo, y también definirás el archivo service.yaml que define el propio Cloud Run.
Abre una ventana de terminal.
Crea un directorio nuevo y navega hasta él.
mkdir deploy-analysis-run-quickstart
cd deploy-analysis-run-quickstart
- Crea un archivo llamado
skaffold.yamlcon el contenido siguiente:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
rawYaml:
- service.yaml
deploy:
cloudrun: {}
Consulta la referencia de skaffold.yaml
para obtener más información sobre este archivo de configuración.
- Crea un archivo llamado
service.yamlcon el siguiente contenido.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: my-analysis-run-service
annotations:
run.googleapis.com/scalingMode: manual
run.googleapis.com/manualInstanceCount: 0
spec:
template:
spec:
containers:
- image: my-app-image
Este archivo es una definición de servicio de Cloud Run que se usa para implementar la aplicación. La imagen de contenedor que se implementará se establece aquí como un marcador de posición, my-app-image, que se reemplaza por la imagen específica cuando creas la versión.
Ten en cuenta que establecimos el modo de ajuste de escala en manual y el recuento de instancias en 0.
Esto significa que el servicio implementado no podrá recibir tráfico y no habrá instancias en ejecución, lo que activará una alerta. Configurarás esa alerta a continuación.
Crea una política de alertas
En esta guía de inicio rápido, se usa una política de alertas de Google Cloud Observability. Esta política de alertas genera una alerta cuando el servicio de Cloud Run no supera la verificación de tiempo de actividad que creaste antes.
En el directorio
deploy-analysis-run-quickstart, crea un archivo llamadopolicy.yamlcon el siguiente contenido:displayName: Cloud Run service uptime check userLabels: policy-for: analysis-run-pipeline combiner: OR conditions: - displayName: Failure of uptime check UPTIME_ID conditionThreshold: filter: metric.type="monitoring.googleapis.com/uptime_check/check_passed" AND metric.label.check_id="UPTIME_ID" AND resource.type="cloud_run_revision" aggregations: - alignmentPeriod: 60s crossSeriesReducer: REDUCE_COUNT_FALSE groupByFields: - resource.label.* perSeriesAligner: ALIGN_NEXT_OLDER comparison: COMPARISON_GT duration: 60s thresholdValue: 1.0Reemplaza
UPTIME_IDpor el ID de la verificación de tiempo de actividad que creaste antes.Ejecuta el siguiente comando para crear la política:
gcloud monitoring policies create \ --policy-from-file=policy.yaml\ --project=PROJECT_IDReemplaza
PROJECT_IDcon el ID del proyecto.Copia el ID de la política del resultado del comando que acabas de ejecutar.
Esta vez, copia todo el ID de recurso, incluida la ruta de acceso. Usarás este ID en la siguiente sección, en la configuración del análisis de tu canalización de entrega.
Crea tu canalización de entrega y tu destino
Esta canalización de entrega tiene una etapa para un destino: analysis-staging.
En el directorio
deploy-analysis-run-quickstart, crea un archivo nuevo,clouddeploy.yaml, con el siguiente contenido:apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: deploy-analysis-demo-app-run description: main application pipeline serialPipeline: stages: - targetId: analysis-staging profiles: [] strategy: standard: analysis: duration: 300s googleCloud: alertPolicyChecks: - id: check-1 alertPolicies: - ALERT_POLICY_ID --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: analysis-staging description: staging Run service run: location: projects/PROJECT_ID/locations/us-central1En este archivo YAML, reemplaza
ALERT_POLICY_IDpor el resultado del comandogcloud monitoring policies listque ejecutaste anteriormente y reemplazaPROJECT_IDpor el ID del proyecto que usas.Registra tu canalización y destino con el servicio de Cloud Deploy:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_IDAhora tienes una canalización de entrega, con un destino, lista para implementar tu aplicación.
Confirma tu canalización y destino:
En la consola de Google Cloud , navega a la página Canalizaciones de entrega de Cloud Deploy para ver una lista de las canalizaciones de entrega disponibles.
Abrir la página Canalizaciones de entrega
Se muestra la canalización de entrega que acabas de crear, con un destino enumerado en la columna Destinos.

Crea una versión
Una versión es el recurso central de Cloud Deploy que representa los cambios que se implementan. La canalización de entrega define el ciclo de vida de esa versión. Consulta la arquitectura del servicio de Cloud Deploy para obtener detalles sobre ese ciclo de vida.
Ejecuta el siguiente comando desde el directorio deploy-analysis-run-quickstart para crear un recurso release que represente la imagen del contenedor que se implementará:
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=deploy-analysis-demo-app-run \
--images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a
Observa la marca --images=, que usas para reemplazar el marcador de posición (my-app-image) en la definición del servicio por la imagen específica calificada con SHA. Google recomienda que crees plantillas para tus definiciones de servicio de esta manera y que uses nombres de imágenes calificados con SHA cuando crees versiones.
Al igual que con todas las versiones (a menos que incluyan --disable-initial-rollout), Cloud Deploy también crea automáticamente un recurso de lanzamiento. La aplicación se implementa automáticamente en el único destino configurado para esta canalización de entrega.
Visualiza los resultados en la consola de Google Cloud
Después de unos minutos, la versión se implementará en el entorno de ejecución de destino. Puedes verlo.
En la consola de Google Cloud , navega a la página Canalizaciones de entrega de Cloud Deploy para ver tu canalización de entrega ("deploy-analysis-demo-app-run").
Haz clic en el nombre de tu canalización de entrega (“deploy-analysis-demo-app-run”).
La visualización de la canalización muestra el estado de implementación de la app. Debido a que solo hay una etapa en la canalización, la visualización muestra un solo nodo.

Y la versión aparece en la pestaña Versiones, en Detalles de la canalización de entrega.
Haz clic en la pestaña Lanzamientos en Detalles de la canalización de entrega.
Haz clic en el nombre del lanzamiento para ver sus detalles.
Análisis aparece como un trabajo.

Un análisis fallido
El trabajo de análisis que especificamos en la configuración de nuestra canalización de entrega se ejecuta como parte de este lanzamiento, después de que se implementa la aplicación. Este análisis debe fallar, ya que la política de alertas debe activar una alerta. La implementación fallará debido a este error de análisis.
Realizaremos un cambio y, luego, crearemos otra versión, que debería tener éxito.
Cambia la definición del servicio y crea una versión nueva
Ahora, cambiaremos el recuento de instancias en la definición del servicio para que haya una instancia en ejecución del servicio y no se active la alerta.
Edita el archivo de definición de Cloud Run,
service.yaml, para cambiar el valor derun.googleapis.com/manualInstanceCountde0a1.Ejecuta el siguiente comando desde el mismo directorio
deploy-analysis-run-quickstartpara crear otrorelease:gcloud deploy releases create test-release-002 \ --project=PROJECT_ID \ --region=us-central1 \ --delivery-pipeline=deploy-analysis-demo-app-run \ --images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a
Esta vez, la versión debería lanzarse correctamente. Esto se debe a que tu servicio de Cloud Run ahora tiene una instancia en ejecución, por lo que la verificación de tiempo de actividad no invocará una alerta de la política de alertas.
Realiza una limpieza
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.
Borra el servicio de Cloud Run:
gcloud run services delete my-analysis-run-service \ --region=us-central1 \ --project=PROJECT_IDPara borrar la canalización de entrega, el destino, la versión y el lanzamiento, ejecuta el siguiente comando desde el directorio que contiene la definición de tu canalización de entrega:
gcloud deploy delete --file=clouddeploy.yaml \ --force \ --region=us-central1 \ --project=PROJECT_IDBorra la política de alertas de Google Cloud Observability:
gcloud monitoring policies delete ALERT_POLICY_IDBorra los buckets de Cloud Storage que creó Cloud Deploy.
Uno termina con
_clouddeployy el otro es[region].deploy-artifacts.[project].appspot.com.
Eso es todo, finalizaste la guía de inicio rápido.