Guida rapida: deployment di un servizio Python in Cloud Run

Scopri come creare una semplice applicazione Hello World, pacchettizzarla in un'immagine container, caricare l'immagine container su Artifact Registry ed eseguire il deployment dell'immagine container in Cloud Run.


Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, 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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Installa Google Cloud CLI.
  5. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  8. Installa Google Cloud CLI.
  9. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  10. Per impostare il progetto predefinito per il servizio Cloud Run:
     gcloud config set project PROJECT_ID
    Sostituisci PROJECT_ID con il nome del progetto creato per questa guida rapida.
  11. Se ti trovi in un criterio dell'organizzazione che limita le chiamate non autenticate per il tuo progetto, dovrai accedere al servizio di cui hai eseguito il deployment come descritto in Test dei servizi privati.

scrivi l'applicazione di esempio

Per scrivere un'applicazione in Python:

  1. Crea una nuova directory denominata helloworld e cambiala in questa directory:

    mkdir helloworld
    cd helloworld
    
  2. Crea un file denominato main.py e incollaci il codice seguente:

    import os
    
    from flask import Flask
    
    app = Flask(__name__)
    
    
    @app.route("/")
    def hello_world():
        """Example Hello World route."""
        name = os.environ.get("NAME", "World")
        return f"Hello {name}!"
    
    
    if __name__ == "__main__":
        app.run(debug=True, host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))

    Questo codice risponde alle richieste con il nostro saluto "Hello World". La gestione HTTP viene eseguita da un server web Gunicorn nel container. Quando viene richiamato direttamente per l'uso locale, questo codice crea un server web di base che rimane in ascolto sulla porta definita dalla variabile di ambiente PORT.

  3. Crea un file denominato requirements.txt e incollaci il codice seguente:

    Flask==3.0.3
    gunicorn==22.0.0
    Werkzeug==3.0.3
    

    Vengono aggiunti i pacchetti necessari per il campione.

L'app è stata completata ed è pronta per il deployment.

Esegui il deployment in Cloud Run dall'origine

Importante: questa guida rapida presuppone che tu disponga dei ruoli di proprietario o editor nel progetto che stai utilizzando per la guida rapida. In caso contrario, consulta Autorizzazioni di deployment di Cloud Run, Autorizzazioni Cloud Build e Autorizzazioni Artifact Registry per le autorizzazioni richieste.

Il deployment dall'origine crea automaticamente un'immagine container dal codice sorgente e ne esegue il deployment.

Per eseguire il deployment dall'origine:

  1. Nella directory del codice sorgente, esegui il deployment dall'origine utilizzando il seguente comando:

    gcloud run deploy

    Se ti viene richiesto di abilitare l'API, rispondi y per abilitarla.

    1. Quando ti viene richiesta la posizione del codice sorgente, premi Invio per eseguire il deployment della cartella attuale.

    2. Quando ti viene richiesto il nome del servizio, premi Invio per accettare il nome predefinito, ad esempio helloworld.

    3. Se ti viene richiesto di abilitare l'API Artifact Registry o di consentire la creazione di un repository Artifact Registry, rispondi premendo y.

    4. Quando ti viene richiesta la regione, seleziona la regione che preferisci, ad esempio us-central1.

    5. Ti verrà chiesto di consentire le chiamate non autenticate: rispondi y .

    Quindi, attendi qualche istante fino al completamento del deployment. Se l'operazione riesce, la riga di comando visualizza l'URL del servizio.

  2. Visita il servizio di cui hai eseguito il deployment aprendo l'URL del servizio in un browser web.

Località Cloud Run

Cloud Run è regionale, il che significa che l'infrastruttura che esegue i tuoi servizi Cloud Run si trova in una regione specifica ed è gestita da Google per essere disponibile in modo ridondante in tutte le zone all'interno della regione.

Soddisfare i requisiti di latenza, disponibilità o durabilità sono fattori principali per la selezione della regione in cui vengono eseguiti i servizi Cloud Run. In genere puoi selezionare la regione più vicina ai tuoi utenti, ma devi considerare la località degli altri prodotti Google Cloud utilizzati dal tuo servizio Cloud Run. L'utilizzo combinato di prodotti Google Cloud in più località può influire sulla latenza e sui costi del tuo servizio.

Cloud Run è disponibile nelle regioni seguenti:

Soggetto ai prezzi di Livello 1

Soggetto ai prezzi di Livello 2

  • africa-south1 (Johannesburg)
  • asia-east2 (Hong Kong)
  • asia-northeast3 (Seul, Corea del Sud)
  • asia-southeast1 (Singapore)
  • asia-southeast2 (Giacarta)
  • asia-south1 (Mumbai, India)
  • asia-south2 (Delhi, India)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Varsavia, Polonia)
  • europe-west10 (Berlino)
  • europe-west12 (Torino)
  • europe-west2 (Londra, Regno Unito) icona foglia A basse emissioni di CO2
  • europe-west3 (Francoforte, Germania) icona foglia A basse emissioni di CO2
  • europe-west6 (Zurigo, Svizzera) icona foglia A basse emissioni di CO2
  • me-central1 (Doha)
  • me-central2 (Dammam)
  • northamerica-northeast1 (Montreal) icona foglia A basse emissioni di CO2
  • northamerica-northeast2 (Toronto) icona foglia A basse emissioni di CO2
  • southamerica-east1 (San Paolo, Brasile) icona foglia A basse emissioni di CO2
  • southamerica-west1 (Santiago, Cile) icona foglia A basse emissioni di CO2
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)

Se hai già creato un servizio Cloud Run, puoi visualizzare la regione nella dashboard di Cloud Run all'interno della console Google Cloud.

Complimenti! Hai appena eseguito il deployment di un'immagine container dal codice sorgente a Cloud Run. Cloud Run fa automaticamente e orizzontalmente lo scale out dell'immagine container per gestire le richieste ricevute, quindi esegue lo scale in quando la domanda diminuisce. Paghi solo per la CPU, la memoria e il networking utilizzati durante la gestione delle richieste.

Esegui la pulizia

Rimuovi il progetto di test

Sebbene Cloud Run non effettui addebiti quando il servizio non è in uso, potrebbe comunque esserti addebitato il costo per l'archiviazione dell'immagine container in Artifact Registry. Puoi eliminare l'immagine container o eliminare il tuo progetto Google Cloud per evitare addebiti. L'eliminazione del progetto Google Cloud interrompe la fatturazione per tutte le risorse utilizzate all'interno del progetto.

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Passaggi successivi

Per ulteriori informazioni sulla creazione di un container dall'origine di codice e sul push a un repository, consulta: