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

  1. 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

  2. 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.

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

  4. 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.enable permission. 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.

    Enable the APIs

  5. 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:

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

  1. Se non ti trovi nella pagina Panoramica del cluster appena creato, nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Per visualizzare la pagina Panoramica del cluster, fai clic sul nome del cluster my-cluster.

  3. Nel menu di navigazione, fai clic su AlloyDB Studio.

  4. Nell'elenco Database in Accedi al tuo database, seleziona postgres.

  5. Nell'elenco a discesa Utente, seleziona postgres.

  6. Nel campo Password, inserisci la password che hai creato in Crea un cluster e la relativa istanza principale.

  7. Fai clic su Authenticate (Autentica). Il riquadro Explorer mostra un elenco degli oggetti nel database.

  8. Nella scheda Query senza titolo, crea un database:

    CREATE DATABASE quickstart_db;
    
  9. Fai clic su Esegui. Attendi che venga visualizzato il messaggio Statement executed successfully nel riquadro Risultati.

Trova l'ID progetto

  1. Vai alla pagina Dashboard nella console Google Cloud .

    Vai alla Dashboard

  2. Trova l'ID progetto nella scheda Informazioni sul progetto.

  3. 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

  1. Nella console Google Cloud , apri Cloud Shell.

    Apri Cloud Shell

  2. 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_clone
  3. Crea 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_ID

    Sostituisci PROJECT_ID con l'ID del tuo progetto.

  4. Nella finestra di dialogo Autorizza Cloud Shell, fai clic su Autorizza. Questo prompt non viene visualizzato se hai già eseguito questo passaggio in precedenza.

  5. 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_ID

    Sostituisci PROJECT_ID con l'ID del tuo progetto.

    Il codice dell'applicazione di esempio per questa guida rapida si trova nella directory examples/go del repository GitHub GoogleCloudPlatform/alloydb-auth-proxy. Il comando cloudshell_open nel passaggio precedente clona automaticamente questo repository e apre la directory corretta.

Trova l'indirizzo IP della nuova istanza

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Trova la riga nella tabella il cui Nome risorsa è my-primary.

  3. 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

  1. Nella console Google Cloud , vai alla pagina Cloud Run.

    Vai a Cloud Run

  2. Nella scheda Servizi, fai clic su Esegui il deployment del container.

  3. Nella pagina Crea servizio, seleziona l'opzione Esegui il deployment di una revisione da un'immagine container esistente.

  4. Nel campo URL immagine container, fai clic su Seleziona.

  5. Nel riquadro Seleziona immagine container, completa i seguenti passaggi:

    1. Seleziona la scheda Artifact Registry.
    2. Espandi us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy.
    3. Espandi run-sql.
    4. Seleziona l'immagine più recente.
    5. Fai clic su Seleziona.
  6. Nel campo Nome servizio, inserisci quickstart-service.

  7. Assicurati che us-central1 (Iowa) sia selezionato nell'elenco Regione per impostazione predefinita.

  8. Nella sezione Autenticazione, seleziona Consenti accesso pubblico.

  9. Assicurati che l'opzione La CPU viene allocata solo durante l'elaborazione delle richieste sia selezionata nella sezione Allocazione della CPU e prezzi.

  10. Espandi la sezione Container, volumi, networking, sicurezza.

  11. Nella scheda Container, seleziona la scheda Variabili e secret e completa i seguenti passaggi:

    1. Nella sezione Variabili di ambiente, fai clic su Aggiungi variabile.

    2. Inserisci quanto segue nei campi Name e Value:

      • DB_NAME: quickstart_db
      • DB_USER: postgres
      • DB_PASS: la password che hai inserito quando hai creato il cluster.
      • DB_PORT: 5432
      • INSTANCE_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 imposta 172.19.209.2 e non 172.19.209.2:5432.
  12. Passa dalla scheda Container alla scheda Networking e completa i seguenti passaggi:

    1. Seleziona la casella di controllo Connettiti a un VPC per il traffico in uscita.

    2. Seleziona l'opzione Invia il traffico direttamente a un VPC.

    3. Nell'elenco a discesa Rete, scegli il valore default.

    4. Nell'elenco a discesa Subnet, assicurati che sia selezionato il valore default.

  13. 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

  1. Nella console Google Cloud , vai alla pagina Cloud Run.

    Vai a Cloud Run

  2. Nella pagina quickstart-service, fai clic su Copia negli appunti per copiare l'URL dell'applicazione.

  3. 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

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Accanto al cluster my-cluster che vuoi eliminare, fai clic su Azioni e quindi su Elimina.

  3. Nella finestra di dialogo Elimina cluster visualizzata, digita my-cluster nel campo my-cluster per confermare che vuoi eliminarlo.

  4. Fai clic su Elimina.

Esegui la pulizia del servizio

  1. Nella console Google Cloud , vai alla pagina Cloud Run.

    Vai a Cloud Run

  2. Seleziona la casella di controllo accanto al nome del servizio quickstart-service.

  3. Fai clic su Elimina nella parte superiore della pagina Cloud Run.

  4. Nella finestra di dialogo Elimina quickstart-service visualizzata, fai clic su Elimina per confermare.

Passaggi successivi