Connettiti a Cloud SQL per PostgreSQL da Cloud Run

Scopri come eseguire il deployment di un'app di esempio su Cloud Run connessa a un'istanza PostgreSQL utilizzando la console Google Cloud e un'applicazione client.

Supponendo che tu completi tutti i passaggi in modo tempestivo, le risorse create in questa guida rapida in genere costano meno di un dollaro (USD).


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud , fai clic su Procedura guidata:

Procedura guidata


Prima di iniziare

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Verifica di disporre delle autorizzazioni necessarie per completare questa guida rapida.
  7. Abilita le API Cloud necessarie per eseguire un'app di esempio Cloud SQL su Cloud Run.

    Console

    Fai clic su Abilita API per abilitare le API richieste per questa guida rapida.

    Abilita le API

    Vengono abilitate le seguenti API:

    • API Compute Engine
    • API Cloud SQL Admin
    • API Cloud Run
    • API Container Registry
    • API Cloud Build
    • API Service Networking

    gcloud

    Fai clic sul pulsante seguente per aprire Cloud Shell, che fornisce l'accesso tramite 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.

    Apri Cloud Shell

    Esegui il seguente comando gcloud utilizzando Cloud Shell:

    gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \
    artifactregistry.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 Artifact Registry
    • API Cloud Build
    • API Service Networking

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire il deployment di un'app di esempio su Cloud Run connessa a un'istanza PostgreSQL, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto che vuoi utilizzare:

  • Creare o eliminare un repository Artifact Registry: Artifact Registry Writer (roles/artifactregistry.writer)
  • Creare o eliminare un'istanza, un database e un utente: ruolo Amministratore Cloud SQL (roles/cloudsql.admin).
  • Creare o eliminare un account di servizio IAM: ruolo Amministratore service account (roles/iam.serviceAccountAdmin).
  • Crea una connessione:
    • Service Networking Admin (roles/servicenetworking.networksAdmin))
    • Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin).
  • Visualizza gli oggetti e i relativi metadati: Storage Object Viewer (roles/storage.objectViewer)
  • Fornisce le autorizzazioni per amministrare le policy sui progetti. Project IAM Admin (roles/resourcemanager.projectIamAdmin).
  • Accesso in lettura e scrittura a tutte le risorse Cloud Run: Sviluppatore Cloud Run (roles/run.developer).
  • Esegue il deployment e gestisce le risorse di cui è stato eseguito il deployment nell'origine Cloud Run: Cloud Run Source Developer (roles/run.sourceDeveloper).
  • Per consentire l'accesso pubblico: Cloud Run Admin (roles/run.admin).
  • Per eseguire operazioni come account di servizio: Service Account User (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.

Configura Cloud SQL

Crea un'istanza Cloud SQL

Crea un database

Per creare un database, segui questi passaggi:

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Seleziona quickstart-instance.
  3. Dal menu di navigazione SQL, seleziona Database.
  4. Fai clic su  Crea database.
    1. Nel campo Nome database della finestra di dialogo Nuovo database, inserisci quickstart-db.
    2. Fai clic su Crea.

gcloud

Esegui il comando gcloud sql databases create per creare un database.

gcloud sql databases create quickstart-db --instance=quickstart-instance

Crea un utente

Per creare un utente, segui questi passaggi:

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Seleziona Utenti dal menu di navigazione SQL.
  4. Fai clic su Aggiungi account utente.
  5. Nella pagina Aggiungi un account utente all'istanza instance_name, aggiungi le seguenti informazioni:
    • Nel campo Nome utente, inserisci quickstart-user.
    • Nel campo Password, specifica una password per l'utente del database. Prendi nota di questo valore per utilizzarlo in un passaggio successivo di questa guida rapida.
  6. Fai clic su Aggiungi.

gcloud

Prima di eseguire il comando seguente, effettua le seguenti sostituzioni:

  1. PASSWORD con una password per l'utente del database. Prendi nota di questo valore per utilizzarlo in un passaggio successivo di questa guida rapida.

Esegui il comando gcloud sql users create per creare l'utente.

gcloud sql users create quickstart-user \
--instance=quickstart-instance \
--password=PASSWORD

I limiti di lunghezza dei nomi utente sono gli stessi per Cloud SQL e per PostgreSQL on-premise.

Esegui il deployment dell'app di esempio in Cloud Run

Configura un account di servizio Cloud Run

Configura l' account di servizio predefinito di Compute Engine utilizzato da Cloud Run in modo che abbia i ruoli Cloud SQL Client e Storage Object Viewer.

Console

  1. Nella console Google Cloud , vai alla pagina Service account IAM.

    Vai a Service account IAM

  2. Fai clic sul menu Azioni accanto al service account, quindi fai clic su Gestisci accesso.
  3. Fai clic su Aggiungi un altro ruolo, quindi trova e seleziona Client Cloud SQL (roles/cloudsql.client) nel menu a discesa Ruolo.
  4. Fai clic su Aggiungi un altro ruolo, quindi trova e seleziona Storage Object Viewer (roles/storage.objectViewer) nel menu a discesa Ruolo.
  5. Fai clic su Salva.

gcloud

  1. Esegui questo comando gcloud per ottenere un elenco dei service account del tuo progetto:
    gcloud iam service-accounts list
  2. Copia l'EMAIL del account di servizio predefinito di Compute Engine.
  3. Esegui questo comando per aggiungere il ruolo Cloud SQL Client al service account predefinito di Compute Engine:
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"
  4. Esegui questo comando per aggiungere il ruolo Storage Object Viewer al service account predefinito di Compute Engine:
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/storage.objectViewer"

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 alla tua istanza Cloud SQL.

Esegui il deployment dell'app di esempio

I passaggi per eseguire il deployment dell'esempio in Cloud Run dipendono dal tipo di indirizzo IP assegnato all'istanza Cloud SQL.

Il metodo di connessione dell'immagine varia in base alle variabili di ambiente impostate.

  • Per connetterti utilizzando TCP, imposta il valore della variabile di ambiente INSTANCE_HOST. Questo metodo di connessione rispetta i certificati e le porte configurati come variabili di ambiente.
  • Per connetterti utilizzando i socket Unix, imposta il valore della variabile di ambiente INSTANCE_UNIX_SOCKET.

    Non impostare il valore della variabile di ambiente INSTANCE_HOST.

    I socket Unix non sono supportati in modo nativo in Java. Se la tua applicazione è scritta in Java, devi utilizzare il connettore Java di Cloud SQL.

  • Per connetterti utilizzando uno dei connettori dei linguaggi di Cloud SQL, imposta il valore della variabile di ambiente INSTANCE_CONNECTION_NAME .

    Non impostare i valori per le seguenti variabili di ambiente:

    • INSTANCE_HOST
    • INSTANCE_UNIX_SOCKET
    • DB_PORT
    • DB_ROOT_CERT
    • DB_CERT
    • DB_KEY
    Questi valori non vengono utilizzati perché il connettore dei linguaggi di Cloud SQL fornisce già una connessione sicura utilizzando il server proxy di autenticazione Cloud SQL, che stabilisce connessioni a Cloud SQL sulla porta 3307.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Seleziona l'istanza quickstart-instance per aprire la pagina Dettagli istanza.
  3. Nella barra delle icone nella parte superiore della pagina, fai clic su Elimina.
  4. Nella finestra di dialogo Elimina istanza, digita quickstart-instance, quindi fai clic su Elimina per eliminare l'istanza.
  5. Nella console Google Cloud , vai alla pagina Cloud Run.

    Vai a Cloud Run

  6. Seleziona la casella di controllo accanto al nome del servizio quickstart-service.
  7. Fai clic su Elimina nella parte superiore della pagina di Cloud Run.

Passaggi di pulizia facoltativi

Se non utilizzi il ruolo Cloud SQL Client assegnato al account di servizio Compute Engine, puoi rimuoverlo.

  1. Nella Google Cloud console, vai alla pagina Service account.

    Vai a IAM

  2. Fai clic sull'icona di modifica (che assomiglia a una matita) per l'account IAM denominato Service account predefinito Compute Engine.
  3. Elimina il ruolo Client Cloud SQL.
  4. Fai clic su Salva.

Se non utilizzi le API abilitate nell'ambito di questa guida rapida, puoi disabilitarle.

  • API abilitate in questa guida rapida:
    • API Compute Engine
    • API Cloud SQL Admin
    • API Cloud Run
    • API Container Registry
    • API Cloud Build
  1. Nella console Google Cloud , vai alla pagina API.

    Vai alle API

  2. Seleziona un'API che vuoi disabilitare e poi fai clic sul pulsante Disabilita 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 PostgreSQL per la tua istanza Cloud SQL.

Per ulteriori informazioni sui prezzi, consulta Prezzi di Cloud SQL per PostgreSQL.

Scopri di più su:

  • Configurazione dell'istanza Cloud SQL con un indirizzo IP pubblico.
  • Configurazione dell'istanza Cloud SQL con un indirizzo IP privato.

Inoltre, puoi scoprire come connetterti a un'istanza Cloud SQL da altre applicazioni Google Cloud: