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

Questa guida rapida mostra come aggiungere un'attività di App Engine Coda di Cloud Tasks utilizzando l'API Cloud Tasks.

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. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

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

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

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  7. 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.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. 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.

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

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

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  13. 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.

  14. Il service account predefinito di App Engine viene creato automaticamente quando utilizzi App Engine. Puoi utilizzare questo l'account di servizio quando provi questa guida rapida. Tuttavia, a seconda configurazione dei criteri dell'organizzazione, l'account di servizio predefinito potrebbe non ti verrà automaticamente concesso il ruolo Editor per il tuo progetto. In questo caso, devi concedi all'account di servizio i seguenti ruoli:
    1. Amministratore Artifact Registry (roles/artifactregistry.admin)
    2. Writer Create-on-push Artifact Registry (roles/artifactregistry.createOnPushWriter)
    3. Amministratore Compute (roles/compute.admin)
    4. Writer log (roles/logging.logWriter)
    5. Visualizzatore oggetti Storage (roles/storage.objectViewer)

Aggiungere un'applicazione App Engine

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

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

    Vai ad App Engine

  2. Nella finestra di dialogo Ti diamo il benvenuto in App Engine, esegui una delle seguenti operazioni:

    • Se hai già creato un'applicazione App Engine ed è presente Viene visualizzato il messaggio L'applicazione App Engine è stata creata, puoi ignora i passaggi rimanenti di questa sezione e procedi con i passaggi nella sezione Installare ed eseguire il deployment dell'esempio.

      o

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

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

    Tieni presente che i nomi di europe-west e us-central vengono rispettivamente europe-west1 e us-central1 nei comandi Cloud Tasks.

  4. Non selezionare un account di servizio. il servizio App Engine predefinito .

  5. Fai clic su Avanti.

    L'applicazione è stata configurata e creata. L'operazione potrebbe richiedere un paio di minuti.

  6. Non scaricare Cloud SDK; fai clic su Lo farò più tardi.

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

Installa ed esegui il deployment dell'esempio

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à alle la coda Attività; Il deployment di server.js è stato eseguito su App Engine a un servizio worker per elaborare l'attività.

  1. Nel tuo terminale, clona il repository delle applicazioni di esempio nella tua in una macchina virtuale.

    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 worker (server.js) nell'ambiente standard di App Engine completamente gestito di Google Cloud.

    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 vedere Hello, World!.

Crea una coda di attività Cloud Tasks

Utilizza la 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 le tue attività Cloud coda
    • 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 di Cloud Tasks

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

  1. Imposta le seguenti variabili di ambiente. Il cliente utilizza queste informazioni per 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. La può essere qualsiasi dato proveniente dalla richiesta di cui il servizio worker 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 worker completamente gestito di Google Cloud.

    gcloud app logs read
    

    I log dovrebbero essere simili ai seguenti:

    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 per le risorse utilizzate in questa pagina, elimina il progetto Google Cloud Google Cloud.

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

In alternativa, puoi eliminare le risorse che hai creato:

  1. Elimina la coda di Cloud Tasks:

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

Passaggi successivi