Connettiti a Cloud SQL per SQL Server da Cloud Run
Scopri come eseguire il deployment di un'app di esempio su Cloud Run connessa a un'istanza SQL Server utilizzando la console Google Cloud e un'applicazione client.
Se completi tutti i passaggi in modo tempestivo, le risorse create in questa guida rapida in genere costano meno di un dollaro.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Abilita le API Cloud necessarie per eseguire un'app di esempio Cloud SQL su Cloud Run.
Fai clic su Abilita API per abilitare le API richieste per questa guida introduttiva.
Vengono abilitate le seguenti API:
- API Compute Engine
- API Cloud SQL Admin
- API Cloud Run
- API Container Registry
- API Cloud Build
- API Service Networking
Fai clic sul seguente pulsante per aprire Cloud Shell, che fornisce accesso da riga di comando alle tue risorse Google Cloud direttamente dal browser. Cloud Shell può essere utilizzato per eseguire i comandi
gcloud
presentati in questa guida rapida.Esegui il seguente comando
gcloud
utilizzando Cloud Shell:gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \ containerregistry.googleapis.com cloudbuild.googleapis.com servicenetworking.googleapis.com
Questo comando abilita le seguenti API:
- API Compute Engine
- API Cloud SQL Admin
- API Cloud Run
- API Container Registry
- API Cloud Build
- API Service Networking
Configura Cloud SQL
Crea un'istanza Cloud SQL
IP pubblico
Cloud Run non supporta la connessione a Cloud SQL per SQL Server tramite IP pubblico. Utilizza un IP privato.
IP privato
Alloca un intervallo di indirizzi IP e crea una connessione privata per configurare l'accesso privato ai servizi per Cloud SQL
-
Nella console Google Cloud, vai alla pagina Reti VPC.
- Seleziona la rete VPC
default
. - Seleziona la scheda Connessione ai servizi privati.
- Seleziona la scheda Intervalli IP allocati per i servizi.
- Fai clic su Assegna intervallo IP.
- Per il Nome dell'intervallo allocato, specifica
google-managed-services-default
. - Seleziona l'opzione Automatico per l'intervallo IP e specifica la lunghezza del prefisso come
16
. - Fai clic su Alloca per creare l'intervallo allocato.
- Seleziona la scheda Connessioni private ai servizi per la rete VPC
default
. - Fai clic su Crea connessione per creare una connessione privata tra la tua rete e un producer di servizi.
- Per Allocazione assegnata, seleziona
google-managed-services-default
. - Fai clic su Connetti per creare la connessione.
Creare un'istanza con indirizzo IP privato e SSL abilitati
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Fai clic su Crea istanza.
- Fai clic su Scegli SQL Server.
- Assicurati che Enterprise Plus sia selezionata come versione Cloud SQL per l'istanza.
- Nel campo ID istanza, inserisci
quickstart-instance
. - Nel campo Password, inserisci una password per l'utente SQL Server. Salva questa password per utilizzarla in futuro.
- Nella sezione Scegli la disponibilità per regione e zona, seleziona Zona singola.
- Fai clic sul menu Mostra opzioni di configurazione.
- Espandi il nodo Configurazione macchina.
- Nella regione Forme di macchine, seleziona la forma 4 vCPU, 32 GB.
- Espandi il nodo Connessioni.
- Deseleziona la casella di controllo IP pubblico per creare un'istanza solo con un indirizzo IP privato.
- Seleziona la casella di controllo IP privato.
- Nel menu Rete, seleziona predefinita.
- Fai clic su Crea istanza e attendi l'inizializzazione e l'avvio dell'istanza.
- Fai clic su Connessioni.
- Nella sezione Sicurezza, seleziona Consenti solo connessioni SSL per attivare le connessioni SSL.
- Nella finestra di dialogo Consenti solo connessioni SSL, fai clic su Salva e riavvia e poi attendi il riavvio dell'istanza.
Alloca un intervallo di indirizzi IP e crea una connessione privata per configurare l'accesso privato ai servizi per Cloud SQL
-
Esegui il comando
gcloud compute addresses create
per allocare un intervallo di indirizzi IP.gcloud compute addresses create
google-managed-services-default \ --global --purpose=VPC_PEERING --prefix-length=16 \ --description="peering range for Google" --network=default -
Esegui il comando
gcloud services vpc-peerings connect
per creare una connessione privata all'intervallo di indirizzi IP allocati. Sostituisci YOUR_PROJECT_ID con l'ID progetto del tuo progetto.gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \ --ranges=
google-managed-services-default --network=default \ --project=YOUR_PROJECT_ID
Creare un'istanza con indirizzo IP privato e SSL abilitati
-
Prima di eseguire il comando come segue, sostituisci DB_ROOT_PASSWORD con la password dell'utente del database.
- --database-version: il tipo e la versione del motore del database. Se non viene specificato, viene utilizzato il valore predefinito dell'API. Consulta la documentazione sulle versioni del database gcloud per conoscere le versioni attualmente disponibili.
- --cpu: il numero di core della macchina.
- --memory: un valore intero che indica la quantità di memoria da includere nella macchina. È possibile fornire un'unità di misura (ad esempio 3072 MB o 9 GB). Se non vengono specificate unità di misura, viene assunto il valore GB.
- --region: la posizione regionale dell'istanza
(ad esempio asia-east1, us-east1). Se non specificato, viene utilizzato il valore predefinito
us-central1
. Consulta l'elenco completo delle regioni. Esegui il comando
gcloud sql instances patch
per attivare l'opzione Consenti solo connessioni SSL per l'istanza.
Se vuoi, modifica i valori dei seguenti parametri:
Esegui il comando gcloud
sql instances create
per creare un'istanza Cloud SQL con un indirizzo IP privato.
gcloud sql instances createquickstart-instance \ --database-version=SQLSERVER_2017_STANDARD \ --cpu=1 \ --memory=4GB \ --region=us-central \ --root-password=DB_ROOT_PASSWORD \ --no-assign-ip \ --network=default
gcloud sql instances patchquickstart-instance --require-ssl
Crea un database
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Seleziona
quickstart-instance
. - Nel menu di navigazione SQL, seleziona Database.
- Fai clic su Crea database.
- Nel campo Nome database della finestra di dialogo Nuovo database, inserisci
quickstart-db
. - Fai clic su Crea.
Esegui il comando gcloud
sql databases create
per creare un database.
gcloud sql databases createquickstart-db --instance=quickstart-instance
Esegui il deployment dell'app di esempio in Cloud Run
Configura un account di servizio Cloud Run
-
Nella console Google Cloud, vai alla pagina IAM.
- Per l'account di servizio denominato Account di servizio predefinito Compute Engine, fai clic sull'icona a forma di matita.
- Fai clic su AGGIUNGI UN ALTRO RUOLO.
- Aggiungi il ruolo denominato Client Cloud SQL.
- Fai clic su Salva.
-
Esegui il seguente comando
gcloud
per ottenere un elenco degli account di servizio del tuo progetto:gcloud iam service-accounts list
- Copia EMAIL dell'account di servizio Compute Engine.
- Esegui il seguente comando per aggiungere il ruolo Client Cloud SQL
all'account di servizio Compute Engine:
gcloud projects add-iam-policy-binding
YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL " \ --role="roles/cloudsql.client"
Configura un'app di esempio Cloud SQL
Con un'istanza Cloud SQL, un database e un account di servizio con autorizzazioni client, ora puoi configurare un'applicazione di esempio per connetterti all'istanza Cloud SQL.
IP pubblico
Cloud Run non supporta la connessione a Cloud SQL per SQL Server tramite IP pubblico. Utilizza un IP privato.IP privato
Per i percorsi IP privati, l'applicazione si connette direttamente all'istanza tramite l'accesso VPC serverless. Questo metodo utilizza una socket TCP per connettersi direttamente all'istanza Cloud SQL senza utilizzare il proxy di autenticazione Cloud SQL.Crea e scarica il certificato del server SSL
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Fai clic su
quickstart-instance
per visualizzare la pagina Panoramica. - Fai clic sulla scheda Connessioni.
- Nella sezione Sicurezza, fai clic su Scarica certificati per scaricare il certificato del server SSL.
Crea una connessione VPC serverless per le connessioni all'istanza utilizzando l'IP privato
-
Nella console Google Cloud, vai alla pagina Accesso VPC serverless - Crea connettore.
- Inserisci
quickstart-connector
in Nome. - Seleziona predefinita dal menu a discesa Rete.
- Seleziona Intervallo IP personalizzato dal menu a discesa Subnet.
- Inserisci
10.8.0.0
nella casella di immissione Intervallo IP. - Fai clic su Crea.
Crea un'app di esempio con il certificato del server SSL
-
Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
Apri l'editor di Cloud Shell - Nella finestra di dialogo Apri in Cloud Shell, fai clic su Conferma per scaricare il codice dell'app di esempio e aprire la directory dell'app di esempio nell'editor di Cloud Shell.
-
Carica il file del certificato del server SSL nella cartella certs.
- Fai clic con il tasto destro del mouse sulla cartella certs nell'editor di Cloud Shell e seleziona Carica file.
- Seleziona il seguente file sulla tua macchina locale:
server-ca.pem
. - Con il file del certificato del server SSL selezionato, fai clic su Apri per completare la procedura di caricamento del file nell'editor Cloud Shell.
-
Esegui il seguente comando in Cloud Shell per creare un container Docker e pubblicarlo in Container Registry.
Sostituisci YOUR_PROJECT_ID con l'ID progetto del tuo progetto.
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
Crea e scarica il certificato del server SSL
Per gli utenti Java, il connettore fornisce già una connessione sicura, pertanto non è necessario creare e scaricare il certificato server SSL.
Crea una connessione VPC serverless per le connessioni all'istanza utilizzando l'IP privato
-
Nella console Google Cloud, vai alla pagina Accesso VPC serverless - Crea connettore.
- Inserisci
quickstart-connector
in Nome. - Seleziona predefinita dal menu a discesa Rete.
- Seleziona Intervallo IP personalizzato dal menu a discesa Subnet.
- Inserisci
10.8.0.0
nella casella di immissione Intervallo IP. - Fai clic su Crea.
Creare un'app di esempio
-
Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
Apri l'editor di Cloud Shell - Nella finestra di dialogo Apri in Cloud Shell, fai clic su Conferma per scaricare il codice dell'app di esempio e aprire la directory dell'app di esempio nell'editor di Cloud Shell.
-
Esegui il seguente comando in Cloud Shell per creare un container Docker e pubblicarlo in Container Registry.
Sostituisci YOUR_PROJECT_ID con l'ID progetto del tuo progetto.
mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=gcr.io/
YOUR_PROJECT_ID /run-sql -DskipTests
Crea e scarica il certificato del server SSL
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Fai clic su
quickstart-instance
per visualizzare la pagina Panoramica. - Fai clic sulla scheda Connessioni.
- Nella sezione Sicurezza, fai clic su Scarica certificati per scaricare il certificato del server SSL.
Crea una connessione VPC serverless per le connessioni all'istanza utilizzando l'IP privato
-
Nella console Google Cloud, vai alla pagina Accesso VPC serverless - Crea connettore.
- Inserisci
quickstart-connector
in Nome. - Seleziona predefinita dal menu a discesa Rete.
- Seleziona Intervallo IP personalizzato dal menu a discesa Subnet.
- Inserisci
10.8.0.0
nella casella di immissione Intervallo IP. - Fai clic su Crea.
Crea un'app di esempio con il certificato del server SSL
-
Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
Apri l'editor di Cloud Shell - Nella finestra di dialogo Apri in Cloud Shell, fai clic su Conferma per scaricare il codice dell'app di esempio e aprire la directory dell'app di esempio nell'editor di Cloud Shell.
-
Carica il file del certificato del server SSL nella cartella certs.
- Fai clic con il tasto destro del mouse sulla cartella certs nell'editor di Cloud Shell e seleziona Carica file.
- Seleziona il seguente file sulla tua macchina locale:
server-ca.pem
. - Con il file del certificato del server SSL selezionato, fai clic su Apri per completare la procedura di caricamento del file nell'editor Cloud Shell.
-
Esegui il seguente comando in Cloud Shell per creare un container Docker e pubblicarlo in Container Registry.
Sostituisci YOUR_PROJECT_ID con l'ID progetto del tuo progetto.
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
Esegui il deployment dell'app di esempio
I passaggi per eseguire il deployment del sample in Cloud Run dipendono dal tipo di indirizzo IP assegnato all'istanza Cloud SQL.
IP pubblico
Cloud Run non supporta la connessione a Cloud SQL per SQL Server tramite IP pubblico. Utilizza un IP privato.IP privato
-
Nella console Google Cloud, vai alla pagina Cloud Run.
-
Fai clic su Crea contenitore e seleziona Servizio per visualizzare il modulo Crea servizio.
- Mantieni l'opzione di deployment da un'immagine container esistente e fai clic su Seleziona per specificare l'immagine container
gcr.io/YOUR_PROJECT_ID/run-sql
che hai creato nel passaggio precedente. - Inserisci
quickstart-service
in Nome servizio. - Nella sezione Autenticazione, seleziona
l'opzione
Allow unauthenticated invocations
. Se non disponi delle autorizzazioni (ruolo Amministratore di Cloud Run) per selezionare questa opzione, il servizio verrà dispiegato e richiederà l'autenticazione. - Espandi la sezione Container, variabili e secret, connessioni, sicurezza .
- Crea le seguenti variabili di ambiente facendo clic su Aggiungi variabile in Variabili di ambiente. Imposta i valori per le variabili di ambiente, come segue:
DB_NAME
: impostato suquickstart-db
.DB_USER
: impostato susqlserver
.DB_PASS
: imposta la password dell'utentesqlserver
che hai creato in Creare un'istanza Cloud SQL.INSTANCE_CONNECTION_NAME
: imposta il nome connessione dell'istanza visualizzato nella pagina Istanze Cloud SQL della console Google Cloud.DB_PORT
: impostato su1433
.INSTANCE_HOST
: impostato sull'indirizzo IP privato dell'istanza, come indicato nella pagina Panoramica dell'istanza Cloud SQL.DB_ROOT_CERT
: impostato sucerts/server-ca.pem
.PRIVATE_IP
: impostato suTRUE
.-
Attiva la connessione a Cloud SQL:
- Fai clic su Connessioni.
- Fai clic su Aggiungi connessione nella sezione Connessioni Cloud SQL.
- Seleziona l'istanza Cloud SQL
quickstart-instance
che hai creato in precedenza. - Seleziona
default: Serverless VPC Access Connector "quickstart-connector"
dal menu a discesa Rete VPC. - Seleziona l'opzione Instrada tutto il traffico attraverso il connettore VPC.
-
Fai clic su Crea per completare la creazione del servizio Cloud Run.
- Dopo il deployment del servizio Cloud Run, la pagina Dettagli del servizio mostra l'URL del servizio in esecuzione nella parte superiore della pagina.
Fai clic sul link URL per visualizzare l'app di esempio di cui è stato eseguito il deployment su Cloud Run e collegata a Cloud SQL.
Prima di eseguire il comando seguente, effettua le seguenti sostituzioni:
- YOUR_PROJECT_ID con il tuo ID progetto.
-
INSTANCE_CONNECTION_NAME con il nome connessione della tua istanza visualizzato nella pagina Istanze Cloud SQL della console Google Cloud.
-
DB_PASS con la password dell'utente
sqlserver
che hai creato in Creare un'istanza Cloud SQL. - INSTANCE_HOST con l'indirizzo IP privato della tua istanza. Vai alla pagina Panoramica dell'istanza Cloud SQL, dove viene visualizzato l'indirizzo IP privato dell'istanza.
-
Quando viene visualizzato un messaggio di conferma che indica che il servizio Cloud Run è stato di cui è stato eseguito il deployment, fai clic sul link URL servizio nel messaggio per visualizzare l'app di esempio su Cloud Run collegata a Cloud SQL.
Esegui il comando gcloud run deploy
come segue per creare il servizio Cloud Run:
gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID /run-sql \ --add-cloudsql-instancesINSTANCE_CONNECTION_NAME \ --vpc-connector="quickstart-connector " --vpc-egress=all-traffic \ --set-env-vars DB_NAME="quickstart-db " \ --set-env-vars DB_USER="sqlserver " \ --set-env-vars DB_PASS="DB_PASS " \ --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME " \ --set-env-vars DB_PORT="1433" \ --set-env-vars INSTANCE_HOST="INSTANCE_HOST " \ --set-env-vars DB_ROOT_CERT="certs/server-ca.pem" \ --set-env-vars PRIVATE_IP="TRUE"
Gli utenti Java devono eseguire il comando gcloud run deploy
senza
i flag INSTANCE_HOST, DB_ROOT_CERT e PRIVATE_IP --set-env-vars, come segue, per creare il servizio Cloud Run
perché il connettore Java fornisce già una connessione sicura:
gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID /run-sql \ --add-cloudsql-instancesINSTANCE_CONNECTION_NAME \ --vpc-connector="quickstart-connector " --vpc-egress=all-traffic \ --set-env-vars DB_NAME="quickstart-db " \ --set-env-vars DB_USER="sqlserver " \ --set-env-vars DB_PASS="DB_PASS " \ --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME " \ --set-env-vars DB_PORT="1433"
Inserisci la scelta numerica fornita per us-central1
quando ti viene chiesto di specificare una regione.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate su questa pagina, segui questi passaggi.
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Seleziona l'istanza
quickstart-instance
per aprire la pagina Dettagli istanza. - Nella barra delle icone nella parte superiore della pagina, fai clic su Elimina.
- Nella finestra di dialogo Elimina istanza, digita
quickstart-instance
e fai clic su Elimina per eliminare l'istanza. -
Nella console Google Cloud, vai alla pagina Cloud Run.
- Seleziona la casella di controllo accanto al nome del servizio
quickstart-service
. - Fai clic su Elimina nella parte superiore della pagina Cloud Run.
Passaggi facoltativi per la pulizia
Se non utilizzi il ruolo Client Cloud SQL che hai assegnato all'account di servizio Compute Engine, puoi rimuoverlo.
-
Nella console Google Cloud, vai alla pagina IAM.
- Fai clic sull'icona di modifica (a forma di matita) per l'account IAM denominato Account di servizio predefinito Compute Engine.
- Elimina il ruolo Client Cloud SQL.
- Fai clic su Salva.
Se non utilizzi le API attivate nell'ambito di questa guida rapida, puoi disattivarle.
- API abilitate in questa guida rapida:
- API Compute Engine
- API Cloud SQL Admin
- API Cloud Run
- API Container Registry
- API Cloud Build
Nella console Google Cloud, vai alla pagina API.
Seleziona l'API che vuoi disattivare e fai clic sul pulsante Disattiva API.
Passaggi successivi
In base alle tue esigenze, puoi scoprire di più sulla creazione di istanze Cloud SQL.Puoi anche scoprire come creare utenti e database SQL Server per la tua istanza Cloud SQL.
Per ulteriori informazioni sui prezzi, consulta la pagina Prezzi di Cloud SQL per SQL Server.
Scopri di più su:
- Configurare l'istanza Cloud SQL con un indirizzo IP pubblico.
- Configurare l'istanza Cloud SQL con un indirizzo IP privato.
Inoltre, puoi scoprire come connetterti a un'istanza Cloud SQL da altre applicazioni Google Cloud: