ID regione
L'REGION_ID è un codice abbreviato che Google assegna
in base alla regione selezionata quando crei l'app. Il codice non
corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare
simili ai codici di paesi e province di uso comune. Per le app create dopo
febbraio 2020, REGION_ID.r è incluso negli
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 il deployment delle app esistenti nell' ambiente standard su Cloud Run. Le istruzioni sono applicabili ai runtime di seconda generazione che non utilizzano i servizi in bundle legacy di App Engine.
I passaggi descritti in questa guida non influiscono sulla funzionalità o sul flusso di traffico dell'app App Engine esistente. Il servizio Cloud Run appena creato è una replica del servizio App Engine che puoi testare in modo indipendente.
Cloud Run utilizza gran parte della stessa infrastruttura dell'ambiente standard di App Engine, il che comporta molte somiglianze tra le piattaforme. Per scoprire 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.Per eseguire il deployment su Cloud Run, scegli una delle seguenti strategie:
Utilizza la configurazione locale di un file
app.yaml(opzione consigliata): scegli questa opzione per creare un'immagine container direttamente dal codice sorgente locale ed eseguirne il deployment su Cloud Run. In questo modo, le modifiche locali recenti al codice o alla configurazione vengono incluse nel nuovo deployment.**Utilizza un'immagine creata in precedenza**: questa opzione è utile se non hai accesso al codice sorgente. Scegli questa opzione per eseguire il deployment di una copia esatta di una versione già in esecuzione su App Engine, senza ricompilare l'immagine container. Questa opzione è utile se vuoi verificare il comportamento del deployment attivo senza modifiche al codice.
Prima di iniziare
Assicurati che l'applicazione App Engine venga eseguita senza errori. Se scegli di eseguire il deployment utilizzando la configurazione locale, devi avere accesso al codice sorgente di App Engine.
Abilita l'API Cloud Run Admin e l'API Artifact Registry:
Configura il progetto e la regione utilizzando il seguente comando:
gcloud auth login gcloud config set project PROJECT_ID gcloud config set run/region REGION gcloud components updateSostituisci quanto segue:
- PROJECT_ID: l' Google Cloud ID progetto.
- REGION: la regione in cui vuoi eseguire il deployment del servizio Cloud Run.
Verifica la presenza di funzionalità incompatibili nella tua applicazione e rimuovile prima di eseguire la migrazione a Cloud Run. Per verificare la compatibilità dell'applicazione senza eseguire una migrazione o un deployment, esegui il seguente comando:
gcloud beta app migrate-to-run --dry-runEsamina i risultati del controllo di compatibilità e apporta le modifiche consigliate, se necessario.
Esamina le seguenti differenze di Cloud Run:
Cloud Run utilizza il termine
Revision, anzichéVersion, per rappresentare ogni volta che esegui il deployment delle modifiche a un servizio specifico. La prima volta che esegui il deployment dell'app in un servizio in Cloud Run, viene creata la prima revisione. Ogni deployment successivo di un servizio crea un'altra revisione. Scopri di più sul deployment su Cloud Run.Puoi eseguire il deployment del codice sorgente su Cloud Run utilizzando la gcloud CLI o la Google Cloud console per configurare e gestire le impostazioni dell'app. Cloud Run non richiede una configurazione basata su file; tuttavia, la configurazione YAML è supportata.
Ogni servizio di cui esegui il deployment su Cloud Run utilizza il
run.appdominio nell'URL per accedere pubblicamente al servizio.A differenza dei servizi App Engine, che sono pubblici per impostazione predefinita, i servizi Cloud Run sono privati per impostazione predefinita e richiedono la configurazione per l'accesso pubblico (non autenticato).
Ruoli obbligatori
Puoi scegliere di creare un nuovo account di servizio o di utilizzare lo stesso account di servizio gestito dall'utente in Cloud Run che utilizzi per l'ambiente standard. Tu o il tuo amministratore dovete concedere all'account del deployer e all'account di servizio Cloud Build i seguenti ruoli IAM.
Fai clic per visualizzare i ruoli richiesti per l'account del deployer
Per ottenere le autorizzazioni necessarie per creare ed eseguire il deployment dal codice sorgente, chiedi all'amministratore di concederti i seguenti ruoli IAM ruoli:
- Cloud Run Source Developer (
roles/run.sourceDeveloper) sul tuo progetto - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) sul tuo progetto - Service Account User (
roles/iam.serviceAccountUser) sull'identità del servizio Cloud Run
Fai clic per visualizzare i ruoli richiesti per l'account di servizio Cloud Build
Per impostazione predefinita, Cloud Build utilizza automaticamente l'
account di servizio predefinito di Compute Engine come account di servizio Cloud Build predefinito per creare il codice sorgente e la
risorsa Cloud Run, a meno che tu non sostituisca questo comportamento. Affinché
Cloud Build possa creare le tue origini, chiedi all'amministratore di concedere
Cloud Run Builder
(roles/run.builder) all'account di servizio predefinito
di Compute Engine sul tuo progetto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Sostituisci PROJECT_NUMBER con il tuo Google Cloud
numero del progetto e PROJECT_ID con il tuo Google Cloud
ID progetto. Per istruzioni dettagliate su come trovare l'ID progetto e il numero del progetto,
consulta Creazione
e gestione dei progetti.
La propagazione della concessione del ruolo di builder di Cloud Run all'account di servizio predefinito di Compute Engine richiede alcuni minuti per propagarsi.
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.
Utilizza la configurazione locale di un file app.yaml
Esegui il deployment della configurazione locale di App Engine su Cloud Run utilizzando
la Google Cloud console o gcloud CLI.
Console
Nella Google Cloud console, vai alla pagina App Engine.
Nel menu di navigazione, fai clic su Hub di migrazione per eseguire il deployment dell'app App Engine su Cloud Run. L'hub di migrazione ti consente anche di controllare i risparmi stimati su Cloud Run per la stima dei costi e i suggerimenti.
Seleziona il servizio di cui vuoi eseguire la migrazione e fai clic su Verifica compatibilità.
Seleziona Servizio e Versione per visualizzare i risultati di compatibilità. L' hub di migrazione esegue un controllo di compatibilità per identificare funzionalità incompatibili.
Esamina i risultati per verificare che l'app sia completamente compatibile con Cloud Run e fai clic su Continua per passare alla sezione Esamina ed esegui il deployment.
Copia il comando nella sezione Esegui il deployment tramite gcloud ed eseguilo nella directory del progetto.
Fai clic su Visualizza le versioni di cui è stato eseguito il deployment per visualizzare i servizi App Engine di cui è stato eseguito il deployment in Cloud Run.
gcloud
Per eseguire il deployment del servizio Cloud Run utilizzando il file app.yaml locale di una configurazione App Engine esistente, segui questi passaggi:
Nel terminale, passa alla directory di origine in cui si trova il file
app.yaml.Esegui il seguente comando per eseguire il deployment del servizio su Cloud Run:
gcloud beta app migrate-to-runQuesto comando genera la configurazione del file
service.yamlper Cloud Run e la salva localmente nella stessa directory del fileapp.yaml. Per maggiori informazioni, consultagcloud beta app migrate-to-run.- Quando ti viene chiesto
Proceed with the deployment?, inserisciYper creare un immagine container dal codice sorgente ed eseguire il deployment del servizio su Cloud Run.
- Quando ti viene chiesto
Visita il servizio Cloud Run di cui hai eseguito il deployment aprendo l'URL del servizio in un browser web.
(Facoltativo)
Se il file
app.yamlsi trova in una directory diversa, specifica il percorso utilizzando il flag--appyaml:gcloud beta app migrate-to-run --appyaml=PATHSostituisci PATH con il percorso del file
app.yaml.Per generare ed esportare la configurazione
service.yamldi Cloud Run senza eseguire il deployment del servizio, utilizza il flag--export-only:gcloud beta app migrate-to-run --export-only=EXPORT_PATHSostituisci EXPORT_PATH con la directory o il percorso in cui vuoi salvare il file
service.yaml.
Utilizza un'immagine creata in precedenza
Per eseguire il deployment utilizzando un'immagine container creata in precedenza da una versione di App Engine di cui è stato eseguito il deployment anziché ricompilare l'immagine container da un file app.yaml locale, segui questi passaggi:
Per questo deployment non è necessario il codice sorgente dell'applicazione.
Esegui il seguente comando per eseguire il deployment del servizio su Cloud Run. Questo comando utilizza l'immagine container di un deployment di App Engine attivo e non acquisisce le modifiche recenti dal file
app.yamllocale, il che potrebbe comportare un deployment obsoleto:gcloud beta app migrate-to-run --service=SERVICE --version=VERSION --from-imageSostituisci quanto segue:
- SERVICE: il nome del servizio App Engine.
- VERSION: l'ID versione del servizio.
Questo comando recupera la configurazione del servizio e della versione specificati per generare il file
service.yamlper Cloud Run. Per maggiori informazioni, consultagcloud beta app migrate-to-run.- Quando ti viene chiesto
Proceed with the deployment?, inserisciYper esportare l'immagine container App Engine esistente ed eseguire il deployment del servizio su Cloud Run.
Visita il servizio Cloud Run di cui hai eseguito il deployment aprendo l'URL del servizio in un browser web.
(Facoltativo)
Per generare la configurazione
service.yamldi Cloud Run senza eseguire il deployment del servizio, esegui il seguente comando:gcloud beta app migrate-to-run --service=SERVICE \ --version=VERSION \ --from-image \ --export-only=EXPORT_PATHSostituisci EXPORT_PATH con la directory o il percorso in cui vuoi salvare il file
service.yaml.
Funzionalità non compatibili
Il comando di migrazione non riesce se il fileapp.yaml contiene una delle seguenti configurazioni non supportate:
Servizi in entrata:
inbound_services: - warmupSoluzione: elimina la sezione
inbound_servicesdal fileapp.yaml. Cloud Run esegue il warm-up delle istanze utilizzando il punto di ingresso del container, quindi non è necessario configurare le richieste di warm-up. Se devi eseguire il codice di inizializzazione prima di pubblicare il traffico, configura il servizio in modo che venga eseguito all'avvio, prima di ascoltare le richieste, oppure utilizza i probe di avvio. Puoi anche configurare le istanze minime per mantenere le istanze in stato di warm-up.
Pagine di errore personalizzate:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.htmlSoluzione: elimina la sezione
error_handlersdal fileapp.yaml, e segui una o entrambe le seguenti strategie:- Implementa la gestione degli errori direttamente nel codice dell'applicazione. Rileva i codici di errore HTTP standard, come
404o500, e pubblica le pagine di errore HTML personalizzate dalla logica dell'applicazione. - Se utilizzi Cloud Load Balancing con Cloud Run, configura le risposte di errore personalizzate a livello di bilanciatore del carico. In questo modo, puoi pubblicare pagine di errore personalizzate da Cloud Storage in base al codice di risposta del servizio Cloud Run.
- Implementa la gestione degli errori direttamente nel codice dell'applicazione. Rileva i codici di errore HTTP standard, come
Servizi in bundle per i runtime di seconda generazione:
app_engine_apis: trueSoluzione: elimina l'impostazione
app_engine_apisdal fileapp.yamled esegui la migrazione alle Google Cloud API o alle alternative di terze parti. Per maggiori informazioni, consulta Eseguire la migrazione dai servizi in bundle.Runtime di prima generazione:
runtime: python27Soluzione: esegui l'upgrade dell'applicazione a un runtime di seconda generazione supportato. Per maggiori informazioni, consulta la panoramica Eseguire la migrazione ai runtime di seconda generazione.
Passaggi successivi
- Scopri come gestire i servizi Cloud Run.
- Consulta il contratto di runtime dei container di Cloud Run per comprendere i requisiti e i comportamenti dei container in Cloud Run.
- Scopri come archiviare le dipendenze per il servizio che richiede chiavi API, password o altre informazioni sensibili utilizzando Secret Manager.