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 a un'istanza Cloud SQL con un IP pubblico.
In generale, i passaggi di questa guida mostrano come puoi eseguire il deployment dello stesso codice sorgente dell'applicazione in Cloud Run e poi configurarlo in modo da utilizzare lo stesso utente del database Cloud SQL per connettere l'istanza e il database esistenti.
I passaggi descritti in questa guida non includono l'utilizzo di una connessione IP privato interna, in quanto richiede prima di modificare il codice dell'applicazione. Tuttavia, dopo aver eseguito il deployment dell'app in Cloud Run, puoi seguire la procedura descritta in Eseguire la connessione a Cloud SQL da Cloud Run per conoscere i requisiti e come utilizzare gli IP privati.
Per saperne di più sulle somiglianze e sulle differenze tra App Engine e Cloud Run, inclusi i vantaggi della migrazione a Cloud Run, consulta il riepilogo del confronto.
Prima di iniziare
- 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.
Questa guida presuppone che la tua app funzioni senza errori.
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.
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. Eseguendo il deployment della tua app in un servizio Cloud Run per la prima volta viene creata la 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 il dominio run.app nell'URL per accedere al servizio pubblicamente.
A differenza dei servizi App Engine, che sono pubblici per impostazione predefinita, i servizi Cloud Run sono privati per impostazione predefinita e richiedono di essere configurati 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:
- Abilita le API richieste
- Configura l'account di servizio Cloud Run
- 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:
configura l'account di servizio Cloud Run
Puoi scegliere di creare un nuovo account di servizio o continuare a utilizzare lo stesso account di servizio gestito dall'utente in Cloud Run che utilizzi per App Engine. Nell'account di servizio, devi assicurarti che siano configurati i seguenti ruoli di Identity and Access Management (IAM) o le autorizzazioni equivalenti:
Per eseguire il deployment in Cloud Run, devi disporre di uno dei seguenti elementi:
- 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 elementi:
- Client Cloud SQL (opzione preferita)
- Amministratore Cloud SQL
- Autorizzazioni Cloud SQL equivalenti
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 che seguono, esegui il deployment dell'app in un nuovo servizio in Cloud Run e contemporaneamente configuri il servizio in modo che si connetta a Cloud SQL.
Come l'ambiente flessibile di App Engine, Cloud Run supporta sia container deployment basati sull'origine. Devi accedere all'immagine container o al codice sorgente a seconda del metodo di deployment che segui.
Deployment delle immagini container
Se il deployment dei servizi App Engine viene eseguito utilizzando un sistema creato manualmente container, puoi utilizzare la stessa immagine container per eseguire il deployment del tuo servizio in Cloud Run. Per eseguire il deployment dell'immagine container App Engine in Cloud Run:
Prendi nota dell'URL del registry in cui si trova l'immagine container individuarlo. Si tratta dello stesso URL che fornisci nella sezione
--image-url
durante il deployment in App Engine.Esegui il deployment dell'immagine container:
console
Nella console Google Cloud, vai alla pagina Cloud Run.
Fai clic su Crea servizio.
Fai clic sul pulsante Seleziona nel campo Container image URL. e scegli l'immagine container di cui hai eseguito il deployment per App Engine.
Inserisci un nome per il servizio. Scegli un nome univoco che rappresenti l'app di cui stai eseguendo il deployment.
Nella sezione Autenticazione, seleziona Consenti chiamate non autenticate.
Devi creare le stesse variabili di ambiente per Cloud Run che hai definito nel file
app.yaml
della tua app App Engine. Espandi la sezione Container, Networking, Security e crea le seguenti variabili di ambiente facendo clic su Aggiungi variabile in Variabili di ambiente:Per i socket Unix aggiungi:
INSTANCE_UNIX_SOCKET: /cloudsql/INSTANCE_CONNECTION_NAME
Per i connettori Cloud SQL, aggiungi:
INSTANCE_CONNECTION_NAME:INSTANCE_CONNECTION_NAME
Sostituisci INSTANCE_CONNECTION_NAME con l'ID progetto, la regione e l'istanza nel formato di
project:region:instance-id
. Puoi trovarlo nella pagina Panoramica della tua istanza nella console Google Cloud.Queste connessioni vengono criptate automaticamente senza alcuna configurazione aggiuntiva.
DB_NAME
: nome del database.DB_USER
: nome utente dell'utente del database.DB_PASS
: la password specificata durante la creazione del database.
Nella sezione Connessioni Cloud SQL, fai clic sull'icona Aggiungi connessione e seleziona il pulsante creata in precedenza per App Engine.
Fai clic su Esegui il deployment. Una volta eseguito il deployment del servizio Cloud Run, nella sezione Dettagli servizio mostrerà un URL nella parte superiore della pagina. Fai clic sul link URL per visualizzare l'app di cui è stato eseguito il deployment in Cloud Run. è connesso a Cloud SQL.
gcloud
Esegui questo comando per creare un nuovo servizio in Cloud Run.Devi impostare i flag di configurazione in modo che includano gli stessi Variabili di ambiente della connessione SQL definite nel file
app.yaml
dell'app App Engine:gcloud run deploy run-sql --image IMAGE \ --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:
- IMAGE con l'immagine di cui stai eseguendo il deployment
INSTANCE_CONNECTION_NAME con il nome della connessione istanza della tua istanza Cloud SQL o un elenco di nomi di connessione delimitati da virgole. Puoi trovare
INSTANCE_CONNECTION_NAME
se esegui: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.
Esegui il deployment del 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:
Passa alla directory di origine in cui risiede il codice sorgente dell'applicazione.
cd YOUR_APPENGINE_CODE_DIR
Eseguire il deployment in Cloud Run.
Per compilare il codice sorgente ed eseguire il deployment dell'applicazione, esegui il comando di deployment con il flag
--source
. Devi impostare i flag di configurazione su includi le stesse variabili di ambiente di connessione SQL definite nelapp.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 trovare il valore
INSTANCE_CONNECTION_NAME
eseguendo:
gcloud instances describe INSTANCE_NAME
- DB_NAME con il nome del database.
- DB_USER con il nome utente del tuo database.
- DB_PASS con la password dell'utente del database.
Inserisci un nome per il SERVIZIO quando richiesto.
Rispondi a eventuali richieste di installazione delle API richieste rispondendo
y
quando richiesto. Dovrai eseguire questa operazione una sola volta per un progetto. Attendi il completamento della build e del deployment. Al termine, viene visualizzato un messaggio simile al seguente: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
- Consulta le best practice per Cloud SQL per connettere l'istanza Cloud SQL da Cloud Run.
- Scopri come archiviare le dipendenze per il tuo servizio che richiedono chiavi API, password o altre informazioni sensibili utilizzando un gestore di segreti.
- Scopri come gestire i servizi Cloud Run.
- Consulta il contratto di runtime del container di Cloud Run per comprendere i requisiti e i comportamenti dei container in Cloud Run.