1. Obiettivi
In questo lab imparerai a:
- Esplora i plug-in Cloud Code
- Esegui il deployment nel cluster Kubernetes
- Trasmetti in streaming i log di Kubernetes
- Utilizzare il ricaricamento rapido delle modifiche
- Esegui il debug delle app Kubernetes live
2. Preparazione del workspace
Clona l'app
Per clonare il repository e aprirlo nell'ambiente di sviluppo:
- Apri l'editor di Cloud Shell visitando il seguente URL
https://ide.cloud.google.com
- Nella finestra del terminale, clona l'origine dell'applicazione con il comando seguente:
git clone https://github.com/viglesiasce/sample-app.git -b golden-path
- Passa alla directory e imposta l'area di lavoro dell'IDE sulla root del repository
cd sample-app && cloudshell workspace .
Avvia minikube
In questa sezione, crei, testi, esegui il deployment e accedi alla tua applicazione utilizzando una versione locale di Kubernetes chiamata Minikube.
- Nel terminale, avvia minikube eseguendo:
minikube start
Minikube configura un cluster Kubernetes locale in Cloud Shell. Questa configurazione richiede alcuni minuti. Mentre viene avviato, prenditi un momento per esaminare le varie interfacce fornite da Cloud Code nel passaggio successivo.
3. Esplorare il plug-in Cloud Code
Cloud Code fornisce il supporto IDE per l'intero ciclo di sviluppo delle applicazioni Kubernetes e Cloud Run, dalla creazione di un'applicazione da un modello esistente al monitoraggio delle risorse dell'app di cui è stato eseguito il deployment. Utilizzerai comandi e visualizzazioni diversi forniti da Cloud Code. In questo passaggio acquisirai familiarità con le interfacce di base.
Esaminare le visualizzazioni dell'explorer dalla barra delle attività
Dalla barra delle attività è possibile accedere a più riquadri dell'interfaccia utente. Per familiarizzare brevemente con le varie visualizzazioni, fai clic sulle icone di ciascuna visualizzazione.
Explorer API:
- Fai clic sull'icona Cloud Code - Cloud API Cloud Code  dalla barra delle attività. Ulteriori dettagli sull'utilizzo di questa visualizzazione sono disponibili nella documentazione.

Explorer di Secret Manager:
- Fai clic sulla visualizzazione di Secret Manager  nella barra delle attività. Ulteriori dettagli sull'utilizzo di questa visualizzazione sono disponibili nella documentazione.

Cloud Run Explorer:
- Vai a Explorer di Cloud Run utilizzando l'icona di Cloud Run nella barra delle attività a sinistra . Ulteriori dettagli su come lavorare in questa visualizzazione sono disponibili nella documentazione.

Esploratore Kubernetes:
- Vai a Kubernetes Explorer utilizzando l'icona nella barra delle attività a sinistra . Ulteriori dettagli su come lavorare in questa visualizzazione sono disponibili nella documentazione.

Esaminare i comandi della barra di stato
I comandi utilizzati di frequente sono accessibili rapidamente tramite l'indicatore nella barra di stato.
- Individua l'indicatore dell'estensione Cloud Code nella barra di stato
 e fai clic. - Esamina i vari comandi disponibili per l'esecuzione e il debug su Cloud Run e Kubernetes
- Fai clic su Apri pagina di benvenuto per ulteriori dettagli e attività di esempio.
Rivedi i comandi della tavolozza dei comandi
Altri comandi sono disponibili nella tavolozza dei comandi. Esamina l'elenco dei comandi a cui puoi accedere.
- Apri la tavolozza dei comandi (premi Ctrl/Cmd+Maiusc+P) e poi digita Cloud Code per filtrare i comandi disponibili.
- Utilizza i tasti freccia per scorrere l'elenco dei comandi.
4. Deployment nel cluster Kubernetes
In questa sezione, crei, testi, esegui il deployment e accedi alla tua applicazione.
I passaggi riportati di seguito avviano una build del codice sorgente e poi eseguono i test. L'esecuzione della build e dei test richiederà alcuni minuti. Questi test includono test unitari e un passaggio di convalida che verifica le regole impostate per l'ambiente di deployment. Questo passaggio di convalida è già configurato e ti avvisa dei problemi di deployment anche mentre lavori ancora nel tuo ambiente di sviluppo.
- Nel riquadro nella parte inferiore dell'editor di Cloud Shell, seleziona Cloud Code 
. - Nel riquadro visualizzato in alto, seleziona Esegui su Kubernetes. Se richiesto, seleziona Sì per utilizzare il contesto Kubernetes di minikube.
- Seleziona la scheda Output nel riquadro inferiore
per visualizzare l'avanzamento e le notifiche. - Seleziona "Kubernetes: Run/Debug - Detailed" (Kubernetes: esecuzione/debug - dettagliato) nel menu a discesa del canale a destra
per visualizzare ulteriori dettagli e i log in streaming live dai container.
Al termine della build e dei test, nella scheda Output viene visualizzato il messaggio Resource deployment/sample-app-dev status completed successfully e vengono elencati due URL.
- Nel terminale Cloud Code, passa il mouse sopra il primo URL nell'output (http://localhost:8080) e poi seleziona Apri anteprima web nel suggerimento visualizzato.
La versione locale dell'applicazione si apre nel browser. Questa versione dell'app viene eseguita nel cluster Kubernetes di minikube.
- Aggiorna la pagina nel browser. Il numero accanto a Contatore aumenta, a indicare che l'app sta rispondendo all'aggiornamento.
Nel browser, mantieni aperta questa pagina per visualizzare l'applicazione mentre apporti modifiche nell'ambiente locale.
5. Utilizzare il ricaricamento rapido delle modifiche
In questa sezione, apporti una modifica all'applicazione e visualizzi la modifica mentre l'app viene eseguita nel cluster Kubernetes locale. Nella scheda di output del canale Kubernetes: Run/Debug, oltre agli URL dell'applicazione, l'output indica anche Watching for changes.. Ciò significa che la modalità di osservazione è abilitata. Mentre Cloud Code è in modalità di osservazione, Cloud Code rileva eventuali modifiche salvate nel repository e ricrea ed esegue nuovamente il deployment dell'app con le ultime modifiche.
- Nell'editor di Cloud Shell, vai al file main.go.
- Nel file main.go, alla riga 23, cambia il colore da verde a blu.
- Salva il file.
Cloud Code rileva che la modifica all'app è stata salvata e la esegue nuovamente il deployment automaticamente. La scheda Output mostra Aggiornamento avviato. L'esecuzione di questo redeployment richiederà alcuni minuti.
Questa ricompilazione automatica è simile al ricaricamento rapido del codice, una funzionalità disponibile per alcuni tipi di applicazioni e framework.
- Al termine della build, vai al browser in cui hai aperto l'app e aggiorna la pagina.
Quando aggiorni, il colore nella parte superiore della tabella cambia da blu a verde.
Questa configurazione ti offre il ricaricamento automatico per qualsiasi architettura, con qualsiasi componente. Quando utilizzi Cloud Code e minikube, tutto ciò che viene eseguito in Kubernetes dispone di questa funzionalità di ricaricamento rapido del codice.
6. Eseguire il debug di app Kubernetes live
Hai eseguito l'applicazione, apportato una modifica e visualizzato l'app in esecuzione. In questa sezione, esegui il debug dell'applicazione per assicurarti che sia pronta per il commit nel repository principale.
Per questo esempio di debug, ci concentreremo sulla sezione del codice per il contatore di pagine.
- Nell'editor di Cloud Shell, apri il file main.go
- Imposta un punto di interruzione nell'applicazione facendo clic sul numero a sinistra della riga 82 (if err != nil {)
- Nel riquadro blu nella parte inferiore dell'editor di Cloud Shell, seleziona Cloud Code
. - Nel riquadro visualizzato in alto, seleziona Debug su Kubernetes.
Cloud Code esegue e collega i debugger in modo da poter accedere allo stato in memoria dell'applicazione, non solo al comportamento dell'applicazione rivolto agli utenti.
- Al termine della procedura di deployment, nella parte superiore della finestra viene visualizzato un prompt che chiede di confermare la directory nel container in cui viene eseguito il deployment dell'applicazione.

Verifica che il valore sia impostato su /go/src/app e premi Invio per accettarlo.
- Attendi il completamento del deployment del debugger. Saprai che l'operazione è completata quando la barra di stato diventa arancione e i report di output
"Attached debugger to container "sample-app-dev-..." successfully." - Nel terminale Cloud Code, passa il mouse sopra il primo URL nell'output (http://localhost:8081), quindi seleziona Apri anteprima web nel suggerimento visualizzato. Il caricamento della pagina non viene completato, come previsto.
- Torna all'IDE, dove ora viene visualizzato il debugger. Il codice viene visualizzato nella scheda e vedrai lo stack di chiamate e le variabili disponibili in quella parte del codice. Puoi espandere la sezione Variabili - Locale per visualizzare il valore attuale della variabile contatore.
- Per consentire il caricamento della pagina, seleziona l'icona "Continua" nella finestra di debug
. - Al termine del debug, fai clic sul pulsante di interruzione per terminare ciascuno dei thread in esecuzione.
