Crea un'app Ruby nell'ambiente flessibile di App Engine

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 rapida illustra come creare ed eseguire il deployment di un'app che visualizza un breve messaggio. Puoi utilizzare l'applicazione di esempio in questa guida rapida per qualsiasi versione supportata di Ruby, specificando il la versione runtime e il sistema operativo app.yaml.

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. Attiva Cloud Build API.

    Abilita l'API

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

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

    Go to project selector

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

  9. Attiva Cloud Build API.

    Abilita l'API

  10. Installa Google Cloud CLI.
  11. Per initialize gcloud CLI, esegui questo comando:

    gcloud init

Prerequisiti aggiuntivi

  1. Inizializza la tua app App Engine con il tuo progetto e scegli la relativa area geografica:

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    Quando richiesto, seleziona la regione in cui vuoi individuare la tua applicazione App Engine.

  2. Installa i seguenti prerequisiti:

Località App Engine

App Engine è regionale, il che significa che l'infrastruttura che esegue le tue app in una regione specifica e Google la gestisce in modo che sia disponibile in modo ridondante tutte le zone all'interno di quella regione.

Soddisfare i requisiti di latenza, disponibilità o durabilità è fondamentale i fattori necessari per selezionare la regione in cui vengono eseguite le tue app. In genere, puoi seleziona la regione più vicina agli utenti della tua app, ma devi considerare località in cui è disponibile App Engine nonché le località dell'altro Prodotti e servizi Google Cloud utilizzati dalla tua app. Utilizzo dei servizi in più località può influire sulla latenza dell'app e sulle sue pricing.

Non puoi modificare la regione di un'app dopo averla impostata.

Se hai già creato un'applicazione App Engine, puoi visualizzarne la regione effettuando una delle seguenti operazioni:

Questa guida rapida dimostra un'app Ruby semplice scritto con Sinatra framework web di cui puoi eseguire il deployment in App Engine. Sebbene questo esempio utilizzi Sinatra, puoi usare altri framework come Ruby su Rails.

scarica l'app Hello World

Abbiamo creato un'app Hello World per App Engine, così potrai rapidamente avere un'idea generale del deployment di un'app in Google Cloud.

  1. Clona il repository dell'app di esempio Hello World nella tua macchina locale.

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
    

    In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.

  2. Passa alla directory che contiene il codice campione.

       cd ruby-docs-samples/appengine/flexible/hello_world
    

Esegui Hello World sul computer locale

In questo esempio viene utilizzato Bundler per eseguire l'app Hello World sul computer locale:

  1. Se non hai già installato il linguaggio di programmazione per il tuo runtime, scaricare e installare Ruby.

    Scarica e installa Ruby

  2. Installa Bundler:

    gem install bundler
    
  3. Installa le dipendenze per questo progetto:

    bundle install
    
  4. Avvia un server web locale.

    bundle exec ruby app.rb -p 8080
    
  5. Nel browser web, inserisci:

    http://localhost:8080

Nella pagina viene visualizzato il messaggio Hello World dell'app di esempio. Nel tuo premi Ctrl+C per uscire dal server web.

Esegui il deployment di Hello World ed eseguilo su App Engine

Per eseguire il deployment dell'app in App Engine, procedi nel seguente modo: in un ambiente flessibile:

  1. Esegui il deployment dell'app Hello World eseguendo questo dalla directory flexible/hello_world:

    gcloud app deploy

    Scopri di più sulla e i flag facoltativi.

    Flag dei comandi gcloud comuni

    • Includi il flag --version per specificare un ID univoco identifica la versione dell'app, altrimenti ne viene generata una per te. Esempio: --version [YOUR_VERSION_ID]
    • Includi il flag --project per specificare un'alternativa dall'ID progetto Google Cloud a quello che hai inizializzato come per impostazione predefinita nello strumento gcloud. Esempio: --project [YOUR_PROJECT_ID]

    Esempio:

    gcloud app deploy --version pre-prod-5 --project my-sample-app

    Per scoprire di più sul deployment della tua app dalla riga di comando, vedi Test e deployment dell'app . Per un elenco di tutti i flag dei comandi, vedi gcloud app deploy riferimento.

  2. Avvia il browser per visualizzare l'app all'indirizzo https://PROJECT_ID.REGION_ID.r.appspot.com

    gcloud app browse
    dove PROJECT_ID rappresenta il tuo Google Cloud dell'ID progetto.

Questa volta la pagina che visualizza il messaggio Hello World viene consegnata da un in esecuzione su un'istanza di App Engine.

Complimenti! Hai eseguito il deployment della tua prima app di App Engine Ambiente flessibile di App Engine.

Se hai riscontrato errori durante il deployment della tua applicazione, controlla suggerimenti per la risoluzione dei problemi.

Consulta le sezioni seguenti per informazioni sulla pulizia e per i link alle i possibili passaggi successivi.

Esegui la pulizia

Per evitare addebiti, puoi eliminare il tuo progetto Google Cloud per arrestare e 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

Impara a conoscere l'intera piattaforma

Ora che sai com'è sviluppare ed eseguire il deployment delle app di App Engine, puoi esplorare il resto di Google Cloud. Hai già Google Cloud CLI installato, che ti offre gli strumenti per interagire come Cloud SQL, Cloud Storage, Firestore e altro ancora.

Scopri di più sull'ambiente flessibile di App Engine

Ecco alcuni argomenti che ti aiuteranno a continuare a conoscere App Engine:

Revisione del codice Hello World

Hello World è l'app di App Engine più semplice possibile, in quanto contiene servizio, ha una sola versione e tutto il codice si trova all'interno nella directory radice dell'app. Questa sezione descrive nel dettaglio ogni file dell'app.

app.rb

L'app Hello World è un'app Sinatra di base composta da un solo file:

require "sinatra"

get "/" do
  "Hello world!"
end

app.yaml

La app.yaml descrive la seguente configurazione per la tua app:

  • Imposta env: flex, a indicare che la tua app utilizza Ambiente flessibile di App Engine.
  • Specifica il runtime utilizzato dall'app.

    runtime: ruby
    env: flex
    entrypoint: bundle exec ruby app.rb
    
    runtime_config:
      operating_system: ubuntu22
    
    # This sample incurs costs to run on the App Engine flexible environment.
    # The settings below are to reduce costs during testing and are not appropriate
    # for production use. For more information, see:
    # https://cloud.google.com/appengine/docs/flexible/ruby/configuring-your-app-with-app-yaml
    manual_scaling:
      instances: 1
    resources:
      cpu: 1
      memory_gb: 0.5
      disk_size_gb: 10
    

Gemfile

Gemfile viene utilizzato per specificare RubyGem delle dipendenze Bundler per dichiarare e installare le dipendenze. App Hello World richiede una gemma Ruby: Sinatra framework web:

source "https://rubygems.org"

gem "sinatra"
gem "webrick", "~> 1.8"