Cloud Deploy admite trabajos de análisis que usan alertas generadas por Google Cloud Observability en función de las métricas y otros datos también de Google Cloud Observability. Sin embargo, también puedes extender Cloud Deploy para usar otros proveedores de métricas. En este documento, se describe cómo configurar y usar un trabajo de análisis, y los requisitos para un contenedor personalizado que incluye la lógica para analizar métricas del proveedor que elijas.
Antes de comenzar
-
Accede a tu cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
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 init -
Verifica que tengas los permisos necesarios para completar esta guía.
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Habilita las APIs de Compute Engine y Cloud Deploy:
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 elserviceusage.services.enablepermiso. Obtén información para otorgar roles.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
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 init -
Verifica que tengas los permisos necesarios para completar esta guía.
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Habilita las APIs de Compute Engine y Cloud Deploy:
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 elserviceusage.services.enablepermiso. Obtén información para otorgar roles.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
Roles obligatorios
Para obtener los permisos que necesitas para crear y usar trabajos de análisis, pídele a tu administrador que te otorgue los siguientes roles de IAM en la cuenta de tu proyecto:
-
Ejecutor de trabajos de Cloud Deploy (
roles/clouddeploy.jobRunner) -
Usuario de la cuenta de servicio de IAM (
roles/iam.serviceAccountUser) -
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.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Para asegurarte de que la cuenta de servicio de Cloud Deploy tenga los permisos necesarios para crear y usar trabajos de análisis, pídele a tu administrador que otorgue los siguientes roles de IAM a la cuenta de servicio de Cloud Deploy en tu proyecto:
-
Usuario de la cuenta de servicio de IAM (
roles/iam.serviceAccountUser) -
Actualizador de Cloud Deploy (
roles/clouddeploy.releaser) -
Operador de Cloud Deploy (
roles/clouddeploy.operator)
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 con otros roles predefinidos.
Configura un trabajo de análisis personalizado
Un trabajo de análisis personalizado es igual que un trabajo de análisis que usa alertas de Google Cloud Observability, pero el trabajo personalizado usa una o más tareas que hacen referencia a contenedores personalizados y a los comandos que se ejecutan en esos contenedores para procesar datos de tu proveedor de métricas.
En esta sección, se describe cómo configurar un trabajo de análisis de Cloud Deploy que usa un proveedor que no es deGoogle Cloud supervisión.
La sección analysis se puede usar directamente dentro de una configuración de estrategia de implementación (strategy.standard.analysis, para una estrategia estándar). Si deseas configurar el análisis por fase, usa una versión canary personalizada (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).
strategy:
standard:
analysis:
duration: DURATION
customChecks:
- id: CHECK_ID
frequency: FREQUENCY
task:
type: container
image: IMAGE_NAME
command: COMMAND
args: [ARGS]
env:
[VAR_NAME: VALUE]
Aquí:
DURATIONEs el tiempo, en segundos, que se ejecuta el trabajo de análisis. Una vez que vence la duración, el trabajo finaliza. Si falla el análisis (el contenedor muestra un código de salida distinto de cero), el trabajo finaliza (
FAILED) antes de que venza la duración.CHECK_IDEs un ID para la verificación individual. Este ID debe ser único dentro de este trabajo de análisis.
FREQUENCYEs la frecuencia, en segundos, con la que se ejecuta la verificación individual.
IMAGE_NAMEEs la ruta de acceso y el nombre que identifican la imagen del contenedor.
COMMANDEs el comando que se ejecuta en ese contenedor, por ejemplo, una secuencia de comandos de shell (
/bin/bash).ARGSEs una lista de argumentos para ese comando. Es una lista separada por comas. Si tu COMMAND_TO_RUN es "/bin/sh", uno de los argumentos aquí sería
-c, y otro argumento sería el comando completo que deseas ejecutar en el shell que invocas.VAR_NAMEEs el nombre de una variable de entorno que se pasa al contenedor. Usas variables de entorno para configurar el comportamiento del contenedor. Es decir, las variables y sus valores le indican al contenedor qué supervisar específicamente en el proveedor de métricas.
Puedes usar parámetros del sistema como variables de entorno aquí.
VALUEEs el valor de cada variable de entorno. Cloud Deploy no hace nada con estas variables de entorno, excepto pasarlas, con sus valores, a tu contenedor. Depende de tu contenedor usar los valores en tu lógica de análisis.
Cada verificación en una definición de análisis personalizada incluye una tarea que hace referencia a un contenedor, el comando o los comandos que se ejecutan en ese contenedor y las variables de entorno aplicables que se pasan a ese contenedor.
El contenedor personalizado
Para el análisis personalizado, el contenedor que proporcionas es responsable de analizar la telemetría, los registros o cualquier otro dato del proveedor de métricas que usas. El trabajo de análisis de Cloud Deploy espera el código de retorno del contenedor.
Qué debe hacer el contenedor personalizado
El contenedor personalizado es responsable de ingerir datos de tu proveedor de métricas, determinar si las métricas, los registros o cualquier otro dato indican una aplicación que funciona correctamente y mostrar los resultados a Cloud Deploy.
Qué debe mostrar el contenedor personalizado
Cloud Deploy no requiere nada del contenedor personalizado, excepto que muestre un código de salida cero o distinto de cero. Si el contenedor muestra un código de salida distinto de cero, el análisis falla.
El contenedor puede escribir resultados en un archivo llamado results.json (en formato JSON), que se encuentra en el bucket de Cloud Storage que proporciona Cloud Deploy. El archivo contendrá los metadatos en forma de pares clave-valor. Esto no es obligatorio.
Variables de entorno disponibles
Cloud Deploy también proporciona y propaga las siguientes variables de entorno en el entorno de ejecución. Puedes usar estas variables de entorno como parte de tu hook de implementación, verificar el trabajo, o destino personalizado renderizar o implementar.
ANTHOS_MEMBERSHIPPara los destinos de tipo
ANTHOS, el nombre de recurso completamente especificado de la membresía de Anthos.CLOUD_RUN_LOCATIONPara los destinos de tipo
RUN, la región en la que se implementa el servicio de Cloud Run.CLOUD_RUN_PROJECTPara los destinos de tipo
RUN, el proyecto en el que se creó el servicio de Cloud Run.CLOUD_RUN_SERVICEPara los destinos de tipo
RUN, el nombre del servicio de Cloud Run implementado.CLOUD_RUN_SERVICE_URLSPara los destinos de tipo
RUN, la URL o las URLs (lista separada por comas) que usarán los usuarios finales para acceder a tu servicio. Puedes encontrarlas en los detalles del servicio de Cloud Run de tu servicio, en la Google Cloud consola. Cloud Run genera las URLs después de que se implementan correctamente tus servicios de Cloud Run. Por lo tanto, esta variable de entorno solo está disponible en los hooks posteriores a la implementación y en los trabajos de verificación.CLOUD_RUN_REVISIONPara los destinos de tipo
RUN, la revisión específica del servicio de Cloud Run.GKE_CLUSTERPara los destinos de tipo
GKE, el nombre de recurso completamente especificado del clúster de Google Kubernetes Engine, por ejemplo,projects/p/locations/us-central1/clusters/dev.TARGET_TYPEEl tipo de tiempo de ejecución específico del destino. Puede ser
GKE,ANTHOSoRUN. Para los destinos personalizados, no se establecerá.CLOUD_DEPLOY_LOCATIONLa región que contiene los recursos de Cloud Deploy.
CLOUD_DEPLOY_DELIVERY_PIPELINEEl ID de la canalización de entrega.
CLOUD_DEPLOY_TARGETEl ID del destino.
CLOUD_DEPLOY_PROJECTEl Google Cloud número del proyecto que contiene los recursos de Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDEl ID del proyecto Google Cloud .
CLOUD_DEPLOY_RELEASEEl ID del lanzamiento en el que se ejecutarán los hooks.
CLOUD_DEPLOY_ROLLOUTEl ID del lanzamiento que contiene los trabajos de los hooks.
CLOUD_DEPLOY_JOB_RUNEl ID de la ejecución del trabajo que representa la ejecución actual del trabajo.
CLOUD_DEPLOY_PHASELa fase del lanzamiento que contiene el trabajo del hook de implementación, el trabajo de verificación o la renderización o implementación personalizada.
¿Qué sigue?
Obtén información para configurar el análisis de implementación.
Consulta el esquema de configuración para el análisis en la referencia de configuración de Cloud Deploy.
Obtén más información sobre la automatización de la implementación.
Obtén más información sobre las estrategias de implementación.