Analizzare l'applicazione utilizzando le metriche
Questa guida rapida mostra come utilizzare Cloud Deploy per analizzare il servizio Cloud Run di cui è stato eseguito il deployment, in base alle metriche di Google Cloud Observability, per assicurarti che l'applicazione funzioni come previsto.
In questa guida rapida imparerai a:
Creare ed eseguire il deployment di un servizio Cloud Run.
In questo caso, non utilizzerai Cloud Deploy per eseguire il deployment.
Creare un controllo di uptime in Google Cloud Observability.
Questo controllo monitora il servizio Cloud Run per assicurarsi che sia in esecuzione.
Creare un criterio di avviso in Cloud Monitoring.
Per impostazione predefinita, l'analisi di Cloud Deploy può utilizzare molti tipi di metriche di Google Cloud Observability. Questo criterio crea un avviso se un controllo di uptime indica un problema.
Creare una configurazione Skaffold per identificare il servizio Cloud Run.
Definire la pipeline di distribuzione e il target di Cloud Deploy.
Questa pipeline include una sola fase e utilizza un solo target e include la definizione di un job di analisi.
Creare una release, di cui viene eseguito automaticamente il deployment nel target.
Dopo il deployment dell'applicazione, l' analisi viene eseguita come job nel rollout.
Il deployment del servizio dovrebbe essere eseguito correttamente nel target, ma il rollout dovrebbe non riuscire perché il criterio di avviso genererà un avviso.
Modificare la definizione del servizio Cloud Run per aumentare il conteggio delle istanze del servizio e creare una nuova release.
Questa volta, il deployment del servizio verrà eseguito correttamente e il rollout verrà completato correttamente.
Prima di iniziare
- Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
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.
Enable the Cloud Deploy, Cloud Build, Cloud Run, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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 -
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.
Enable the Cloud Deploy, Cloud Build, Cloud Run, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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
Ruoli obbligatori
Per assicurarti che il account di servizio Cloud Deploy disponga delle autorizzazioni necessarie per eseguire le operazioni di Cloud Deploy ed eseguire il deployment in Cloud Run, chiedi all'amministratore di concedere i seguenti ruoli IAM al account di servizio Cloud Deploy nel tuo progetto:
- Cloud Run Developer (
roles/run.developer) - Cloud Deploy Runner (
roles/clouddeploy.jobRunner) - Utente Service Account IAM (
roles/iam.serviceAccountUser) - Visualizzatore avvisi Monitoring (
roles/monitoring.alertViewer) - Consumer Service Usage (
roles/serviceusage.serviceUsageConsumer)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere al account di servizio Cloud Deploy le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Scopri di più sul account di servizio Cloud Deploy.
Esegui il deployment di un servizio Cloud Run
Questa guida rapida utilizza un criterio di avviso che richiede che Cloud Run esista già. Quindi, ne eseguiremo il deployment qui e in una sezione successiva definiremo un file service.yaml utilizzando lo stesso nome del servizio.
Esegui questo comando per creare il servizio iniziale:
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
Sostituisci PROJECT_ID con l'ID progetto.
Crea un controllo di uptime di Google Cloud Observability
Questo controllo di uptime monitora il servizio in esecuzione per confermare che sia in esecuzione. In una sezione successiva, creerai un criterio di avviso di Google Cloud Observability che genera un avviso se il tuo servizio non ha almeno un'istanza disponibile in esecuzione.
Per creare il controllo di uptime, esegui questo 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 l'ID del controllo di uptime.
L'output del comando appena eseguito contiene l'ID.
Prepara la configurazione di Skaffold e la definizione del servizio
In questa guida rapida, creerai un file skaffold.yaml, che identifica il manifest da utilizzare per eseguire il deployment del servizio Cloud Run di esempio, e definirai anche il file service.yaml che definisce Cloud Run stesso.
Apri una finestra del terminale.
Crea una nuova directory e spostati al suo interno.
mkdir deploy-analysis-run-quickstart
cd deploy-analysis-run-quickstart
- Crea un file denominato
skaffold.yamlcon i seguenti contenuti:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
rawYaml:
- service.yaml
deploy:
cloudrun: {}
Per ulteriori informazioni su questo file di configurazione, consulta il skaffold.yaml riferimento.
- Crea un file denominato
service.yamlcon i seguenti contenuti:
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
Questo file è una definizione del servizio Cloud Run, utilizzata per eseguire il deployment dell'applicazione. L'immagine container di cui eseguire il deployment è impostata qui come un
segnaposto, my-app-image, che viene sostituita con l'immagine specifica quando
crei la release.
Tieni presente che abbiamo impostato la modalità di scalabilità su manuale e il conteggio delle istanze su 0.
Ciò significa che il servizio di cui è stato eseguito il deployment non sarà in grado di ricevere traffico e non ci saranno istanze in esecuzione, il che attiverà un avviso. Configurerai l'avviso nel passaggio successivo.
Crea una policy di avviso
Questa guida rapida utilizza un criterio di avviso di Google Cloud Observability. Questo criterio di avviso genera un avviso quando il servizio Cloud Run non supera il controllo di uptime creato in precedenza.
Nella directory
deploy-analysis-run-quickstart, crea un file denominatopolicy.yamlcon i seguenti contenuti:displayName: Cloud Run service uptime check userLabels: policy-for: analysis-run-pipeline combiner: