Cloud Deploy supporta i job di analisi che utilizzano gli avvisi generati da Google Cloud Observability in base a metriche e altri dati provenienti anche da Google Cloud Observability. Tuttavia, puoi anche estendere Cloud Deploy per utilizzare altri provider di metriche. Questo documento descrive come configurare e utilizzare un job di analisi e i requisiti per un container personalizzato che include la logica per analizzare le metriche del provider di tua scelta.
Prima di iniziare
-
Accedi al tuo Account Google.
Se non ne hai già uno, registrati per un nuovo account.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Verifica di disporre delle autorizzazioni necessarie per completare questa guida.
-
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
Abilita le API Compute Engine e Cloud Deploy:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore Service Usage (
roles/serviceusage.serviceUsageAdmin), che contiene l'serviceusage.services.enableautorizzazione. Scopri come concedere i ruoli.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Verifica di disporre delle autorizzazioni necessarie per completare questa guida.
-
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
Abilita le API Compute Engine e Cloud Deploy:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore Service Usage (
roles/serviceusage.serviceUsageAdmin), che contiene l'serviceusage.services.enableautorizzazione. Scopri come concedere i ruoli.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare e utilizzare i job di analisi, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'account del tuo progetto:
-
Esecutore job Cloud Deploy (
roles/clouddeploy.jobRunner) -
Utente Service Account IAM (
roles/iam.serviceAccountUser) -
Consumer Service Usage (
roles/serviceusage.serviceUsageConsumer)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per assicurarti che il account di servizio Cloud Deploy disponga delle autorizzazioni necessarie per creare e utilizzare i job di analisi, chiedi all'amministratore di concedere i seguenti ruoli IAM al account di servizio Cloud Deploy nel tuo progetto:
-
Utente Service Account IAM (
roles/iam.serviceAccountUser) -
Cloud Deploy Releaser (
roles/clouddeploy.releaser) -
Cloud Deploy Operator (
roles/clouddeploy.operator)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche assegnare al account di servizio Cloud Deploy le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Configurare un job di analisi personalizzato
Un job di analisi personalizzato è uguale a un job di analisi che utilizza gli avvisi di Google Cloud Observability, ma il job personalizzato utilizza una o più attività che fanno riferimento a container personalizzati e ai comandi da eseguire su questi container per elaborare i dati del provider di metriche.
Questa sezione descrive come configurare un job di analisi Cloud Deploy che utilizza un provider non-Google Cloud di monitoraggio.
La sezione analysis può essere utilizzata direttamente all'interno di una configurazione della strategia di deployment (strategy.standard.analysis, per una strategia standard). Se vuoi configurare l'analisi per fase, utilizza un canary personalizzato (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]
Dove:
DURATIONIndica la durata, in secondi, di esecuzione del job di analisi. Al termine della durata, il job viene completato. Se l'analisi non riesce (il container restituisce un codice di uscita diverso da zero), il job viene completato (
FAILED) prima della scadenza della durata.CHECK_IDÈ un ID per il singolo controllo. Questo ID deve essere univoco all'interno di questo job di analisi.
FREQUENCYIndica la frequenza, in secondi, di esecuzione del singolo controllo.
IMAGE_NAMEÈ il percorso e il nome che identificano l'immagine container.
COMMANDÈ il comando da eseguire sul container, ad esempio uno script shell (
/bin/bash).ARGSÈ un elenco di argomenti per il comando. Si tratta di un elenco separato da virgole. Se COMMAND_TO_RUN è "/bin/sh", uno degli argomenti qui sarà
-ce un altro argomento sarà l'intero comando che vuoi eseguire nella shell che stai richiamando.VAR_NAMEÈ il nome di una variabile di ambiente da passare al container. Utilizza le variabili di ambiente per configurare il comportamento del container. Ovvero, le variabili e i relativi valori indicano al container cosa monitorare in modo specifico nel provider di metriche.
Qui puoi utilizzare i parametri di sistema come variabili di ambiente.
VALUEÈ il valore di ogni variabile di ambiente. Cloud Deploy non esegue alcuna operazione con queste variabili di ambiente, tranne passarle, con i relativi valori, al container. Spetta al container utilizzare i valori nella logica di analisi.
Ogni controllo in una definizione di analisi personalizzata include un'attività che fa riferimento a un container, al comando o ai comandi da eseguire sul container e a eventuali variabili di ambiente applicabili da passare al container.
Il container personalizzato
Per l'analisi personalizzata, il container che fornisci è responsabile dell'analisi della telemetria, dei log o di altri dati del provider di metriche che utilizzi. Il job di analisi Cloud Deploy attende il codice restituito dal container.
Cosa deve fare il container personalizzato
Il container personalizzato è responsabile dell'inserimento dei dati dal provider di metriche, della determinazione se le metriche, i log o altri dati indicano un'applicazione funzionante correttamente e della restituzione dei risultati a Cloud Deploy.
Cosa deve restituire il container personalizzato
Cloud Deploy non richiede nulla dal container personalizzato, tranne che restituisca un codice di uscita zero o diverso da zero. Se il container restituisce un codice di uscita diverso da zero, l'analisi non riesce.
Il container può scrivere i risultati in un file denominato results.json (in formato JSON), che si trova nel bucket Cloud Storage fornito da Cloud Deploy. Il file conterrà i metadati, sotto forma di coppie chiave-valore. Questo non è obbligatorio.
Variabili di ambiente disponibili
Cloud Deploy fornisce e popola anche le seguenti variabili di ambiente nell'ambiente di esecuzione. Puoi utilizzare queste variabili di ambiente come parte del tuo hook di deployment, job di verifica, o del target personalizzato rendering o deployment.
ANTHOS_MEMBERSHIPPer i target di tipo
ANTHOS, il nome della risorsa completamente specificato dell'appartenenza ad Anthos.CLOUD_RUN_LOCATIONPer i target di tipo
RUN, la regione in cui è stato eseguito il deployment del servizio Cloud Run.CLOUD_RUN_PROJECTPer i target di tipo
RUN, il progetto in cui è stato creato il servizio Cloud Run.CLOUD_RUN_SERVICEPer i target di tipo
RUN, il nome del servizio Cloud Run di cui è stato eseguito il deployment.CLOUD_RUN_SERVICE_URLSPer i target di tipo
RUN, l'URL o gli URL (elenco separato da virgole) che gli utenti finali utilizzeranno per accedere al tuo servizio. Puoi trovarli nei dettagli del servizio Cloud Run per il tuo servizio, nella Google Cloud console. Gli URL vengono generati da Cloud Run dopo che il servizio o i servizi Cloud Run sono stati sottoposti a deployment. Pertanto, questa variabile di ambiente è disponibile solo nei hook post-deployment e nei job di verifica.CLOUD_RUN_REVISIONPer i target di tipo
RUN, la revisione specifica del servizio Cloud Run.GKE_CLUSTERPer i target di tipo
GKE, il nome della risorsa completamente specificato del cluster Google Kubernetes Engine, ad esempioprojects/p/locations/us-central1/clusters/dev.TARGET_TYPEIl tipo di runtime specifico del target. Può essere
GKE,ANTHOSoRUN. Per i target personalizzati, questa opzione non verrà impostata.CLOUD_DEPLOY_LOCATIONLa regione contenente le risorse Cloud Deploy.
CLOUD_DEPLOY_DELIVERY_PIPELINEL'ID della pipeline di distribuzione.
CLOUD_DEPLOY_TARGETL'ID del target.
CLOUD_DEPLOY_PROJECTIl Google Cloud numero di progetto del progetto contenente le risorse Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDL'ID progetto del progetto. Google Cloud
CLOUD_DEPLOY_RELEASEL'ID della release in cui verranno eseguiti gli hook.
CLOUD_DEPLOY_ROLLOUTL'ID del rollout che contiene i job per gli hook.
CLOUD_DEPLOY_JOB_RUNL'ID dell'esecuzione del job che rappresenta l'esecuzione corrente del job.
CLOUD_DEPLOY_PHASELa fase del rollout che contiene il job per l'hook di deployment, il job di verifica o il rendering o il deployment personalizzato.
Passaggi successivi
Scopri come configurare l'analisi del deployment.
Consulta lo schema di configurazione per l'analisi nella documentazione di riferimento per la configurazione di Cloud Deploy.
Scopri di più sull'automazione del deployment.
Scopri di più sulle strategie di deployment.