Connessione da Cloud Run
Per connettere un'applicazione serverless ad AlloyDB per PostgreSQL, puoi eseguire il deployment di un'applicazione web Go di esempio su un servizio Cloud Run nella consoleGoogle Cloud e configurarla per comunicare con l'istanza AlloyDB su una rete Virtual Private Cloud (VPC) privata.
Codice dell'applicazione di esempio
Il codice dell'applicazione di esempio per questa guida rapida si trova nella directory examples/go del repository GitHub GoogleCloudPlatform/alloydb-auth-proxy.
L'applicazione è scritta nel linguaggio di programmazione Go e funge da strumento per la raccolta dei voti. La logica principale è contenuta nel file main.go, che avvia un server web e gestisce le richieste degli utenti.
La connessione al database viene configurata utilizzando le variabili di ambiente, che imposti quando crei il servizio Cloud Run. Queste variabili indicano all'applicazione come connettersi all'istanza AlloyDB, inclusi il nome del database, l'utente, la password e l'indirizzo IP dell'istanza. Il codice utilizza queste variabili per stabilire una connessione sicura al tuo database AlloyDB.
Repository di codice
Il repository alloydb-auth-proxy contiene il proxy di autenticazione AlloyDB, uno strumento che ti aiuta a connetterti in modo sicuro alle tue istanze AlloyDB.
Il repository include anche librerie ed esempi correlati, come l'applicazione Go utilizzata in questa guida rapida.
Non è necessario l'intero progetto alloydb-auth-proxy per connetterti ad AlloyDB da Cloud Run. Il comando cloudshell_open clona l'intero repository per tua comodità, ma gli unici file utilizzati per creare il container per questa guida rapida si trovano nella directory examples/go.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci 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 Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs, if any are not already enabled.
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.-
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 Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs, if any are not already enabled.
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.- Assicurati di avere un cluster AlloyDB e un'istanza principale. Per saperne di più, consulta Crea un cluster e la relativa istanza principale.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per connetterti da Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Compute Network Admin (
roles/compute.networkAdmin) - AlloyDB Admin (
roles/alloydb.admin) - Artifact Registry Administrator (
roles/artifactregistry.admin) - Cloud Run Admin (
roles/run.admin) - Storage Admin (
roles/storage.admin) - Cloud Build Editor (
roles/cloudbuild.builds.editor) - Container Analysis Admin (
roles/containeranalysis.admin) - Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator) - Monitoring Metric Writer (
roles/monitoring.metricWriter) - Utente Service Account (
roles/iam.serviceAccountUser)
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.
Connettiti all'istanza e crea un database
Se non ti trovi nella pagina Panoramica del cluster appena creato, nella console Google Cloud , vai alla pagina Cluster.
Per visualizzare la pagina Panoramica del cluster, fai clic sul nome del cluster
my-cluster.Nel menu di navigazione, fai clic su AlloyDB Studio.
Nell'elenco Database in Accedi al tuo database, seleziona
postgres.Nell'elenco a discesa Utente, seleziona
postgres.Nel campo Password, inserisci la password che hai creato in Crea un cluster e la relativa istanza principale.
Fai clic su Authenticate (Autentica). Il riquadro Explorer mostra un elenco degli oggetti nel database.
Nella scheda Query senza titolo, crea un database:
CREATE DATABASE quickstart_db;Fai clic su Esegui. Attendi che venga visualizzato il messaggio
Statement executed successfullynel riquadro Risultati.
Trova l'ID progetto
Vai alla pagina Dashboard nella console Google Cloud .
Trova l'ID progetto nella scheda Informazioni sul progetto.
Prendi nota dell'ID progetto. Ti servirà per il passaggio successivo di questa guida rapida.
Compila Artifact Registry con un'immagine dell'applicazione di esempio
Nella console Google Cloud , apri Cloud Shell.
Nell'editor di Cloud Shell, utilizza il seguente comando per clonare il repository con il codice dell'applicazione di esempio da GitHub:
cloudshell_open --repo_url \ "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy" \ --dir \ "examples/go" \ --force_new_cloneCrea un repository in Artifact Registry per le immagini Docker:
gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_IDSostituisci
PROJECT_IDcon l'ID del tuo progetto.Nella finestra di dialogo Autorizza Cloud Shell, fai clic su Autorizza. Questo prompt non viene visualizzato se hai già eseguito questo passaggio in precedenza.
Per creare un container Docker e pubblicarlo in Artifact Registry, utilizza il seguente comando:
gcloud builds submit --tag us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_IDSostituisci
PROJECT_IDcon l'ID del tuo progetto.Il codice dell'applicazione di esempio per questa guida rapida si trova nella directory
examples/godel repository GitHubGoogleCloudPlatform/alloydb-auth-proxy. Il comandocloudshell_opennel passaggio precedente clona automaticamente questo repository e apre la directory corretta.
Trova l'indirizzo IP della nuova istanza
Nella console Google Cloud , vai alla pagina Cluster.
Trova la riga nella tabella il cui Nome risorsa è
my-primary.Prendi nota dell'indirizzo IP privato di quella riga. Ti servirà per il passaggio successivo di questa guida rapida.
Il formato di esempio dell'indirizzo IP è
172.19.209.2:5432.
Crea un servizio per Cloud Run
Nella console Google Cloud , vai alla pagina Cloud Run.
Nella scheda Servizi, fai clic su Esegui il deployment del container.
Nella pagina Crea servizio, seleziona l'opzione Esegui il deployment di una revisione da un'immagine container esistente.
Nel campo URL immagine container, fai clic su Seleziona.
Nel riquadro Seleziona immagine container, completa i seguenti passaggi:
- Seleziona la scheda Artifact Registry.
- Espandi
us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy. - Espandi
run-sql. - Seleziona l'immagine più recente.
- Fai clic su Seleziona.
Nel campo Nome servizio, inserisci
quickstart-service.Assicurati che
us-central1 (Iowa)sia selezionato nell'elenco Regione per impostazione predefinita.Nella sezione Autenticazione, seleziona Consenti accesso pubblico.
Assicurati che l'opzione La CPU viene allocata solo durante l'elaborazione delle richieste sia selezionata nella sezione Allocazione della CPU e prezzi.
Espandi la sezione Container, volumi, networking, sicurezza.
Nella scheda Container, seleziona la scheda Variabili e secret e completa i seguenti passaggi:
Nella sezione Variabili di ambiente, fai clic su Aggiungi variabile.
Inserisci quanto segue nei campi
NameeValue:DB_NAME:quickstart_dbDB_USER:postgresDB_PASS: la password che hai inserito quando hai creato il cluster.DB_PORT:5432INSTANCE_HOST: l'indirizzo IP dell'istanza principale del cluster, che hai trovato in Trova l'indirizzo IP della nuova istanza. Non includere il numero di porta, ad esempio imposta172.19.209.2e non172.19.209.2:5432.
Passa dalla scheda Container alla scheda Networking e completa i seguenti passaggi:
Seleziona la casella di controllo Connettiti a un VPC per il traffico in uscita.
Seleziona l'opzione Invia il traffico direttamente a un VPC.
Nell'elenco a discesa Rete, scegli il valore
default.Nell'elenco a discesa Subnet, assicurati che sia selezionato il valore
default.
Fai clic su Crea per creare il servizio Cloud Run.
Dopo il deployment del servizio Cloud Run, la pagina quickstart-service mostra l'URL dell'applicazione di esempio nel campo URL.
L'applicazione utilizza AlloyDB come datastore.
Visualizza l'applicazione di esempio
Nella console Google Cloud , vai alla pagina Cloud Run.
Nella pagina quickstart-service, fai clic su content_copy Copia negli appunti per copiare l'URL dell'applicazione.
In una nuova scheda del browser, incolla l'URL dell'applicazione copiato e fai clic su Invio.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.
Esegui la pulizia del cluster
Nella console Google Cloud , vai alla pagina Cluster.
Accanto al cluster
my-clusterche vuoi eliminare, fai clic su more_vert Azioni e quindi su delete Elimina.Nella finestra di dialogo Elimina cluster visualizzata, digita
my-clusternel campo my-cluster per confermare che vuoi eliminarlo.Fai clic su Elimina.
Esegui la pulizia del servizio
Nella console Google Cloud , vai alla pagina Cloud Run.
Seleziona la casella di controllo accanto al nome del servizio
quickstart-service.Fai clic su delete Elimina nella parte superiore della pagina Cloud Run.
Nella finestra di dialogo Elimina quickstart-service visualizzata, fai clic su Elimina per confermare.