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

ID regione

Il REGION_ID è un codice abbreviato che Google assegna in base alla regione selezionata durante la creazione dell'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 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 mostra 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 PHP, specificando la versione del runtime e il sistema operativo nel file 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 senza costi 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per completare questa guida rapida, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

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 posizionare la tua applicazione App Engine.

  2. Installa quanto segue sulla tua macchina locale:

Località App Engine

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

Soddisfare i requisiti di latenza, disponibilità o durabilità è un fattore primario per la selezione della regione in cui vengono eseguite le tue app. In genere puoi selezionare la regione più vicina agli utenti della tua app, ma devi considerare le località in cui è disponibile App Engine e le località degli altri Google Cloud prodotti e servizi utilizzati dalla tua app. L'utilizzo di servizi in più località può influire sulla latenza dell'app, nonché sui prezzi.

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

Se hai già creato un'applicazione App Engine, puoi visualizzarne la regione in uno dei seguenti modi:

Questa guida rapida presuppone che tu abbia dimestichezza con il linguaggio di programmazione PHP.

scarica l'app Hello World

Abbiamo creato un'app Hello World per App Engine in modo che tu possa capire rapidamente come eseguire il deployment di un'app in Google Cloud.

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

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

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

  2. Passa alla directory che contiene il codice campione.

       cd php-docs-samples/appengine/flexible/helloworld
    

Esegui Hello World sulla tua macchina locale

Per eseguire l'applicazione Hello World nel computer locale:

  1. Installa le dipendenze.

    composer install
    
  2. Avvia un server web locale.

    php -S localhost:8080 -t web/
    
  3. Nel browser web, inserisci il seguente indirizzo:

    http://localhost:8080

Nella pagina viene visualizzato il messaggio Hello World dell'app di esempio. Nella finestra del terminale, premi Ctrl+C per uscire dal server web.

Esegui il deployment e l'esecuzione di Hello World su App Engine

Per eseguire il deployment dell'app nell'ambiente flessibile di App Engine:

  1. Esegui il deployment dell'app Hello World eseguendo il comando seguente dalla directory appengine/flexible/helloworld:

    gcloud app deploy

    Scopri di più sui flag facoltativi.

    Flag dei comandi gcloud comuni

    • Includi il flag --version per specificare un ID che identifichi in modo univoco quella versione della tua app, altrimenti ne viene generato uno per te. Esempio: --version [YOUR_VERSION_ID]
    • Includi il flag --project per specificare un ID progetto Google Cloud alternativo a quello inizializzato come predefinito 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, consulta Test e deployment dell'app. Per un elenco di tutti i flag dei comandi, consulta la documentazione di riferimento di gcloud app deploy.

  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 ID progetto Google Cloud.

Questa volta, la pagina che visualizza il messaggio Hello World viene fornita da un server web in esecuzione su un'istanza App Engine.

Complimenti! Hai eseguito il deployment della tua prima app App Engine nell'ambiente flessibile di App Engine.

Se hai riscontrato errori durante il deployment dell'applicazione, consulta i suggerimenti per la risoluzione dei problemi.

Consulta le sezioni seguenti per informazioni sulla pulizia e sui link ai possibili passaggi successivi che puoi eseguire.

Esegui la pulizia

Per evitare addebiti, puoi eliminare il tuo progetto Google Cloud per interrompere la fatturazione per tutte le risorse utilizzate al suo interno.

  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 progetto, quindi fai clic su Chiudi per eliminare il progetto.

Passaggi successivi

Scopri l'intera piattaforma

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

Scopri di più sull'ambiente flessibile App Engine

Ecco alcuni argomenti per continuare a imparare a utilizzare App Engine:

Revisione del codice Hello World

Hello World è l'app App Engine più semplice possibile, in quanto contiene un solo servizio, ha una sola versione e tutto il codice si trova nella directory root dell'app. Questa sezione descrive in dettaglio ciascuno dei file dell'app.

index.php

Il file index.php contiene il codice PHP per avviare un server e rispondere alle richieste. Questo esempio utilizza Slim, ma puoi utilizzare altri framework web PHP.

Questo codice crea un nuovo oggetto Slim Application e poi definisce due route GET diverse:

require_once __DIR__ . '/../vendor/autoload.php';

use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Factory\AppFactory;

// Create App
$app = AppFactory::create();

// Display errors
$app->addErrorMiddleware(true, true, true);

$app->get('/', function (Request $request, Response $response) {
    $response->getBody()->write('Hello World');
    return $response;
});

$app->get('/goodbye', function (Request $request, Response $response) {
    $response->getBody()->write('Goodbye World');
    return $response;
});

// @codeCoverageIgnoreStart
if (PHP_SAPI != 'cli') {
    $app->run();
}
// @codeCoverageIgnoreEnd

return $app;

app.yaml

Il file app.yaml descrive la seguente configurazione per la tua app:

  • Imposta env: flex, indicando che la tua app utilizza l'ambiente flessibile App Engine.
  • Specifica il runtime utilizzato dall'app.

    runtime: php
    env: flex
    
    runtime_config:
      document_root: web
      operating_system: ubuntu22
      runtime_version: 8.4
    
    # 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/php/configuring-your-app-with-app-yaml
    manual_scaling:
      instances: 1
    resources:
      cpu: 1
      memory_gb: 0.5
      disk_size_gb: 10
    

    composer.json

    composer.json viene utilizzato per dichiarare, installare e aggiornare le dipendenze dell'applicazione:

    {
      "require": {
        "slim/slim": "^4.0",
        "slim/psr7": "^1.3"
      }
    }