Questo tutorial mostra come pianificare una funzione Cloud Run HTTP scegliendo come target un endpoint HTTP in Cloud Scheduler. Utilizza una funzione HTTP quando vuoi che la funzione abbia un endpoint URL e risponda alle richieste HTTP, ad esempio per gli webhook.
In alternativa, se hai creato una funzione CloudEvents, utilizza gli trigger di eventi Eventarc per pianificare la risposta della funzione agli eventi all'interno del progetto. Eventarc può attivare messaggi su un argomento Pub/Sub, modifiche in un bucket Cloud Storage e altro ancora. Per saperne di più, consulta Tipi di funzioni Cloud Run.
La pianificazione dell'esecuzione di una funzione Cloud Run è un caso d'uso comune per Cloud Scheduler. In questo tutorial, imparerai a:
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'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 following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - 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 following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
Tieni presente che devi concedere il ruolo Invoker di Cloud Run perché nelle funzioni Cloud Run le autorizzazioni di chiamata sono disponibili tramite la gestione del servizio Cloud Run sottostante.
Crea una funzione Cloud Run HTTP
Crea una funzione HTTP attivata da Cloud Scheduler.
Nella console Google Cloud, vai alla pagina Cloud Run.
Fai clic su Scrivi una funzione.
Nella sezione Configura:
- Nel campo Nome servizio, inserisci un nome per la funzione.
- Nell'elenco Regione, seleziona una regione.
- Non modificare la lingua di runtime predefinita.
Per l'autenticazione, seleziona Richiedi l'autenticazione.
Se il tuo progetto è soggetto a un criterio dell'organizzazione che limita i domini limitando le chiamate non autenticate, dovrai accedere al servizio di cui è stato eseguito il deployment come descritto in Testare i servizi privati.
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'invocazione.
Accetta le altre impostazioni predefinite e fai clic su Crea.
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, consulta Formato e fuso orario dei job cron.
Nell'elenco Fuso orario, seleziona un fuso orario.
Fai clic su Continua.
Nell'elenco Tipo target, seleziona HTTP.
Nel campo URL, inserisci l'URL HTTP della funzione che hai copiato in precedenza.
Nell'elenco Intestazione di autenticazione, seleziona Aggiungi token OIDC.
Nell'elenco Account di servizio, seleziona l'account di servizio creato in precedenza.
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 di 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 del job che hai creato e fai clic su Forza esecuzione.
Quando viene invocato per la prima volta, la configurazione e l'esecuzione del primo job creato in un progetto possono richiedere alcuni minuti.
Dopo l'esecuzione del job, Stato dell'ultima esecuzione dovrebbe indicare
Success
.
Verifica i risultati nelle funzioni Cloud Run
Puoi verificare che la funzione Cloud Run venga attivata ed eseguita correttamente dal job cron.
Nella console Google Cloud, vai alla pagina Cloud Run.
Seleziona Filtra servizi > Tipo di implementazione > Funzione. L'elenco dei servizi viene filtrato in modo da mostrare solo le funzioni.
Fai clic sul nome della funzione.
Viene visualizzata la pagina Dettagli del servizio, che mostra le metriche del servizio.
Fai clic sulla scheda Log.
Dovresti visualizzare una voce di log simile a
POST 200 146 B 5 ms Google-Cloud-Scheduler https://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.
Eliminare le risorse dei tutorial
Nella console Google Cloud, vai alla pagina Cloud Scheduler.
Seleziona la casella di controllo accanto al tuo job.
Fai clic su
Elimina e conferma l'eliminazione.Nella console Google Cloud, vai alla pagina Cloud Run.
Seleziona la casella di controllo accanto al servizio.
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.
Passaggi successivi
- Utilizzare Cloud Scheduler per attivare Cloud Run in base a una pianificazione
- Scrivi funzioni CloudEvents per pianificare la risposta della funzione agli eventi all'interno del progetto.