Esegui la migrazione di un'app dell'ambiente standard di App Engine a Cloud Run

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Il codice non corrispondono a un paese o a una provincia, anche se potrebbero essere visualizzati alcuni ID regione in modo simile ai codici paese e provincia di uso comune. Per le app create dopo il giorno Febbraio 2020, REGION_ID.r è incluso in URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.

Scopri di più sugli ID regione.

Questa guida descrive come eseguire la migrazione di un'app App Engine esistente che si connette in un'istanza Cloud SQL IP pubblico.

In generale, i passaggi di questa guida mostrano come eseguire il deployment del codice sorgente dell'applicazione in Cloud Run e usa lo stesso utente del database Cloud SQL per connettere la tua dell'istanza e del database.

I passaggi in questa guida non includono come utilizzare un IP privato interno perché richiede la prima modifica del codice dell'applicazione. Tuttavia, dopo aver eseguito il deployment dell'app in Cloud Run, puoi utilizzare i passaggi Connettiti a Cloud SQL da Cloud Run per conoscere i requisiti e scoprire come utilizzare gli IP privati.

Per comprendere meglio le analogie e le differenze tra App Engine e Cloud Run, inclusi i vantaggi della migrazione Cloud Run, consulta il riepilogo del confronto.

Prima di iniziare

  1. Assicurati che Cloud Run soddisfi i requisiti della tua applicazione. Rivedi Confronto tra App Engine e Cloud Run per determinare se Le risorse Cloud Run, come CPU e memoria, soddisfano le tue esigenze.
  2. Questa guida presuppone che l'app venga eseguita senza errori.

  3. Devi accedere all'istanza Cloud SQL. inclusi il nome utente e la password del database per connettere la tua app. Cloud Run utilizza la crittografia e si connette tramite l'autenticazione Cloud SQL un proxy utilizzando socket Unix o connettori Cloud SQL.

  4. Esamina le seguenti differenze in Cloud Run:

    • Cloud Run utilizza il termine Revision, anziché Version per rappresentare ogni volta che esegui il deployment di modifiche a un servizio specifico. Deployment dell'app a un servizio in Cloud Run per la prima volta crea la sua prima revisione. Ogni deployment successivo di un servizio crea un'altra revisione. Scopri di più sul deployment in Cloud Run.

    • Puoi eseguire il deployment del codice sorgente in Cloud Run utilizzando Google Cloud CLI o la console Google Cloud per configurare e gestire le tue app impostazioni. Cloud Run non richiede una configurazione basata su file, tuttavia La configurazione YAML è supportata e puoi utilizzare app2run per il file App Engine esistente per Cloud Run.

    • Ogni servizio di cui esegui il deployment in Cloud Run utilizza run.app dominio nell'URL per accedere pubblicamente al servizio.

    • A differenza dei servizi App Engine pubblici per impostazione predefinita, I servizi Cloud Run sono privati per impostazione predefinita e richiedono la loro configurazione per l'accesso pubblico (non autenticato).

Esegui la migrazione dell'app in Cloud Run

A livello generale, il processo di migrazione dell'app di App Engine Cloud Run prevede i seguenti passaggi:

  1. Abilita le API richieste
  2. Configura l'account di servizio Cloud Run
  3. Esegui il deployment dell'app in Cloud Run

Abilita le API richieste

Prima di poter eseguire il deployment della tua app in Cloud Run, devi abilitare le API Cloud Run e Artifact Registry.

Utilizza la console Google Cloud per abilitare le API:

Vai ad API e servizi

Configura l'account di servizio Cloud Run

Puoi scegliere di creare un nuovo account di servizio o continuare a utilizzare lo stesso account account di servizio gestito dall'utente in Cloud Run che stai utilizzando per App Engine. Nell'account di servizio devi assicurarti che i seguenti ruoli IAM (Identity and Access Management) o se si configurano le autorizzazioni equivalenti:

Per eseguire il deployment in Cloud Run, devi disporre di uno dei seguenti requisiti:

  • Proprietario
  • Editor
  • Entrambi i ruoli Amministratore Cloud Run e Utente account di servizio
  • Autorizzazioni Cloud Run equivalenti

Per le connessioni IP pubbliche a Cloud SQL, devi disporre di uno dei seguenti requisiti:

Esegui il deployment dell'app in Cloud Run

Non è necessario apportare modifiche al codice per eseguire il deployment dell'app App Engine in Cloud Run.

Nei passaggi seguenti, eseguirai il deployment della tua app in un nuovo servizio in configurare Cloud Run e configurare contemporaneamente quel servizio per la connessione in Cloud SQL.

Come l'ambiente standard di App Engine, Cloud Run supporta deployment di machine learning. Devi accedere al repository di codice sorgente.

Cloud Run utilizza internamente i buildpack e Cloud Build per creare automaticamente immagini container dal codice sorgente e non richiede la creazione manuale di un container o specificare un Dockerfile. Tuttavia, se è presente un Dockerfile, verrà utilizzato.

Il deployment di un servizio Cloud Run dall'origine utilizza Artifact Registry, quindi è disponibile solo nelle regioni supportate da Artifact Registry.

Per eseguire il deployment dello stesso codice sorgente di cui hai eseguito il deployment in App Engine:

  1. Passa alla directory di origine in cui si trova il codice sorgente dell'applicazione.

      cd YOUR_APPENGINE_CODE_DIR
    
  2. Eseguire il deployment in Cloud Run.

    Per creare il codice sorgente ed eseguire il deployment dell'applicazione, esegui il deployment con il flag --source. Devi impostare i flag di configurazione su includi le stesse variabili di ambiente di connessione SQL definite nel app.yaml della tua app App Engine:

      gcloud run deploy run-sql --source SOURCE \
        --allow-unauthenticated \
        --add-cloudsql-instances INSTANCE_CONNECTION_NAME\
        --set-env-vars INSTANCE_UNIX_SOCKET="/cloudsql/INSTANCE_CONNECTION_NAME" \
        --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME" \
        --set-env-vars DB_NAME="DB_NAME" \
        --set-env-vars DB_USER="DB_USER" \
        --set-env-vars DB_PASS="DB_PASS"
    

    Sostituisci:

    • SOURCE con il percorso della directory di origine App Engine
    • INSTANCE_CONNECTION_NAME con il nome della connessione istanza del tuo Cloud SQL o un elenco di nomi di connessioni delimitato da virgole. Puoi trova INSTANCE_CONNECTION_NAME eseguendo:
        gcloud instances describe INSTANCE_NAME
    
    • DB_NAME con il nome del tuo database.
    • DB_USER con il nome utente del tuo database.
    • DB_PASS con la password dell'utente del database.
  3. Quando richiesto, inserisci un nome per il SERVICE.

  4. Rispondere a eventuali richieste di installazione delle API richieste rispondendo y quando richiesto. Devi eseguire questa operazione una sola volta per un progetto. Attendi il completamento della build e del deployment. Al termine, viene visualizzato un messaggio simile a questo:

    Service [my-app] revision [my-app-00000-xxx] has been deployed and is serving 100 percent of traffic. Service URL: https://sample.run.app
    

    Per saperne di più sul deployment del codice sorgente in Cloud Run, consulta Deployment dal codice sorgente.

Passaggi successivi