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

Completa la seguente procedura per creare e aggiornare una sottoscrizione evento timer periodico per un'applicazione dalla console.

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.

  2. Dalla pagina Panoramica, fare clic su Sottoscrizioni eventi.

  3. Dalla pagina Sottoscrizioni evento, fare clic su Crea per creare la sottoscrizione.

  4. Dalla pagina Crea sottoscrizione evento, completare la seguente procedura:

    1. Per Tipo di evento, selezionare il riquadro Timer periodico. Fai clic su Next.
    2. 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.
    3. 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.
    4. 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 stranger come 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.
    5. 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 myapp che fa riferimento all'immagine icr.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 a https://<base application URL>/events. Fare clic su Avanti per procedere.
    6. 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.
  5. Ora che la sottoscrizione al timer periodico è stata creata, andare alla pagina Sottoscrizioni eventi per visualizzare l'elenco delle sottoscrizioni definite.

  6. Per aggiornare un abbonamento, vai alla pagina Periodic timer subscription. Dalla pagina Sottoscrizioni evento, fare clic sul nome della sottoscrizione che si desidera aggiornare.

  7. 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.

  8. Poiché l'applicazione myapp fa riferimento all'applicazione cron di esempio, che stampa le informazioni nei file di log, è possibile visualizzare i log. Visualizzare i log dell'applicazione per l'applicazione del consumer eventi myapp e verificare che il messaggio dell'evento sia hello sunshine. Consultare Visualizzazione dei log dell'applicazione dalla console.

Sottoscrizione di eventi timer (cron) periodici per un'applicazione con la CLI

Prima di iniziare

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.

Opzioni comando
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 a https://<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 --data o 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 UTC per impostazione predefinita. È possibile modificare il fuso orario specificando l'opzione --time-zone con i comandi sub cron create o sub cron update. Per i valori di fuso orario validi, consultare il database TZ. Notare che se si crea una sottoscrizione utilizzando kubectl e non si specifica un fuso orario, viene assegnato il fuso orario UTC.
  • Se non hai ancora creato la tua applicazione o il tuo consumer di eventi del lavoro, utilizza l'opzione --force con il comando sub cron create per 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 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,

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.
  2. 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):

Campi di intestazione per gli eventi
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

/**
 * 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.

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.

  2. Dalla pagina Panoramica, fare clic su Sottoscrizioni eventi.

  3. Dalla pagina Sottoscrizioni evento, fare clic su Crea per creare la sottoscrizione.

  4. Dalla pagina Crea sottoscrizione evento, completare la seguente procedura:

    1. Per Tipo di evento, selezionare il riquadro Timer periodico. Fai clic su Next.
    2. 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_headers dell'oggetto params. Fare clic su Avanti per procedere.
    3. 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.
    4. 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 stranger come 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.
    5. Per Event consumer, scegliere il tipo di componente Function e specificare la funzione per ricevere gli eventi. Notare che è possibile scegliere da un elenco di funzioni definite. Per questo esempio, utilizzare la funzione myfun che 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.
    6. 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.
  5. Ora che la sottoscrizione al timer periodico è stata creata, andare alla pagina Sottoscrizioni eventi per visualizzare l'elenco delle sottoscrizioni definite.

  6. Per aggiornare un abbonamento, vai alla pagina Periodic timer subscription. Dalla pagina Sottoscrizioni evento, fare clic sul nome della sottoscrizione che si desidera aggiornare.

  7. 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 scegliere application/json come Tipo di contenuto dei dati evento personalizzati. Fai clic su Save per salvare le modifiche.

  8. Poiché la funzione myfun utilizza il codice inline di esempio, che stampa l'oggetto params completo nei file di log, è possibile visualizzare i log per verificare che la funzione sia stata richiamata. Visualizzare i log della funzione per myfun event consumer function e verificare che l'oggetto params contenga una coppia chiave - valore hello: world. È anche possibile vedere che il campo body dell'oggetto params contiene 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

/**
 * 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.

Opzioni comando
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 --data o 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 UTC per impostazione predefinita. È possibile modificare il fuso orario specificando l'opzione --time-zone con i comandi sub cron create o sub cron update. Per i valori di fuso orario validi, consultare il database TZ. Notare che se si crea una sottoscrizione utilizzando kubectl e non si specifica un fuso orario, viene assegnato il fuso orario UTC.
  • Se non hai ancora creato la tua applicazione o il tuo consumer di eventi del lavoro, utilizza l'opzione --force con il comando sub cron create per forzare la creazione della sottoscrizione di eventi cron. È possibile specificare il nome della funzione Crea funzione dopo aver creato la sottoscrizione cron.

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:

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.
  2. 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:

File di intestazione per gli eventi
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

Completare i passi riportati di seguito per creare e aggiornare una sottoscrizione evento timer periodico per un lavoro dalla console.

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.

  2. Dalla pagina Panoramica, fare clic su Sottoscrizioni eventi.

  3. Dalla pagina Sottoscrizioni evento, fare clic su Crea per creare la sottoscrizione.

  4. Dalla pagina Crea sottoscrizione evento, completare la seguente procedura:

    1. 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.
    2. 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.
    3. 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 stranger come 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.
    4. 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 myjob che fa riferimento all'immagine icr.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.
    5. 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.
  5. Ora che la sottoscrizione al timer periodico è stata creata, andare alla pagina Sottoscrizioni eventi per visualizzare l'elenco delle sottoscrizioni definite.

  6. Per aggiornare un abbonamento, vai alla pagina Periodic timer subscription. Dalla pagina Sottoscrizioni evento, fare clic sul nome della sottoscrizione che si desidera aggiornare.

  7. 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.

  8. Poiché il job myjob fa riferimento all'applicazione codeengine di esempio, che stampa le informazioni nei file di log, è possibile visualizzare i log. Visualizzare i log del lavoro per il lavoro del consumer eventi myjob e verificare che il messaggio dell'evento sia hello sunshine. Consultare Visualizzazione dei log dei lavori dalla console.

Sottoscrizione a eventi timer periodici (cron) per un lavoro con CLI

Prima di iniziare

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.

Opzioni comando
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 --data o 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 UTC per impostazione predefinita. È possibile modificare il fuso orario specificando l'opzione --time-zone con i comandi sub cron create o sub cron update. Per i valori di fuso orario validi, consultare il database TZ. Notare che se si crea una sottoscrizione utilizzando kubectl e non si specifica un fuso orario, viene assegnato il fuso orario UTC.
  • Se non hai ancora creato la tua applicazione o il tuo consumer di eventi del lavoro, utilizza l'opzione --force con il comando sub cron create per 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 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,

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.
  2. 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.

Variabili d'ambiente per gli eventi
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

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.
  2. Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
  3. 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.