Questo tutorial mostra come attivare una funzione Cloud Run HTTP utilizzando Cloud Scheduler e scegliendo come target un endpoint HTTP. Utilizza una funzione HTTP quando è necessario che la funzione abbia un endpoint URL e risponda alle richieste HTTP, come per i webhook.
Tieni presente che puoi anche pianificare una funzione basata su eventi quando deve essere attivata direttamente in risposta agli eventi all'interno del un progetto Google Cloud, ad esempio i messaggi su un argomento Pub/Sub o le modifiche nel bucket Cloud Storage. Per ulteriori informazioni, vedi Tipi di funzioni di Cloud Run.
La pianificazione dell'esecuzione di una funzione Cloud Run è un'attività e il caso d'uso di Cloud Scheduler. In questo tutorial, imparerai a:
- Creare una funzione Cloud Run HTTP semplice.
- Creare un job Cloud Scheduler.
- Esegui il job Cloud Scheduler.
- Verifica che la funzione Cloud Run sia stata attivata dal job Cloud Scheduler.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi basata sull'utilizzo previsto,
utilizza il Calcolatore prezzi.
Prima di iniziare
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Cloud Run > Cloud Run Invoker role to the service account.
To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.
- Click Continue.
-
Click Done to finish creating the service account.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Cloud Run > Cloud Run Invoker role to the service account.
To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.
- Click Continue.
-
Click Done to finish creating the service account.
-
- Per impostazione predefinita, le funzioni Cloud Run utilizzano l'account di servizio Compute Engine predefinito creato automaticamente per il proprio account di servizio di runtime. Puoi usare questo account di servizio per fare una prova
questo tutorial. Tuttavia, a seconda della configurazione dei criteri dell'organizzazione,
all'account di servizio predefinito potrebbe non essere concesso automaticamente il ruolo Editor su
del tuo progetto. In questo caso, devi
concedere all'account di servizio
i seguenti ruoli:
- Writer Artifact Registry (
roles/artifactregistry.writer
) - Writer log (
roles/logging.logWriter
) - Storage Object Viewer (
roles/storage.objectViewer
)
- Writer Artifact Registry (
Tieni presente che devi concedere il ruolo Invoker di Cloud Run perché in Funzioni di Cloud Run (2ª generazione), le autorizzazioni di chiamata sono disponibili gestendo l'elemento dal servizio Cloud Run.
crea una funzione Cloud Run HTTP
Creare una funzione HTTP che viene attivata da Cloud Scheduler.
Nella console Google Cloud, vai alla pagina Funzioni Cloud Run.
Fai clic su
Crea funzione.Nella sezione Nozioni di base:
- Nell'elenco Ambiente, seleziona Funzione Cloud Run.
- Inserisci un nome per la funzione.
- Nell'elenco Regione, seleziona una regione.
Nella sezione Trigger, segui questi passaggi:
- Nell'elenco Tipo di trigger, seleziona HTTPS.
Per l'autenticazione, seleziona Richiedi l'autenticazione.
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'invocazione (2ª gen.).
Accetta gli altri valori predefiniti e fai clic su Avanti.
Non modificare la lingua e il codice di esempio del runtime predefiniti. Il codice non utilizza servizi cloud e non richiede l'attivazione di autorizzazioni aggiuntive. Fai clic su Esegui il deployment.
Una volta eseguito il deployment della funzione, fai clic sulla scheda Trigger.
Copia l'URL HTTP della funzione.
Crea un job Cloud Scheduler
Crea un job Cloud Scheduler che attiva un'azione utilizzando HTTP.
Nella console Google Cloud, vai alla pagina Cloud Scheduler.
Fai clic su
Crea job.Inserisci un nome per il job.
Nell'elenco Regione, seleziona una regione.
Specifica la frequenza per il job, utilizzando un formato unix-cron:
30 16 * * 7
Per ulteriori informazioni, vedi Formato del job di cron e fuso orario.
Nell'elenco Fuso orario, seleziona un fuso orario.
Fai clic su Continua.
Nell'elenco Tipo di destinazione, seleziona HTTP.
Nel campo URL, inserisci l'URL HTTP della funzione che hai precedentemente copiato.
Nell'elenco Intestazione di autenticazione, seleziona Aggiungi token OIDC.
Nell'elenco Account di servizio, seleziona l'account di servizio che hai usato in precedenza è stato creato.
Nel campo Pubblico, inserisci l'URL HTTP della funzione che hai copiato in precedenza.
Fai clic su Crea.
Hai creato un cron job che esegue la funzione Cloud Run alle 16:30 del giorno Ogni domenica.
Esegui il job Cloud Scheduler
Ora puoi eseguire il job che hai creato.
Nella console Google Cloud, vai alla pagina Cloud Scheduler.
Seleziona la casella di controllo in corrispondenza del job che hai creato e fai clic su Forza esecuzione.
Quando viene richiamato inizialmente, il primo job creato in un progetto può assumere minuti per la configurazione e l'esecuzione.
Dopo l'esecuzione del job, lo Stato dell'ultima esecuzione dovrebbe indicare
Success
.
Verifica i risultati nelle funzioni Cloud Run
Puoi verificare che la funzione Cloud Run sia stata attivata correttamente ed eseguito dal tuo cron job.
Nella console Google Cloud, vai alla pagina Funzioni Cloud Run.
Fai clic sul nome della funzione.
Si apre la pagina Dettagli funzione e il grafico Chiamate/secondo mostra la prima chiamata della funzione.
Fai clic sulla scheda Log.
Dovresti visualizzare una voce di log simile a
POST 200 146 B 5 ms Google-Cloud-Scheduler https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina progetto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Elimina le risorse del tutorial
Nella console Google Cloud, vai alla pagina Cloud Scheduler.
Seleziona la casella di controllo accanto al job.
Fai clic su
Elimina e conferma l'eliminazione dei dati.Nella console Google Cloud, vai alla pagina Funzioni di Cloud Run.
Seleziona la casella di controllo accanto alla funzione.
Fai clic su
Elimina e conferma l'eliminazione.Nella console Google Cloud, vai alla pagina Account di servizio.
Seleziona la casella di controllo accanto all'account di servizio che hai creato.
Fai clic su
Elimina e conferma l'eliminazione dei dati.