Aggiungi un'attività App Engine a una coda Cloud Tasks

Questa guida rapida mostra come aggiungere un'attività App Engine a una coda Cloud Tasks utilizzando l'API Cloud Tasks.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

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

  7. Enable the Cloud Resource Manager and Cloud Tasks API:

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  8. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

  9. Install the Google Cloud CLI.

  10. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  11. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  12. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

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

  14. Enable the Cloud Resource Manager and Cloud Tasks API:

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  15. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

  16. Il service account predefinito di App Engine viene creato automaticamente quando utilizzi App Engine. Puoi utilizzare questo account di serviziot quando provi questa guida rapida. Tuttavia, a seconda della configurazione della policy dell'organizzazione, al account di servizio predefinito potrebbe non essere assegnato automaticamente il ruolo Editor nel progetto. In questo caso, devi concedere al service account i seguenti ruoli:
    1. Amministratore Artifact Registry (roles/artifactregistry.admin)
    2. Artifact Registry Create-on-Push Writer (roles/artifactregistry.createOnPushWriter)
    3. Compute Admin (roles/compute.admin)
    4. Writer log (roles/logging.logWriter)
    5. Storage Object Viewer (roles/storage.objectViewer)
  17. Aggiungere un'applicazione App Engine

    Quando scegli come target un'attività App Engine e prima di poter eseguire il deployment di un'app nell'ambiente standard di App Engine, devi aggiungere un'applicazione App Engine al tuo progetto.

    1. Nella console Google Cloud , vai alla pagina App Engine.

      Vai ad App Engine

    2. Nella finestra di dialogo Benvenuto in App Engine, esegui una delle seguenti operazioni:

      • Se hai già creato un'applicazione App Engine e viene visualizzato il messaggio La tua applicazione App Engine è stata creata, puoi saltare i passaggi rimanenti di questa sezione e procedere con i passaggi della sezione Installa ed esegui il deployment dell'esempio.

        o

      • Se non hai ancora creato un'applicazione App Engine, fai clic su Crea applicazione e continua con i passaggi rimanenti di questa sezione.

    3. Seleziona una regione per la tua applicazione e prendine nota.

      Tieni presente che europe-west e us-central sono chiamati, rispettivamente, europe-west1 e us-central1 nei comandi Cloud Tasks.

    4. Non selezionare un account di servizio; viene utilizzato il service account predefinito di App Engine.

    5. Fai clic su Avanti.

      L'applicazione è configurata e creata. Questa operazione potrebbe richiedere alcuni minuti.

    6. Non scaricare Cloud SDK. Fai invece clic su Lo farò più tardi.

      Dovresti visualizzare il messaggio L'applicazione App Engine è stata creata.

    Installa ed esegui il deployment del campione

    L'esempio Node.js utilizzato in questa guida rapida è costituito da due file: createTask.js viene eseguito localmente come strumento a riga di comando per creare e aggiungere attività alla coda Tasks; server.js viene eseguito il deployment su App Engine come servizio di lavoro per elaborare l'attività.

    1. Nel terminale, clona il repository dell'applicazione di esempio sulla tua macchina locale.

      git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
      
    2. Vai alla directory che contiene il codice campione.

      cd nodejs-docs-samples/cloud-tasks/snippets
      
    3. Installa tutte le dipendenze utilizzando un gestore di pacchetti Node.js.

      Puoi utilizzare NPM:

      npm install
      

      In alternativa, puoi utilizzare Yarn:

      yarn install
      
    4. Esegui il deployment del servizio di gestione dei worker (server.js) nell'ambiente standard di App Engine.

      gcloud app deploy app.yaml
      
    5. Assicurati che l'app contenente il servizio sia in esecuzione.

      gcloud app browse
      
    6. Nel browser, vai al link fornito. Ad esempio:

      https://PROJECT_ID.uc.r.appspot.com/
      

      Dovresti visualizzare Hello, World!.

    Crea una coda di attività Cloud Tasks

    Utilizza il comando gcloud tasks queues create per creare la coda nell'ambiente che hai preparato.

    1. Nel terminale, crea una coda che registri tutte le operazioni.

      gcloud tasks queues create QUEUE_NAME \
          --log-sampling-ratio=1.0 \
          --location=REGION
      

      Sostituisci quanto segue:

      • QUEUE_NAME: un nome per la coda Cloud Tasks
      • REGION: la regione in cui hai eseguito il deployment dell'app
    2. Attendi l'inizializzazione della coda e verifica che sia stata creata correttamente.

      gcloud tasks queues describe QUEUE_NAME \
          --location=REGION
      

      L'output dovrebbe essere simile al seguente:

       name: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_NAME
       rateLimits:
         maxBurstSize: 100
         maxConcurrentDispatches: 1000
         maxDispatchesPerSecond: 500.0
       retryConfig:
         maxAttempts: 100
         maxBackoff: 3600s
         maxDoublings: 16
         minBackoff: 0.100s
       state: RUNNING
      

    Aggiungi un'attività alla coda Cloud Tasks

    Crea un'attività, aggiungila alla coda che hai creato e inviala al servizio di gestione dei worker.

    1. Imposta le seguenti variabili di ambiente. Il client utilizza queste informazioni per creare la richiesta.

      export PROJECT_ID=PROJECT_ID
      export LOCATION_ID=REGION
      export QUEUE_ID=QUEUE_NAME
      
    2. Crea un'attività con un payload di hello e aggiungila alla coda. Il payload può essere qualsiasi dato della richiesta di cui il servizio di lavoro ha bisogno per elaborare l'attività.

      node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
      
    3. Verifica che l'attività sia stata eseguita visualizzando i log del servizio worker.

      gcloud app logs read
      

      I log dovrebbero avere un aspetto simile al seguente:

      2024-06-20 15:00:00 default[20240620t143852]  "POST /log_payload HTTP/1.1" 200
      2024-06-20 15:00:00 default[20240620t143852]  App listening on port 8081
      2024-06-20 15:00:00 default[20240620t143852]  Press Ctrl+C to quit.
      2024-06-20 15:00:00 default[20240620t143852]  Received task with payload: hello
      

    Esegui la pulizia

    Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    In alternativa, puoi eliminare le risorse che hai creato:

    1. Elimina la coda di attività Cloud Tasks:

      gcloud tasks queues delete QUEUE_NAME \
          --location=REGION
      
    2. Disabilita l'applicazione App Engine.

    Passaggi successivi