Utilizzo del produttore dell'evento Timer periodico (cron)
Il produttore di eventi timer periodico (cron) genera un evento a intervalli regolari. Questo intervallo può essere pianificato per minuto, ora, giorno o mese o una combinazione di diversi intervalli di tempo. Puoi sottoscrivere Code Engine applicazioni, funzioni e lavori per ricevere gli eventi cron.
La sottoscrizione dell'evento Timer periodico utilizza la sintassi crontab standard per specificare i dettagli dell'intervallo, nel formato * * * * *, in cui i campi sono minuto, ora, giorno del mese, mese dell'anno e giorno della
settimana. Ad esempio, per pianificare un evento per mezzanotte, specificare 0 0 * * *. Per pianificare un evento ogni venerdì a mezzanotte, specificare 0 0 * * 5. Per ulteriori informazioni su crontab, vedere CRONTAB.
Quando si sottoscrive un produttore di eventi timer periodici, è necessario fornire una destinazione (app, funzione o lavoro) e un tipo di destinazione per la sottoscrizione. Se non si fornisce una pianificazione, viene utilizzato il valore predefinito
di * * * * * (ogni minuto).
Code Engine ha quote per le sottoscrizioni timer periodiche all'interno di un progetto e dei limiti di sottoscrizione. Per ulteriori informazioni sui limiti di Code Engine, consulta Limiti e quote per Code Engine.
Sottoscrizione di eventi timer (cron) periodici per un'applicazione
Puoi lavorare con le sottoscrizioni del timer periodico dalla console o con la CLI.
Gli eventi vengono inviati alle applicazioni come richieste POST HTTP. Per ulteriori informazioni sulle informazioni incluse nell'evento, vedere HTTP intestazioni e informazioni sul corpo degli eventi.
Sottoscrizione di eventi timer (cron) periodici per un'applicazione dalla console
È possibile creare e aggiornare sottoscrizioni di eventi timer periodici per un'applicazione dalla console.
Prima di iniziare
- Creare un progetto.
- Creare un'applicazione. Ad esempio, crea un'applicazione denominata
myappche utilizza l'immagineicr.io/codeengine/cron. Questa immagine viene creata dacron.go, disponibile da Esempi per il repository IBM Cloud Code Engine GitHub.
Completa la seguente procedura per creare e aggiornare una sottoscrizione evento timer periodico per un'applicazione dalla console.
-
Dalla pagina ProgettiCode Engine, vai al tuo progetto.
-
Dalla pagina Panoramica, fare clic su Sottoscrizioni eventi.
-
Dalla pagina Sottoscrizioni evento, fare clic su Crea per creare la sottoscrizione.
-
Dalla pagina Crea sottoscrizione evento, completare la seguente procedura:
- Per Tipo di evento, selezionare il riquadro Timer periodico. Fai clic su Next.
- Per Generale, fornire un nome per la sottoscrizione del timer periodico, ad esempio
myptimer. Facoltativamente, è possibile fornire attributi evento. Si noti che se il consumatore dell'evento Timer periodico è un'applicazione, gli attributi dell'evento sono disponibili come intestazioni HTTP. Se il consumatore di eventi è un lavoro, gli attributi degli eventi sono disponibili come variabili d'ambiente. Fare clic su Avanti per procedere. - Per Pianificazione, fornire informazioni sulla sincronizzazione degli eventi. Il produttore dell'evento Timer periodico utilizza la sintassi crontab standard per specificare dettagli dell'intervallo. Scegli il tuo intervallo
dai pattern forniti o fornisci la tua espressione cron personalizzata, come
0 0 * * *, che specifica che l'evento si verifichi ogni giorno a mezzanotte. Per questo esempio, selezionare il modello di pianificazione per ogni giorno, ogni ora, ogni minuto. Si noti che l'espressione cron viene generata automaticamente. I modelli di giorno, ora e minuto e l'espressione Cron sono in UTC (Coordinated Universal Time). Se non si specifica una pianificazione, questa sottoscrizione evento invia un evento ogni minuto. Viene visualizzato un elenco di eventi pianificati imminenti. Nota che questi prossimi eventi pianificati vengono visualizzati nel tuo fuso orario. Fare clic su Avanti per procedere. - Per Dati evento personalizzati, fornire i dati da includere nel contenuto del messaggio evento. È possibile specificare il messaggio come testo semplice o in formato Base64. Per questo esempio, specificare il testo,
hello strangercome corpo del messaggio evento. Se il messaggio è in formato Base64, è possibile decodificare il messaggio quando viene inviato l'evento. È inoltre possibile specificare il tipo di contenuto per i dati evento personalizzati. Fare clic su Avanti per procedere. - Per Event consumer, specificare l'applicazione o il lavoro per ricevere gli eventi. Notare che è possibile scegliere da un elenco di applicazioni e lavori definiti. Per questo esempio, utilizza l'applicazione
myappche fa riferimento all'immagineicr.io/codeengine/cron. Se non hai ancora creato la tua applicazione o il tuo lavoro, puoi specificare il nome della tua applicazione o del tuo lavoro e crea la tua applicazione o crea il tuo lavoro dopo aver creato la sottoscrizione del timer periodico. Solo per le applicazioni, è possibile specificare facoltativamente un percorso. Per impostazione predefinita, gli eventi vengono instradati al sito URL dell'applicazione di destinazione. È possibile inviare eventi a una destinazione diversa all'interno dell'app specificando un percorso. Ad esempio, se il tuo percorso di sottoscrizione specifica/events, gli eventi vengono inviati ahttps://<base application URL>/events. Fare clic su Avanti per procedere. - Per Riepilogo, esaminare le impostazioni per la sottoscrizione dell'evento Timer periodico e apportare le modifiche, se necessario. Quando si è pronti, fare clic su Crea per creare la sottoscrizione Timer periodico.
-
Ora che la sottoscrizione al timer periodico è stata creata, andare alla pagina Sottoscrizioni eventi per visualizzare l'elenco delle sottoscrizioni definite.
-
Per aggiornare un abbonamento, vai alla pagina Periodic timer subscription. Dalla pagina Sottoscrizioni evento, fare clic sul nome della sottoscrizione che si desidera aggiornare.
-
Dalla pagina di sottoscrizione timer periodico, modificare i dati nel messaggio dell'evento. Dalla scheda Dati evento personalizzati, modificare i dati evento in
hello sunshine. Fai clic su Save per salvare le modifiche. -
Poiché l'applicazione
myappfa riferimento all'applicazionecrondi esempio, che stampa le informazioni nei file di log, è possibile visualizzare i log. Visualizzare i log dell'applicazione per l'applicazione del consumer eventimyappe verificare che il messaggio dell'evento siahello sunshine. Consultare Visualizzazione dei log dell'applicazione dalla console.
Sottoscrizione di eventi timer (cron) periodici per un'applicazione con la CLI
Prima di iniziare
- Configura il tuo ambiente CLI Code Engine.
- Creare un progetto.
- Creare un'applicazione. Ad esempio, crea un'applicazione denominata
myappche utilizza l'immagineicr.io/codeengine/cron. Questa immagine viene creata dacron.go, disponibile dal repository Esempi per IBM Cloud Code Engine GitHub
ibmcloud ce application create --name myapp --image icr.io/codeengine/cron
Per collegare la tua applicazione alla sottoscrizione del timer periodico con la CLI, utilizza il comando ibmcloud ce sub cron create.
ibmcloud ce sub cron create --name NAME --destination-type APP --destination APPLICATION_NAME --schedule CRON
Ad esempio, per creare una sottoscrizione cron che invii un evento a un'applicazione denominata myapp ogni giorno a mezzanotte:
ibmcloud ce sub cron create --name mycronevent --destination-type app --destination myapp --schedule '0 0 * * *'
È necessario racchiudere il valore di pianificazione tra virgolette per garantire che venga trattato come una stringa singola.
La seguente tabella riepiloga le opzioni utilizzate nell'esempio precedente con il comando sub cron create. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce subscription cron create.
| Opzione | Descrizione |
|---|---|
--name |
Il nome dell'origine dell'evento cron. Questo valore è obbligatorio. |
--destination |
Il nome di un'applicazione o lavoro Code Engine nel progetto corrente per ricevere gli eventi dal produttore dell'evento. Questo valore è obbligatorio. |
--destination-type |
Il tipo di destination, in questo caso, app. Il valore predefinito è app. |
--schedule |
Pianificare la frequenza di attivazione dell'evento, in formato crontab. Ad esempio, specificare */2 * * * * (in formato stringa) ogni due minuti. Per impostazione predefinita, l'evento cron viene attivato ogni minuto ed
è impostato sul fuso orario UTC. Per modificare il fuso orario, utilizzare l'opzione --time-zone. Questo valore è facoltativo. |
- Suggerimenti per l'utilizzo dei comandi
sub cron -
- Per impostazione predefinita, gli eventi vengono instradati al sito URL dell'applicazione di destinazione. Puoi inviare eventi a una destinazione differente all'interno dell'applicazione utilizzando l'opzione
--path. Ad esempio, se la tua sottoscrizione specifica--path /events, gli eventi vengono inviati ahttps://<base application URL>/events. - La dimensione dei dati per gli eventi timer periodici è limitata a un massimo di 4096 byte. Pertanto, se si utilizza l'opzione
--datao l'opzione--data-base64, è possibile inviare un massimo di 4096 byte. Per ulteriori informazioni, consultare Limiti e quote per Code Engine. - Le sottoscrizioni Cron utilizzano il fuso orario
UTCper impostazione predefinita. È possibile modificare il fuso orario specificando l'opzione--time-zonecon i comandisub cron createosub cron update. Per i valori di fuso orario validi, consultare il database TZ. Notare che se si crea una sottoscrizione utilizzandokubectle non si specifica un fuso orario, viene assegnato il fuso orarioUTC. - Se non hai ancora creato la tua applicazione o il tuo consumer di eventi del lavoro, utilizza l'opzione
--forcecon il comandosub cron createper forzare la creazione della sottoscrizione di eventi cron. È possibile specificare il nome dell'applicazione o del lavoro e creare l'applicazione o creare il lavoro dopo aver creato la sottoscrizione cron.
- Per impostazione predefinita, gli eventi vengono instradati al sito URL dell'applicazione di destinazione. Puoi inviare eventi a una destinazione differente all'interno dell'applicazione utilizzando l'opzione
Per verificare che la tua sottoscrizione cron sia stata creata correttamente, esegui il comando ibmcloud ce sub cron get --name mycronevent.
Output di esempio
Getting cron source 'mycronevent'...
OK
Name: mycronevent
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 2m21s
Created: 2021-03-14T13:37:51-05:00
Destination Type: app
Destination: myapp
Schedule: 0 0 * * *
Time Zone: UTC
Ready: true
Events:
Type Reason Age Source Messages
Normal FinalizerUpdate 12s pingsource-controller Updated "mycronevent" finalizers
Da questo output, è possibile vedere che l'applicazione di destinazione è myapp, la pianificazione è 0 0 * * * (ogni giorno a mezzanotte) e lo stato Pronto è true.
Aggiornamento della tua sottoscrizione cron con la CLI
Per aggiornare la sottoscrizione cron con la CLI, utilizza il comando ibmcloud ce subscription cron update. Ad esempio, aggiorna
la sottoscrizione mycronevent per modificare la pianificazione in modo da inviare un evento a un'app denominata myapp ogni 2 minuti.
ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'
Per verificare che la tua sottoscrizione cron sia stata aggiornata correttamente, esegui il comando ibmcloud ce sub cron get --name mycronevent. La pianificazione per la sottoscrizione viene aggiornata.
Output di esempio
Getting cron source 'mycronevent'...
OK
Name: mycronevent
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 2m21s
Created: 2021-08-31T16:00:49-04:00
Destination Type: app
Destination: myapp
Schedule: */2 * * * *
Time Zone: UTC
Ready: true
Events:
Type Reason Age Source Messages
Normal PingSourceSynchronized 7s (x3 over 13m) pingsource-controller PingSource adapter is synchronized
Vuoi provare un tutorial? Consultare la sezione Sottoscrizione agli eventi cronometro periodico. Cerchi altri esempi di codice? Consulta gli Esempi per il repository IBM Cloud Code Engine GitHub.
Visualizzazione delle informazioni sull'evento per un'applicazione dalla console
Per visualizzare le informazioni sulle sottoscrizioni degli eventi,
- Dalla pagina ProgettiCode Engine, vai al tuo progetto.
- Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
Se l'applicazione stampa le informazioni nei file di log, come fa l'applicazione cron di esempio, visualizzare i file di log per l'applicazione event consumer. Consultare Visualizzazione dei log dell'applicazione dalla console.
Visualizzazione delle informazioni evento per una applicazione con la CLI
Se la tua applicazione stampa le informazioni nei file di log, come l'applicazione cron di esempio, visualizza i file di log per la tua applicazione event consumer con il comando CLI ibmcloud ce app logs.
Ad esempio, per visualizzare i log per l'applicazione che hai creato nell'esempio precedente,
ibmcloud ce application logs --application myapp
Output di esempio
Getting logs for all instances of application 'myapp'...
OK
myapp-mw25y-1-deployment-8579d868f4-ssfnr/user-container:
Listening on port 8080
2021-04-13 17:22:08 - Received:
URL: /
Header: Accept-Encoding=[gzip]
Header: Ce-Id=[d2faa29c-8088-410f-bb30-416085c52a0b]
Header: Ce-Source=[/apis/v1/namespaces/81fvkfqi3n6/pingsources/mycronevent]
Header: Ce-Specversion=[1.0]
Header: Ce-Time=[2021-04-13T17:22:00.059682656Z]
Header: Ce-Type=[dev.knative.sources.ping]
Header: Content-Length=[0]
Header: Forwarded=[for=172.30.136.209;proto=http, for=172.30.48.203]
Header: K-Proxy-Request=[activator]
Header: Traceparent=[00-b13196fe439b6d7d67f3205b2f655788-e9fee441cd41158c-00]
Header: User-Agent=[Go-http-client/1.1]
Header: X-B3-Sampled=[0]
Header: X-B3-Spanid=[1dd2d76079811204]
Header: X-B3-Traceid=[710b7c383682d0cd1dd2d76079811204]
Header: X-Envoy-Attempt-Count=[1]
Header: X-Envoy-Decorator-Operation=[myapp-mw25y-1.81fvkfqi3n6.svc.cluster.local:80/*]
Header: X-Envoy-Internal=[true]
Header: X-Envoy-Peer-Metadata=[ChQKDkFQUF9DT05UQUlORVJTEgIaAAoaCgpDTFVTVEVSX0lEEgwaCkt1YmVybmV0ZXMKGAoNSVNUSU9fVkVSU0lPThIHGgUxLjkuMQq+AwoGTEFCRUxTErMDKrADCh0KA2FwcBIWGhRpc3Rpby1pbmdyZXNzZ2F0ZXdheQoTCgVjaGFydBIKGghnYXRld2F5cwoUCghoZXJpdGFnZRIIGgZUaWxsZXIKNgopaW5zdGFsbC5vcGVyYXRvci5pc3Rpby5pby9vd25pbmctcmVzb3VyY2USCRoHdW5rbm93bgoZCgVpc3RpbxIQGg5pbmdyZXNzZ2F0ZXdheQoZCgxpc3Rpby5pby9yZXYSCRoHZGVmYXVsdAowChtvcGVyYXRvci5pc3Rpby5pby9jb21wb25lbnQSERoPSW5ncmVzc0dhdGV3YXlzCiAKEXBvZC10ZW1wbGF0ZS1oYXNoEgsaCTU1YjU0N2Y0ZgoSCgdyZWxlYXNlEgcaBWlzdGlvCjkKH3NlcnZpY2UuaXN0aW8uaW8vY2Fub25pY2FsLW5hbWUSFhoUaXN0aW8taW5ncmVzc2dhdGV3YXkKLwojc2VydmljZS5pc3Rpby5pby9jYW5vbmljYWwtcmV2aXNpb24SCBoGbGF0ZXN0CiIKF3NpZGVjYXIuaXN0aW8uaW8vaW5qZWN0EgcaBWZhbHNlChoKB01FU0hfSUQSDxoNY2x1c3Rlci5sb2NhbAouCgROQU1FEiYaJGlzdGlvLWluZ3Jlc3NnYXRld2F5LTU1YjU0N2Y0Zi10aHN4cAobCglOQU1FU1BBQ0USDhoMaXN0aW8tc3lzdGVtCl0KBU9XTkVSElQaUmt1YmVybmV0ZXM6Ly9hcGlzL2FwcHMvdjEvbmFtZXNwYWNlcy9pc3Rpby1zeXN0ZW0vZGVwbG95bWVudHMvaXN0aW8taW5ncmVzc2dhdGV3YXkKFwoRUExBVEZPUk1fTUVUQURBVEESAioACicKDVdPUktMT0FEX05BTUUSFhoUaXN0aW8taW5ncmVzc2dhdGV3YXk=]
Header: X-Envoy-Peer-Metadata-Id=[router~172.30.48.203~istio-ingressgateway-55b547f4f-thsxp.istio-system~istio-system.svc.cluster.local]
Header: X-Forwarded-For=[172.30.136.209, 172.30.48.203, 172.30.167.171]
Header: X-Forwarded-Proto=[http]
Header: X-Request-Id=[fe8d6cec-f0e4-47c2-b9ae-81764cb377bc]
Per ulteriori informazioni sulla registrazione, vedi Visualizzazione dei log.
Cerchi altri esempi di codice? Consulta gli Esempi per il repository IBM Cloud Code Engine GitHub.
Informazioni sul corpo e sull'intestazione cron per gli eventi distribuiti alle applicazioni
Tutti gli eventi consegnati alle applicazioni vengono ricevuti come messaggi HTTP POST. Gli eventi contengono alcune intestazioni di HTTP che aiutano a determinare rapidamente le informazioni chiave sugli eventi senza esaminare il corpo (la
logica aziendale) dell'evento. Per ulteriori informazioni, consultare CloudEvents spec.
Intestazioni
La seguente tabella descrive le intestazioni per gli eventi timer periodico (cron):
| Intestazione | Descrizione |
|---|---|
ce-id |
Un identificativo univoco per l'evento, a meno che un evento non venga riprodotto, nel qual caso, viene assegnato lo stesso ID. |
ce-source |
Un riferimento URI che indica dove questo evento ha avuto origine dal produttore dell'evento. Per gli eventi cron, questa intestazione è un riferimento URI con dominio secondario per il progetto e il nome della sottoscrizione cron,
nel seguente formato: /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME]. |
ce-specversion |
La versione della specifica CloudEvents. Questo valore è sempre 1.0. |
ce-time |
L'ora in cui è stato generato l'evento. |
ce-type |
Il tipo di evento. Per gli eventi cron, questo è dev.knative.sources.ping. |
Output di esempio
ce-id: c329ed76-5004-4383-a3cc-c7a9b82e3ac6
ce-source: /apis/v1/namespaces/6b0v3x9xek5/pingsources/mycronevent
ce-specversion: 1.0
ce-time: 2021-02-26T19:19:00.497637287Z
ce-type: dev.knative.sources.ping
Corpo HTTP
Il corpo di HTTP contiene l'evento stesso ed è nel formato specificato al momento della creazione o dell'aggiornamento della sottoscrizione.
Sottoscrizione di eventi temporizzatore periodico (cron) per una funzione
Puoi lavorare con le sottoscrizioni del timer periodico dalla console o con la CLI.
Gli eventi vengono inviati alle funzioni come richieste HTTP POST. Per ulteriori informazioni sulle informazioni incluse nell'evento, vedere HTTP intestazioni e informazioni sul corpo degli eventi.
Sottoscrizione a eventi timer periodico (cron) per una funzione dalla console
È possibile creare e aggiornare le sottoscrizioni di eventi timer periodici per una funzione dalla console.
Prima di iniziare
- Creare un progetto.
- Creare una funzione. Ad esempio, creare una funzione denominata
myfunche utilizza il seguente codice seriale di esempio:
/**
* The `main` function is the entry-point into the function.
* It has one optional argument 'params', which carries all the
* parameters the function was invoked with.
*/
async function main(params) {
// add process environment variables
params.env = process.env
// print recognizable string to the log
console.log('Function invocation via cron subscription');
// log params object, so invocation can be observed in the logs
console.dir(params);
// craft a simple HTTP RC 200 response,
// which also echos the params object
response = {
statusCode: 200,
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
body: params
};
return response
}
Completare la seguente procedura per creare e aggiornare una sottoscrizione evento timer periodico per una funzione dalla console.
-
Dalla pagina ProgettiCode Engine, vai al tuo progetto.
-
Dalla pagina Panoramica, fare clic su Sottoscrizioni eventi.
-
Dalla pagina Sottoscrizioni evento, fare clic su Crea per creare la sottoscrizione.
-
Dalla pagina Crea sottoscrizione evento, completare la seguente procedura:
- Per Tipo di evento, selezionare il riquadro Timer periodico. Fai clic su Next.
- Per Generale, fornire un nome per la sottoscrizione del timer periodico, ad esempio
myptimer. Facoltativamente, è possibile fornire attributi evento. Si noti che se il consumatore dell'evento Timer periodico è un'applicazione, gli attributi dell'evento sono disponibili come intestazioni HTTP. Se l'event consumer è una funzione, gli attributi evento sono disponibili come coppie chiave - valore nella proprietà__ce_headersdell'oggettoparams. Fare clic su Avanti per procedere. - Per Pianificazione, fornire informazioni sulla sincronizzazione degli eventi. Il produttore dell'evento Timer periodico utilizza la sintassi crontab standard per specificare dettagli dell'intervallo. Scegli il tuo intervallo
dai pattern forniti o fornisci la tua espressione cron personalizzata, come
0 0 * * *, che specifica che l'evento si verifichi ogni giorno a mezzanotte. Per questo esempio, selezionare il modello di pianificazione per ogni giorno, ogni ora, ogni minuto. Si noti che l'espressione cron viene generata automaticamente. I modelli di giorno, ora e minuto e l'espressione Cron sono in UTC (Coordinated Universal Time). Se non si specifica una pianificazione, questa sottoscrizione evento invia un evento ogni minuto. Viene visualizzato un elenco di eventi pianificati imminenti. Nota che questi prossimi eventi pianificati vengono visualizzati nel tuo fuso orario. Fare clic su Avanti per procedere. - Per Dati evento personalizzati, fornire i dati da includere nel contenuto del messaggio evento. È possibile specificare il messaggio come testo semplice o in formato Base64. Per questo esempio, specificare il testo,
hello strangercome corpo del messaggio evento. Se il messaggio è in formato Base64, è possibile decodificare il messaggio quando viene inviato l'evento. È inoltre possibile specificare il tipo di contenuto per i dati evento personalizzati. Fare clic su Avanti per procedere. - Per Event consumer, scegliere il tipo di componente
Functione specificare la funzione per ricevere gli eventi. Notare che è possibile scegliere da un elenco di funzioni definite. Per questo esempio, utilizzare la funzionemyfunche utilizza il codice seriale di esempio. Se non hai ancora creato la tua funzione, puoi specificare il nome della tua funzione e Creazione dei carichi di lavoro della funzione con codice in linea dopo aver creato la sottoscrizione del timer periodico. Fare clic su Avanti per procedere. - Per Riepilogo, esaminare le impostazioni per la sottoscrizione dell'evento Timer periodico e apportare le modifiche, se necessario. Quando si è pronti, fare clic su Crea per creare la sottoscrizione Timer periodico.
-
Ora che la sottoscrizione al timer periodico è stata creata, andare alla pagina Sottoscrizioni eventi per visualizzare l'elenco delle sottoscrizioni definite.
-
Per aggiornare un abbonamento, vai alla pagina Periodic timer subscription. Dalla pagina Sottoscrizioni evento, fare clic sul nome della sottoscrizione che si desidera aggiornare.
-
Dalla pagina di sottoscrizione timer periodico, modificare i dati nel messaggio dell'evento. Dalla scheda Dati evento personalizzati, modificare i dati evento in
{ "hello": "world" }e scegliereapplication/jsoncome Tipo di contenuto dei dati evento personalizzati. Fai clic su Save per salvare le modifiche. -
Poiché la funzione
myfunutilizza il codice inline di esempio, che stampa l'oggettoparamscompleto nei file di log, è possibile visualizzare i log per verificare che la funzione sia stata richiamata. Visualizzare i log della funzione permyfunevent consumer function e verificare che l'oggettoparamscontenga una coppia chiave - valorehello: world. È anche possibile vedere che il campobodydell'oggettoparamscontiene il valore codificato Base64{ "hello": "world" }Consultare Visualizzazione dei log di funzione dalla console.
Sottoscrizione di eventi timer periodici (cron) per una funzione con la CLI
Prima di iniziare
- Configura il tuo ambiente CLI Code Engine.
- Creare un progetto.
- Creare una funzione. Ad esempio, creare una funzione denominata
myfunche utilizza il seguente codice in linea di esempio:
/**
* The `main` function is the entry-point into the function.
* It has one optional argument 'params', which carries all the
* parameters the function was invoked with.
*/
async function main(params) {
// add process environment variables
params.env = process.env
// print recognizable string to the log
console.log('Function invocation via cron subscription');
// log params object, so invocation can be observed in the logs
console.dir(params);
// craft a simple HTTP RC 200 response,
// which also echos the params object
response = {
statusCode: 200,
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
body: params
};
return response
}
Salvare il codice in un file denominato sample_inline_code.js e creare la funzione utilizzando il comando seguente:
ibmcloud ce function create --name myfun --runtime nodejs --inline-code ./sample_inline_code.js
Per collegare la tua funzione alla sottoscrizione del timer periodico con la CLI, utilizza il comando ibmcloud ce sub cron create:
ibmcloud ce sub cron create --name NAME --destination-type function --destination FUNCTION_NAME --schedule CRON
Ad esempio, per creare una sottoscrizione cron che invii un evento a un'applicazione denominata myfun ogni giorno a mezzanotte:
ibmcloud ce sub cron create --name mycronevent --destination-type function --destination myfun --schedule '0 0 * * *'
È necessario racchiudere il valore di pianificazione tra virgolette per garantire che venga trattato come una stringa singola.
La seguente tabella riepiloga le opzioni utilizzate nell'esempio precedente con il comando sub cron create. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce subscription cron create.
| Opzione | Descrizione |
|---|---|
--name |
Il nome dell'origine dell'evento cron. Questo valore è obbligatorio. |
--destination |
Il nome di un'applicazione, funzione o lavoro Code Engine nel progetto corrente per ricevere gli eventi dal produttore dell'evento. Questo valore è obbligatorio. |
--destination-type |
Il tipo di destination, in questo caso, function. Il valore predefinito è app. |
--schedule |
Pianificare la frequenza di attivazione dell'evento, in formato crontab. Ad esempio, specificare */2 * * * * (in formato stringa) ogni due minuti. Per impostazione predefinita, l'evento cron viene attivato ogni minuto ed
è impostato sul fuso orario UTC. Per modificare il fuso orario, utilizzare l'opzione --time-zone. Questo valore è facoltativo. |
- Suggerimenti per l'utilizzo dei comandi
sub cron -
- La dimensione dei dati per gli eventi timer periodici è limitata a un massimo di 4096 byte. Pertanto, se si utilizza l'opzione
--datao l'opzione--data-base64, è possibile inviare un massimo di 4096 byte. Per ulteriori informazioni, consultare Limiti e quote per Code Engine. - Le sottoscrizioni Cron utilizzano il fuso orario
UTCper impostazione predefinita. È possibile modificare il fuso orario specificando l'opzione--time-zonecon i comandisub cron createosub cron update. Per i valori di fuso orario validi, consultare il database TZ. Notare che se si crea una sottoscrizione utilizzandokubectle non si specifica un fuso orario, viene assegnato il fuso orarioUTC. - Se non hai ancora creato la tua applicazione o il tuo consumer di eventi del lavoro, utilizza l'opzione
--forcecon il comandosub cron createper forzare la creazione della sottoscrizione di eventi cron. È possibile specificare il nome della funzione Crea funzione dopo aver creato la sottoscrizione cron.
- La dimensione dei dati per gli eventi timer periodici è limitata a un massimo di 4096 byte. Pertanto, se si utilizza l'opzione
Per verificare che la tua sottoscrizione cron sia stata creata correttamente, esegui il comando ibmcloud ce sub cron get --name mycronevent.
Output di esempio
Getting cron event subscription 'mycronevent'...
OK
Name: mycronevent
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 2m21s
Created: 2024-03-14T13:37:51-05:00
Destination Type: function
Destination: myfun
Schedule: 0 0 * * *
Time Zone: UTC
Ready: true
Events:
Type Reason Age Source Messages
Normal FinalizerUpdate 20s pingsource-controller Updated "mycronevent" finalizers
Normal PingSourceSynchronized 20s pingsource-controller PingSource adapter is synchronized
Da questo output, è possibile vedere che la funzione di destinazione è myfun, la pianificazione è 0 0 * * * (ogni giorno a mezzanotte) e lo stato Pronto è true.
Aggiornamento della tua sottoscrizione cron con la CLI
Per aggiornare la sottoscrizione cron con la CLI, utilizza il comando ibmcloud ce subscription cron update. Ad esempio, aggiornare
la sottoscrizione mycronevent per modificare la pianificazione per inviare un evento ad una funzione denominata myfun ogni 2 minuti:
ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'
Per verificare che la tua sottoscrizione cron sia stata aggiornata correttamente, esegui il comando ibmcloud ce sub cron get --name mycronevent. La pianificazione per la sottoscrizione viene aggiornata.
Output di esempio
Getting cron event subscription 'mycronevent'...
OK
Name: mycronevent
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 37m41s
Created: 2024-03-14T14:04:51-05:00
Destination Type: function
Destination: myfun
Schedule: */2 * * * *
Time Zone: UTC
Ready: true
Events:
Type Reason Age Source Messages
Normal FinalizerUpdate 20s pingsource-controller Updated "mycronevent" finalizers
Normal PingSourceSynchronized 20s pingsource-controller PingSource adapter is synchronized
Vuoi provare un tutorial? Consultare la sezione Sottoscrizione agli eventi cronometro periodico. Cerchi altri esempi di codice? Consulta gli Esempi per il repository IBM Cloud Code Engine GitHub.
Visualizzazione delle informazioni sugli eventi di una funzione dalla console
Per visualizzare le informazioni sugli abbonamenti agli eventi:
- Dalla pagina ProgettiCode Engine, vai al tuo progetto.
- Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
Se la vostra funzione stampa informazioni nei file di log, come fa il lavoro di esempio 'codeengine, visualizzate i file di log della vostra funzione. Consultare Visualizzazione dei log dei lavori dalla console.
Informazioni sul corpo e sull'intestazione cron per gli eventi consegnati alle funzioni
Tutti gli eventi consegnati alle funzioni vengono ricevuti come messaggi HTTP POST. Gli eventi contengono alcune intestazioni di HTTP che aiutano a determinare rapidamente le informazioni chiave sugli eventi. HTTP sono memorizzati nella proprietà
__ce_headers dell'oggetto params con cui viene invocata la funzione. Per ulteriori informazioni, consultare CloudEvents spec.
Intestazioni
La seguente tabella descrive le coppie chiave - valore in __ce_headers per gli eventi cronometro:
| Intestazione | Descrizione |
|---|---|
Ce-Id |
Un identificativo univoco per l'evento, a meno che un evento non venga riprodotto, nel qual caso, viene assegnato lo stesso ID. |
Ce-Source |
Un riferimento URI che indica dove questo evento ha avuto origine dal produttore dell'evento. Per gli eventi cron, questa intestazione è un riferimento URI con dominio secondario per il progetto e il nome della sottoscrizione cron,
nel seguente formato: /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME]. |
Ce-Specversion |
La versione della specifica CloudEvents. Questo valore è sempre 1.0. |
Ce-Time |
L'ora in cui è stato generato l'evento. |
Ce-Type |
Il tipo di evento. Per gli eventi cron, questo è dev.knative.sources.ping. |
Output di esempio
__ce_headers: {
"Ce-Id": "b861440f-0e17-44ab-9bab-826da0c9713f",
"Ce-Source": "/apis/v1/namespaces/7iuw2furi55/pingsources/mycronevent",
"Ce-Specversion": "1.0",
"Ce-Time": "2024-06-02T10:56:00.062572905Z",
"Ce-Type": "dev.knative.sources.ping"
}
Corpo HTTP
Il corpo di HTTP contiene i dati dell'evento personalizzato ed è nel formato specificato dall'utente al momento della creazione o dell'aggiornamento della sottoscrizione. È possibile accedere ai dati evento personalizzati dalla proprietà
body nell'oggetto params.
Esempio di oggetto params per una chiamata evento con dataset evento personalizzato su hello stranger e Tipo di contenuto dei dati evento personalizzato impostato su text/plain:
{
"__ce_headers": {
"Ce-Id": "b861440f-0e17-44ab-9bab-826da0c9713f",
"Ce-Source": "/apis/v1/namespaces/7iuw2furi55/pingsources/mycronevent",
"Ce-Specversion": "1.0",
"Ce-Time": "2024-06-02T10:56:00.062572905Z",
"Ce-Type": "dev.knative.sources.ping",
"Content-Length": "14",
"Content-Type": "text/plain"
},
"body": "hello stranger"
}
Il valore per body è codificato Base64, se Tipo di contenuto dei dati evento personalizzati è impostato su application/json.
Sottoscrizione di eventi timer (cron) periodici per un lavoro
Puoi lavorare con le sottoscrizioni del timer periodico dalla console o con la CLI.
Il lavoro riceve gli eventi come variabili di ambiente. Per ulteriori informazioni sulle variabili di ambiente inviate da cron, vedi Variabili di ambiente per gli eventi.
Sottoscrizione di eventi cronometro per un lavoro dalla console
È possibile creare e aggiornare sottoscrizioni di eventi timer periodici per un job dalla console.
Prima di iniziare
- Creare un progetto.
- Creare un lavoro. Ad esempio, crea un lavoro denominato
myjobche utilizza l'immaginecodeengine. Questa immagine viene creata dacodeengine.go, disponibile da Esempi per il repository IBM Cloud Code Engine GitHub.
Completare i passi riportati di seguito per creare e aggiornare una sottoscrizione evento timer periodico per un lavoro dalla console.
-
Dalla pagina ProgettiCode Engine, vai al tuo progetto.
-
Dalla pagina Panoramica, fare clic su Sottoscrizioni eventi.
-
Dalla pagina Sottoscrizioni evento, fare clic su Crea per creare la sottoscrizione.
-
Dalla pagina Crea sottoscrizione evento, completare la seguente procedura:
- Per Generale, fornire un nome per la sottoscrizione del timer periodico, ad esempio
myptimer2. Facoltativamente, è possibile fornire attributi evento. Si noti che se il consumatore dell'evento Timer periodico è un'applicazione, gli attributi dell'evento sono disponibili come intestazioni HTTP. Se il consumatore di eventi è un lavoro, gli attributi degli eventi sono disponibili come variabili d'ambiente. Fare clic su Avanti per procedere. - Per Pianificazione, fornire informazioni sulla sincronizzazione degli eventi. Il produttore dell'evento Timer periodico utilizza la sintassi crontab standard per specificare dettagli dell'intervallo. Scegli il tuo intervallo
dai pattern forniti o fornisci la tua espressione cron personalizzata, come
0 0 * * *, che specifica che l'evento si verifichi ogni giorno a mezzanotte. Per questo esempio, selezionare il modello di pianificazione per ogni giorno, ogni ora, ogni minuto. Si noti che l'espressione cron viene generata automaticamente. I modelli di giorno, ora e minuto e l'espressione Cron sono in UTC (Coordinated Universal Time). Se non si specifica una pianificazione, questa sottoscrizione evento invia un evento ogni minuto. Viene visualizzato un elenco di eventi pianificati imminenti. Nota che questi prossimi eventi pianificati vengono visualizzati nel tuo fuso orario. Fare clic su Avanti per procedere. - Per Dati evento personalizzati, fornire i dati da includere nel contenuto del messaggio evento. È possibile specificare il messaggio come testo semplice o in formato Base64. Per questo esempio, specificare il testo,
hello strangercome corpo del messaggio evento. Se il messaggio è in formato Base64, è possibile decodificare il messaggio quando viene inviato l'evento. È inoltre possibile specificare il tipo di contenuto per i dati evento personalizzati. Fare clic su Avanti per procedere. - Per Event consumer, specificare l'applicazione o il lavoro per ricevere gli eventi. Notare che è possibile scegliere da un elenco di applicazioni e lavori definiti. Per questo esempio, utilizzare il lavoro
myjobche fa riferimento all'immagineicr.io/codeengine/codeengine. Se non hai ancora creato il tuo lavoro, puoi specificare il nome del tuo lavoro e creare il tuo lavoro dopo aver creato la sottoscrizione del timer periodico. Fare clic su Avanti per procedere. - Per Riepilogo, esaminare le impostazioni per la sottoscrizione dell'evento Timer periodico e apportare le modifiche, se necessario. Quando si è pronti, fare clic su Crea per creare la sottoscrizione Timer periodico.
- Per Generale, fornire un nome per la sottoscrizione del timer periodico, ad esempio
-
Ora che la sottoscrizione al timer periodico è stata creata, andare alla pagina Sottoscrizioni eventi per visualizzare l'elenco delle sottoscrizioni definite.
-
Per aggiornare un abbonamento, vai alla pagina Periodic timer subscription. Dalla pagina Sottoscrizioni evento, fare clic sul nome della sottoscrizione che si desidera aggiornare.
-
Dalla pagina di sottoscrizione timer periodico, modificare i dati nel messaggio dell'evento. Dalla scheda Dati evento personalizzati, modificare i dati evento in
hello sunshine. Fai clic su Save per salvare le modifiche. -
Poiché il job
myjobfa riferimento all'applicazionecodeenginedi esempio, che stampa le informazioni nei file di log, è possibile visualizzare i log. Visualizzare i log del lavoro per il lavoro del consumer eventimyjobe verificare che il messaggio dell'evento siahello sunshine. Consultare Visualizzazione dei log dei lavori dalla console.
Sottoscrizione a eventi timer periodici (cron) per un lavoro con CLI
Prima di iniziare
- Configura il tuo ambiente CLI Code Engine.
- Creare un progetto.
- Creare un lavoro. Ad esempio, crea un lavoro denominato
myjobche utilizza l'immagineicr.io/codeengine/codeengine. Questa immagine viene creata dacodeengine.go, disponibile da Esempi per il repository IBM Cloud Code Engine GitHub.
ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine
Per collegare il tuo lavoro alla sottoscrizione del timer periodico con la CLI utilizzando il comando ibmcloud ce sub cron create.
ibmcloud ce sub cron create --name NAME --destination-type job --destination JOB_NAME --schedule CRON
Ad esempio, per creare una sottoscrizione cron che invii un evento a un lavoro denominato myjob ogni 5 minuti,
ibmcloud ce sub cron create --name mycronevent --destination-type job --destination myjob --schedule '*/5 * * * *' --data '{ "message": "Hello world!" }' --content-type application/json
È necessario racchiudere il valore di pianificazione tra virgolette per garantire che venga trattato come una stringa singola.
La seguente tabella riepiloga le opzioni utilizzate con il comando sub cron create in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce subscription cron create.
| Opzione | Descrizione |
|---|---|
--name |
Il nome dell'origine dell'evento cron. |
--destination-type |
Il tipo di destination, in questo caso, job. |
--destination |
Il nome di un lavoro Code Engine nel progetto corrente per ricevere gli eventi dal produttore dell'evento. |
--schedule |
Pianificare la frequenza di attivazione dell'evento, in formato crontab. Ad esempio, specificare */2 * * * * (in formato stringa) ogni due minuti. Per impostazione predefinita, l'evento cron viene attivato ogni minuto ed
è impostato sul fuso orario UTC. Per modificare il fuso orario, utilizzare l'opzione --time-zone. Questo valore è facoltativo. |
- Suggerimenti per l'utilizzo dei comandi
sub cron -
- La dimensione dei dati per gli eventi timer periodici è limitata a un massimo di 4096 byte. Pertanto, se si utilizza l'opzione
--datao l'opzione--data-base64, è possibile inviare un massimo di 4096 byte. Per ulteriori informazioni, consultare Limiti e quote per Code Engine. - Le sottoscrizioni Cron utilizzano il fuso orario
UTCper impostazione predefinita. È possibile modificare il fuso orario specificando l'opzione--time-zonecon i comandisub cron createosub cron update. Per i valori di fuso orario validi, consultare il database TZ. Notare che se si crea una sottoscrizione utilizzandokubectle non si specifica un fuso orario, viene assegnato il fuso orarioUTC. - Se non hai ancora creato la tua applicazione o il tuo consumer di eventi del lavoro, utilizza l'opzione
--forcecon il comandosub cron createper forzare la creazione della sottoscrizione di eventi cron. È possibile specificare il nome dell'applicazione o del lavoro e creare l'applicazione o creare il lavoro dopo aver creato la sottoscrizione cron.
- La dimensione dei dati per gli eventi timer periodici è limitata a un massimo di 4096 byte. Pertanto, se si utilizza l'opzione
Per verificare che la sottoscrizione cron sia stata creata correttamente, eseguire ibmcloud ce sub cron get --name mycronevent.
Output di esempio
Getting cron source 'mycronevent'...
OK
Name: mycronevent
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 54s
Created: 2021-04-13T11:38:50-05:00
Destination Type: job
Destination: myjob
Schedule: */5 * * * *
Time Zone: UTC
Content Type: application/json
Data: { "message": "Hello world!" }
Ready: true
Events:
Type Reason Age Source Messages
Normal FinalizerUpdate 12s pingsource-controller Updated "mycronevent" finalizers
Da questo output, è possibile vedere che il lavoro di destinazione è myjob, la pianificazione è */5 * * * * (ogni 5 minuti) e lo stato Pronto è true.
Le esecuzioni di lavori create dalle sottoscrizioni vengono eliminate dopo 10 minuti.
Aggiornamento della sottoscrizione cron con la CLI (job)
Per aggiornare la sottoscrizione cron con la CLI, utilizza il comando ibmcloud ce subscription cron update. Ad esempio, aggiorna
la sottoscrizione mycronevent per modificare la pianificazione in modo da inviare un evento a un'app denominata myapp ogni 2 minuti.
ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'
Per verificare che la tua sottoscrizione cron sia stata aggiornata correttamente, esegui il comando ibmcloud ce sub cron get --name mycronevent. La pianificazione per la sottoscrizione viene aggiornata.
Output di esempio
Getting cron source 'mycronevent'...
OK
Name: mycronevent
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 2m21s
Created: 2021-08-31T16:00:49-04:00
Destination Type: job
Destination: myjob
Schedule: */2 * * * *
Time Zone: UTC
Content Type: application/json
Data: { "message": "Hello world!" }
Ready: true
Events:
Type Reason Age Source Messages
Normal PingSourceSynchronized 7s (x3 over 13m) pingsource-controller PingSource adapter is synchronized
Visualizzazione delle informazioni sugli eventi per un lavoro dalla console
Per visualizzare le informazioni sulle sottoscrizioni degli eventi,
- Dalla pagina ProgettiCode Engine, vai al tuo progetto.
- Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
Se il proprio lavoro stampa le informazioni nei file di log, come fa il lavoro codeengine di esempio, visualizzare i file di log per il lavoro del consumer di eventi. Consultare Visualizzazione dei log dei lavori dalla console.
Visualizzazione delle informazioni sull'evento per un lavoro con la CLI
Se il lavoro stampa le informazioni nei file di log, come fa il lavoro codeengine di esempio, è possibile trovare l'esecuzione del lavoro creata dall'evento Timer periodico (cron) e quindi visualizzare i log di esecuzione del
lavoro. Ad esempio, per trovare il lavoro eseguito per il lavoro nell'esempio precedente,
ibmcloud ce jobrun list
Output di esempio
Listing job runs...
OK
Name Failed Pending Requested Running Succeeded Unknown Age
myjob-kd829 0 0 0 0 1 0 43s
Visualizzare i log per l'esecuzione del lavoro specificando il relativo nome.
ibmcloud ce jobrun logs --jobrun myjob-kd829
Output di esempio
Hello from helloworld! I'm a batch job! Index: 0
Hello World from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_DATA={ "message": "Hello world!" }
CE_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_SOURCE=/apis/v1/namespaces/1234abcd1a2/pingsources/mycroneventjob
CE_SPECVERSION=1.0
CE_TIME=2021-04-13T17:41:00.429658447Z
CE_TYPE=dev.knative.sources.ping
CONTENT_TYPE=application/json
HOME=/root
HOSTNAME=myjob-mpps4-0-0
JOB_INDEX=0
KUBERNETES_PORT=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=172.21.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
Tenere presente che le informazioni di log per le esecuzioni del lavoro durano solo un'ora. Per ulteriori informazioni sulla registrazione, vedi Visualizzazione dei log.
Per ulteriori informazioni sulle variabili di ambiente inviate da cron, vedi Variabili di ambiente per gli eventi.
Cerchi altri esempi di codice? Consulta gli Esempi per il repository IBM Cloud Code Engine GitHub.
Variabili di ambiente per gli eventi consegnati ai lavori
Tutti gli eventi consegnati a un lavoro vengono ricevuti come variabili di ambiente. Tali variabili di ambiente includono un prefisso CE_ e si basano sulla CloudEvents spec.
Ogni evento contiene alcune variabili di ambiente comuni che vengono visualizzate ogni volta che l'evento viene consegnato a un lavoro. L'insieme effettivo di variabili in ogni evento può includere più opzioni. Per ulteriori informazioni,
consultare Attributi CloudEvent.
La seguente tabella descrive le variabili di ambiente specifiche per gli eventi cron.
| Variabile | Descrizione |
|---|---|
CE_DATA |
I dati (corpo) per l'evento. Consultare CE_DATA per gli eventi cron. |
CE_ID |
Un identificativo univoco per l'evento, a meno che un evento non venga riprodotto, nel qual caso, viene assegnato lo stesso ID. |
CE_SOURCE |
Un riferimento URI che indica dove questo evento ha avuto origine dal produttore dell'evento. Per gli eventi cron, si tratta di un riferimento URI con dominio secondario per il progetto e il nome della sottoscrizione cron, nel seguente
formato: /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME]. |
CE_SPECVERSION |
La versione della specifica CloudEvents. Questo valore è sempre 1.0. |
CE_TIME |
L'ora in cui è stato generato l'evento. |
CE_TYPE |
Il tipo di evento. Per gli eventi cron, questo è dev.knative.sources.ping. |
CE_DATA variabile di ambiente
Per gli eventi timer periodici, la variabile di ambiente CE_DATA contiene l'evento stesso ed è nel formato specificato quando si crea o si aggiorna la sottoscrizione.
Output di esempio
CE_DATA={ "message": "Hello world!" }
CE_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_SOURCE=/apis/v1/namespaces/1234abcd1a2/pingsources/mycroneventjob
CE_SPECVERSION=1.0
CE_TIME=2021-04-13T17:41:00.429658447Z
CE_TYPE=dev.knative.sources.ping
Definizione di attributi evento aggiuntivi
Quando si crea una sottoscrizione, è possibile definire ulteriori attributi evento da includere in qualsiasi evento generato. Questi attributi dell'evento appaiono simili a qualsiasi altro attributo CloudEvent nella consegna dell'evento.
Se si sceglie di specificare il nome di un attributo CloudEvent esistente, sovrascrive il valore originale incluso nell'evento. Per ulteriori informazioni, vedi Posso utilizzare altre specifiche CloudEvents ?
Dalla console, è possibile specificare gli attributi evento come coppie chiave - valore dalla scheda Generale per la sottoscrizione evento cronometro.
Con la CLI, per definire ulteriori attributi, utilizza le opzioni --extension con il comando CLI ibmcloud ce sub cron create.
Eliminazione di una sottoscrizione
Quando non hai più bisogno di un abbonamento periodico (cron), puoi eliminarlo.
Eliminazione di un abbonamento dalla console
- Dalla pagina ProgettiCode Engine, vai al tuo progetto.
- Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
- Dall'elenco di sottoscrizioni, eliminare la sottoscrizione che si desidera rimuovere dall'applicazione o dal lavoro.
Se si elimina un'app o un lavoro, la sottoscrizione non viene eliminata.
Eliminazione di una sottoscrizione con la CLI
È possibile eliminare una sottoscrizione eseguendo il comando ibmcloud ce sub cron delete o il comando ibmcloud ce sub cos delete.
Ad esempio, eliminare una sottoscrizione cron denominata mycronevent2,
ibmcloud ce subscription cron delete --name mycronevent2
Se si elimina un'app o un lavoro, la sottoscrizione non viene eliminata. Invece, nella CLI, la sottoscrizione passa allo stato pronto di false perché la sottoscrizione dipende dalla disponibilità dell'applicazione o del lavoro.
Se si ricrea l'app o il lavoro (o un'altra app o lavoro con lo stesso nome), la sottoscrizione si riconnette e lo stato Pronto è true.