Cloud Deploy supporta i job di analisi che utilizzano gli avvisi generati da Google Cloud Observability in base alle metriche e ad 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 includa la logica per analizzare le metriche del fornitore di tua scelta.
Prima di iniziare
-
Accedi al tuo Account Google.
Se non ne hai già uno, registrati per creare 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 progetto Google Cloud .
Abilita le API Compute Engine e Cloud Deploy:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. 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 progetto Google Cloud .
Abilita le API Compute Engine e Cloud Deploy:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. 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 job di analisi, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'account per il tuo progetto:
-
Cloud Deploy Job Runner (
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 job di analisi, chiedi all'amministratore di concedere i seguenti ruoli IAMaccount di servizioount Cloud Deploy sul tuo progetto:
-
Utente service account IAM (
roles/iam.serviceAccountUser) -
Cloud Deploy Releaser (
roles/clouddeploy.releaser) -
Operatore Cloud Deploy (
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.
Configura un job di analisi personalizzato
Un job di analisi personalizzata è 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 tuo fornitore di metriche.
Questa sezione descrive come configurare un job di analisi di Cloud Deploy che utilizza un provider di monitoraggio nonGoogle Cloud .
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, del job di analisi. Al termine della durata, il job viene completato. Se l'analisi non va a buon fine (il container restituisce un codice di uscita diverso da zero), il job termina (
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 quel comando. Si tratta di un elenco separato da virgole. Se COMMAND_TO_RUN è "/bin/sh", uno degli argomenti qui sarebbe
-ce un altro argomento sarebbe l'intero comando che vuoi eseguire nella shell che stai richiamando.VAR_NAMEÈ il nome di una variabile di ambiente da passare al container. Utilizzi le variabili di ambiente per configurare il comportamento del container. ovvero le variabili e i relativi valori indicano al contenitore cosa monitorare nello specifico nel provider di metriche.
Puoi utilizzare i parametri di sistema come variabili di ambiente qui.
VALUEÈ il valore di ogni variabile di ambiente. Cloud Deploy non esegue alcuna operazione con queste variabili di ambiente, se non passarle, con i relativi valori, al tuo container. Spetta al contenitore utilizzare i valori nella logica di analisi.
Ogni controllo in una definizione di analisi personalizzata include un'attività che fa riferimento a un container, il comando o i comandi da eseguire su quel container e qualsiasi variabile di ambiente applicabile 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 fornitore di metriche che utilizzi. Il job di analisi di Cloud Deploy attende il codice restituito dal container.
Cosa deve fare il container personalizzato
Il contenitore personalizzato è responsabile dell'importazione dei dati dal tuo fornitore di metriche, di determinare se le metriche, i log o altri dati indicano un'applicazione funzionante correttamente e di restituire i risultati a Cloud Deploy.
Cosa deve restituire il container personalizzato
Cloud Deploy non richiede nulla dal container personalizzato, se non 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 va a buon fine.
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 passaggio 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 deploy hook, del verify job, o del rendering o del deployment del target personalizzato.
ANTHOS_MEMBERSHIPPer i target di tipo
ANTHOS, il nome della risorsa completamente specificato dell'appartenenza Anthos.CLOUD_RUN_LOCATIONPer i target di tipo
RUN, la regione in cui è stato eseguito il deployment del servizio Cloud Run.CLOUD_RUN_PROJECTPer le destinazioni di tipo
RUN, il progetto in cui è stato creato il servizio Cloud Run.CLOUD_RUN_SERVICEPer le destinazioni 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 consoleGoogle Cloud . Gli URL vengono generati da Cloud Run dopo il deployment riuscito del servizio o dei servizi Cloud Run. Pertanto, questa variabile di ambiente è disponibile solo negli 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 le destinazioni 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 della destinazione.
GKE,ANTHOSoRUN. Per i target personalizzati, questo valore non verrà impostato.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 numero di progetto Google Cloud per il progetto contenente le risorse Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDL'ID progetto Google Cloud del progetto.
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 lancio 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 della distribuzione.
Consulta lo schema di configurazione per l'analisi nel riferimento alla configurazione di Cloud Deploy.
Scopri di più sull'automazione del deployment.
Scopri di più sulle strategie di deployment.