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
- 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 workload.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Creare un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
Abilita l'API Cloud Resource Manager e Cloud Tasks:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Creare un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
Abilita l'API Cloud Resource Manager e Cloud Tasks:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
- 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
Editornel progetto. In questo caso, devi concedere al service account i seguenti ruoli:- Artifact Registry Administrator (
roles/artifactregistry.admin) - Artifact Registry Create-on-Push Writer (
roles/artifactregistry.createOnPushWriter) - Compute Admin (
roles/compute.admin) - Writer log (
roles/logging.logWriter) - Storage Object Viewer (
roles/storage.objectViewer)
- Artifact Registry Administrator (
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.
Nella console Google Cloud , vai alla pagina App Engine.
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.
Seleziona una regione per la tua applicazione e prendine nota.
Tieni presente che
europe-westeus-centralsono chiamati, rispettivamente,europe-west1eus-central1nei comandi Cloud Tasks.Non selezionare un account di servizio; viene utilizzato il service account predefinito di App Engine.
Fai clic su Avanti.
L'applicazione è configurata e creata. Questa operazione potrebbe richiedere alcuni minuti.
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à.
Nel terminale, clona il repository dell'applicazione di esempio sulla tua macchina locale.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitVai alla directory che contiene il codice campione.
cd nodejs-docs-samples/cloud-tasks/snippetsInstalla tutte le dipendenze utilizzando un gestore di pacchetti Node.js.
Puoi utilizzare NPM:
npm installIn alternativa, puoi utilizzare Yarn:
yarn installEsegui il deployment del servizio di gestione dei worker (
server.js) nell'ambiente standard di App Engine.gcloud app deploy app.yamlAssicurati che l'app contenente il servizio sia in esecuzione.
gcloud app browseNel 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.
Nel terminale, crea una coda che registri tutte le operazioni.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGIONSostituisci quanto segue:
QUEUE_NAME: un nome per la coda Cloud TasksREGION: la regione in cui hai eseguito il deployment dell'app
Attendi l'inizializzazione della coda e poi verifica che sia stata creata correttamente.
gcloud tasks queues describe QUEUE_NAME \ --location=REGIONL'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 lavoro.
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_NAMECrea un'attività con un payload di
helloe aggiungila alla coda. Il payload può essere qualsiasi dato della richiesta che il servizio worker deve elaborare l'attività.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID helloVerifica che l'attività sia stata eseguita visualizzando i log del servizio worker.
gcloud app logs readI 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 relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.
Elimina un progetto Google Cloud :
gcloud projects delete PROJECT_ID
In alternativa, puoi eliminare le risorse che hai creato:
Elimina la coda di attività Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION