Alcune o tutte le informazioni in questa pagina potrebbero non essere applicabili a Cloud de Confiance di S3NS. Per maggiori dettagli, consulta Differenze rispetto a Google Cloud.
Google utilizza la tecnologia AI per tradurre i contenuti nella tua lingua preferita. Le traduzioni generate dall'AI potrebbero contenere errori.
Questo esempio è un'applicazione App Engine, scritta in Go, che
fornisce un'interfaccia web che utilizza Bigtable per monitorare il numero di
visite dal tuo Account Google. Viene eseguita localmente in un container Docker o nel
cloud nell'ambiente flessibile di App Engine. Il codice di
questa applicazione si trova nel repository GitHub
GoogleCloudPlatform/golang-samples, nella directory
bigtable/usercounter.
Panoramica del esempio di codice
Quando viene avviato, l'esempio di codice crea un client amministrativo per Bigtable. Poi utilizza il client per verificare se nell'istanza Bigtable specificata dall'utente è presente una tabella denominata user-visit-counter, con una singola famiglia di colonne denominata emails. Se necessario, crea la tabella e la famiglia di colonne:
adminClient,err:=bigtable.NewAdminClient(ctx,project,instance)iferr!=nil{log.Fatalf("Unable to create a table admin client. %v",err)}tables,err:=adminClient.Tables(ctx)iferr!=nil{log.Fatalf("Unable to fetch table list. %v",err)}if!sliceContains(tables,tableName){iferr:=adminClient.CreateTable(ctx,tableName);err!=nil{log.Fatalf("Unable to create table: %v. %v",tableName,err)}}tblInfo,err:=adminClient.TableInfo(ctx,tableName)iferr!=nil{log.Fatalf("Unable to read info for table: %v. %v",tableName,err)}if!sliceContains(tblInfo.Families,familyName){iferr:=adminClient.CreateColumnFamily(ctx,tableName,familyName);err!=nil{log.Fatalf("Unable to create column family: %v. %v",familyName,err)}}adminClient.Close()
L'esempio di codice crea quindi un singolo client Bigtable che viene utilizzato per tutte le operazioni di lettura e scrittura successive:
client,err=bigtable.NewClient(ctx,project,instance)iferr!=nil{log.Fatalf("Unable to create data operations client. %v",err)}
Infine, l'esempio di codice aggiunge un gestore HTTP alla radice del server App Engine. A ogni richiesta, il gestore chiede all'utente di accedere, se necessario. Poi monitora la visita dell'utente eseguendo un'operazione Increment sulla riga relativa all'indirizzo email dell'utente:
tbl:=client.Open(tableName)rmw:=bigtable.NewReadModifyWrite()rmw.Increment(familyName,u.Email,1)row,err:=tbl.ApplyReadModifyWrite(ctx,u.Email,rmw)iferr!=nil{return&appError{err,"Error applying ReadModifyWrite to row: "+u.Email,http.StatusInternalServerError}}
Dopo aver incrementato la riga, il gestore visualizza una pagina HTML che mostra il numero totale di visite dell'utente corrente.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2026-10-15 UTC."],[],[]]