Cómo trabajar con el productor de sucesos de temporizador periódico (cron)
El productor de sucesos de temporizador periódico (cron) genera un suceso a intervalos regulares. Este intervalo se puede planificar por minuto, hora, día o mes o una combinación de varios intervalos de tiempo diferentes. Puedes suscribirte a las aplicaciones, funciones y tareas de Code Engine para recibir eventos cron.
La suscripción al evento de temporizador periódico utiliza la sintaxis estándar de crontab para especificar los detalles del intervalo, con el formato « * * * * * », donde los campos son: minuto, hora, día del mes, mes del año y día
de la semana. Por ejemplo, para planificar un suceso para medianoche, especifique 0 0 * * *. Para planificar un suceso para cada viernes a medianoche, especifique 0 0 * * 5.
Al suscribirte a un generador de eventos programados, debes indicar un destino (aplicación, función o tarea) y un tipo de destino para la suscripción. Si no proporciona una planificación, se utiliza como valor predeterminado * * * * * (cada minuto).
Code Engine establece cuotas para las suscripciones al temporizador periódico dentro de un proyecto y límites de suscripción. Para obtener más información sobre los límites de Code Engine, consulte Límites y cuotas de Code Engine.
Suscripción a sucesos de temporizador periódico (cron) para una aplicación
Puedes gestionar las suscripciones a temporizadores periódicos desde la consola o mediante la CLI.
Los sucesos se envían a las aplicaciones como solicitudes HTTP POST. Para obtener más información sobre la información que se incluye con el suceso, consulte Cabeceras HTTP e información de cuerpo para sucesos.
Suscripción a sucesos de temporizador periódico (cron) para una aplicación desde la consola
Desde la consola puedes crear y actualizar suscripciones a eventos de temporizador periódicos para una aplicación.
Antes de empezar
- Crear un proyecto.
- Cree una aplicación. Por ejemplo, cree una aplicación denominada
myappque utilice la imagenicr.io/codeengine/cron. Esta imagen se ha creado a partir decron.go, disponible en el repositorio «Samples for IBM Cloud Code Engine »(GitHub).
Sigue los siguientes pasos para crear y actualizar una suscripción a un evento de temporizador periódico para una aplicación desde la consola.
-
Desde la página «Proyectos» de Code Engine, accede a tu proyecto.
-
En la página Visión general, pulse Suscripciones de sucesos.
-
En la página Suscripciones de sucesos, pulse Crear para crear la suscripción.
-
En la página «Crear suscripción a eventos», sigue estos pasos:
- En Tipo de suceso, seleccione el mosaico Temporizador periódico. Pulse Siguiente.
- Para General, proporcione un nombre para la suscripción de temporizador periódico, por ejemplo,
myptimer. Opcionalmente, puede proporcionar atributos de suceso. Tenga en cuenta que si el consumidor de sucesos de temporizador periódico es una aplicación, los atributos de sucesos están disponibles como cabeceras HTTP. Si el consumidor de sucesos es un trabajo, los atributos de sucesos están disponibles como variables de entorno. Pulse Siguiente para continuar. - Para Planificar, proporcione información sobre la temporización de los sucesos. El generador de eventos de temporizador periódico utiliza la sintaxis estándar de crontab para especificar los detalles del intervalo. Elija
el intervalo entre los patrones proporcionados o proporcione su propia expresión cron personalizada, como por ejemplo
0 0 * * *, que especifica que el suceso se producirá todos los días a medianoche. Para este ejemplo, seleccione el patrón de planificación para cada día, cada hora, cada minuto. Observe que la expresión cron se genera por usted. Los patrones de día, hora y minuto y la expresión Cron están en Hora universal coordinada (UTC). Si no especifica una planificación, esta suscripción de suceso envía un suceso cada minuto. Se muestra una lista de los próximos sucesos planificados. Tenga en cuenta que estos próximos sucesos planificados se visualizan en su huso horario. Pulse Siguiente para continuar. - Para Datos de sucesos personalizados, proporcione datos para incluir en el cuerpo del mensaje de suceso. Puede especificar el mensaje como texto sin formato o en formato base64. Para este ejemplo, especifique el texto,
hello strangercomo el cuerpo del mensaje de suceso. Si el mensaje está en formato base64, puede optar por tener el mensaje decodificado cuando se envíe el suceso. También puede especificar el tipo de contenido para los datos de sucesos personalizados. Pulse Siguiente para continuar. - Para Consumidor de sucesos, especifique la aplicación o el trabajo para recibir sucesos. Observe que puede elegir entre una lista de aplicaciones y trabajos definidos. Para este ejemplo, utilice la aplicación
myappque hace referencia a la imagenicr.io/codeengine/cron. Si aún no has creado tu aplicación o tu tarea, puedes especificar el nombre de la misma y crearla una vez que hayas creado la suscripción al temporizador periódico. Solo para las aplicaciones, puede especificar opcionalmente una vía de acceso. De forma predeterminada, los sucesos se direccionan al URL raíz de la aplicación de destino. Puede enviar sucesos a un destino diferente dentro de la app especificando una vía de acceso. Por ejemplo, si la vía de acceso de suscripción especifica/events, los sucesos se envían ahttps://<base application URL>/events. Pulse Siguiente para continuar. - Para Resumen, revise los valores de la suscripción de sucesos de temporizador periódico y realice los cambios si es necesario. Cuando estés listo, haz clic en «Crear» para crear la suscripción al temporizador periódico.
-
Ahora que ya has creado tu suscripción al temporizador periódico, ve a la página «Suscripciones a eventos» para ver una lista de las suscripciones definidas.
-
Para actualizar una suscripción, ve a la página de tu suscripción al temporizador periódico. En la página Suscripciones de sucesos, pulse el nombre de la suscripción que desea actualizar.
-
Desde la página de suscripción al temporizador periódico, modifica los datos del mensaje del evento. En el separador Datos de suceso personalizados, cambie los datos de suceso a
hello sunshine. Pulse Guardar para guardar los cambios. -
Dado que la aplicación
myapphace referencia a la aplicación de ejemplocron, que imprime información en los archivos de registro, puede ver los registros. Consulte los registros de la aplicación para la aplicación de consumidor de sucesosmyappy vea que el mensaje de suceso eshello sunshine. Consulte Visualización de registros de aplicaciones desde la consola.
Suscripción a sucesos de temporizador periódico (cron) para una aplicación con la CLI
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Crear un proyecto.
- Cree una aplicación. Por ejemplo, cree una aplicación denominada
myappque utilice la imagenicr.io/codeengine/cron. Esta imagen se ha creado a partir decron.go, disponible en el repositorio «Samples for IBM Cloud Code Engine »(GitHub )
ibmcloud ce application create --name myapp --image icr.io/codeengine/cron
Para conectar tu aplicación a la suscripción al temporizador periódico mediante la CLI, utiliza el ibmcloud ce sub cron create comando.
ibmcloud ce sub cron create --name NAME --destination-type APP --destination APPLICATION_NAME --schedule CRON
Por ejemplo, para crear una suscripción cron que envíe un evento a una aplicación llamada myapp todos los días a medianoche:
ibmcloud ce sub cron create --name mycronevent --destination-type app --destination myapp --schedule '0 0 * * *'
Debe ajustar el valor de la planificación entre comillas para asegurarse de que se trata como una sola serie.
En la tabla siguiente se resumen las opciones que se utilizan en el ejemplo anterior con el mandato sub cron create. Para obtener más información sobre el mandato y sus opciones, consulte el mandato ibmcloud ce subscription cron create.
| Opción | Descripción |
|---|---|
--name |
Nombre del origen de sucesos de cron. Este valor es obligatorio. |
--destination |
El nombre de una aplicación o trabajo de Code Engine en el proyecto actual para recibir los sucesos del productor de sucesos. Este valor es obligatorio. |
--destination-type |
El tipo del destination, en este caso, app. El valor predeterminado es app. |
--schedule |
Planificar la frecuencia con la que se desencadena el suceso, en formato crontab. Por ejemplo, especifique */2 * * * * (en formato de serie) para cada 2 minutos. De forma predeterminada, el suceso de cron se desencadena
cada minuto y se establece en el huso horario de UTC . Para modificar el huso horario, utilice la opción --time-zone. Este valor es opcional. |
- Consejos para utilizar los mandatos de
sub cron -
- De forma predeterminada, los sucesos se direccionan al URL raíz de la aplicación de destino. Puede enviar sucesos a un destino diferente dentro de la app utilizando la opción
--path. Por ejemplo, si la suscripción indica--path /events, los sucesos se envían ahttps://<base application URL>/events. - El tamaño de los datos de los eventos del temporizador periódico está limitado a un máximo de 4096 bytes. Por lo tanto, si utiliza la opción
--datao la opción--data-base64, puede enviar un máximo de 4096 bytes. Para obtener más información, consulte Límites y cuotas para Code Engine. - Las suscripciones de cron utilizan la zona horaria
UTCde forma predeterminada. Puede cambiar el huso horario especificando la opción--time-zonecon los mandatossub cron createosub cron update. Para conocer los valores válidos de zonas horarias, consulta la base de datos TZ. Tenga en cuenta que si crea una suscripción utilizandokubectly no especifica un huso horario, se asigna el uso horarioUTC. - Si todavía no ha creado la app o el consumidor de sucesos de trabajo, utilice la opción
--forcecon el mandatosub cron createpara forzar la creación de la suscripción de sucesos de cron. Puede especificar el nombre de la aplicación o el trabajo y crear la aplicación o crear su trabajo después de crear la suscripción de cron.
- De forma predeterminada, los sucesos se direccionan al URL raíz de la aplicación de destino. Puede enviar sucesos a un destino diferente dentro de la app utilizando la opción
Para verificar que la suscripción de cron se ha creado correctamente, ejecute el mandato ibmcloud ce sub cron get --name mycronevent .
Salida de ejemplo
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
Desde esta salida, puede ver que la aplicación de destino es myapp, la planificación es 0 0 * * * (todos los días a medianoche) y el estado Ready (Preparado) es true (verdadero).
Actualizar la suscripción de cron con la CLI
Para actualizar la suscripción de cron con la CLI, utilice el mandatoibmcloud ce subscription cron update. Por ejemplo, actualice
la suscripción de mycronevent para cambiar la planificación para enviar un suceso a una app denominada myapp cada 2 minutos.
ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'
Para verificar que la suscripción de cron se ha actualizado correctamente, ejecute el mandato ibmcloud ce sub cron get --name mycronevent. Se actualiza la planificación de la suscripción.
Salida de ejemplo
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
¿Desea probar una guía de aprendizaje? Consulte Suscripción a sucesos de temporizador periódico (cron). ¿Desea ver más ejemplos de código? Echa un vistazo a Ejemplos para el repositorio « IBM Cloud Code Engine GitHub ».
Visualización de la información de sucesos para una aplicación desde la consola
Para ver información sobre las suscripciones de sucesos,
- Desde la página «Proyectos» de Code Engine, accede a tu proyecto.
- En la página Visión general, pulse Suscripciones de sucesos para ver una lista de suscripciones definidas.
Si la aplicación imprime información en los archivos de registro, como lo hace la aplicación cron de ejemplo, visualice los archivos de registro de la aplicación consumidora de sucesos. Consulte Visualización de registros de aplicaciones desde la consola.
Visualización de información de sucesos para una aplicación con la CLI
Si la aplicación imprime información en los archivos de registro, como la aplicación cronde ejemplo, consulte los archivos de registro para la aplicación de consumidor de sucesos con el mandato de CLI ibmcloud ce app logs.
Por ejemplo, para ver los registros de la aplicación que ha creado en el ejemplo anterior,
ibmcloud ce application logs --application myapp
Salida de ejemplo
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]
Para obtener más información sobre el registro, consulte Visualización de registros.
¿Desea ver más ejemplos de código? Echa un vistazo a Ejemplos para el repositorio « IBM Cloud Code Engine GitHub ».
Información de cabecera y cuerpo de cron para sucesos entregados a aplicaciones
Todos los sucesos que se entregan a aplicaciones se reciben como mensajes HTTP POST. Los sucesos contienen determinadas cabeceras HTTP que le ayudan a determinar rápidamente los bits clave de información sobre los sucesos sin mirar el cuerpo
(lógica empresarial) del suceso. Para obtener más información, consulta la especificación « CloudEvents ».
Cabeceras
En la siguiente tabla se describen los encabezados de los eventos del temporizador periódico (cron):
| Cabecera | Descripción |
|---|---|
ce-id |
Un identificador exclusivo para el suceso, a menos que se vuelva a reproducir un suceso, en cuyo caso se le asigna el mismo ID. |
ce-source |
Una referencia de URI que indica dónde se ha originado este suceso en el generador de sucesos. Para los sucesos de cron, esta cabecera es una referencia de URI con subdominio para el proyecto y el nombre de la suscripción de cron,
en el formato siguiente: /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME]. |
ce-specversion |
La versión de la especificación de CloudEvents. Este valor siempre es 1.0. |
ce-time |
La hora a la que se ha generado el suceso. |
ce-type |
El tipo del suceso. Para los sucesos de cron, se trata de dev.knative.sources.ping. |
Salida de ejemplo
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
Cuerpo HTTP
El cuerpo HTTP contiene el propio suceso y está en el formato que especifique al crear o actualizar la suscripción.
Suscribirse a eventos periódicos del temporizador (cron) para una función
Puedes gestionar las suscripciones a temporizadores periódicos desde la consola o mediante la CLI.
Los eventos se envían a las funciones como solicitudes POST de tipo « HTTP ». Para obtener más información sobre la información que se incluye con el suceso, consulte Cabeceras HTTP e información de cuerpo para sucesos.
Suscribirse a eventos periódicos del temporizador (cron) para una función desde la consola
Puedes crear y actualizar suscripciones a eventos de temporizador periódicos para una función desde la consola.
Antes de empezar
- Crear un proyecto.
- Crear una función. Por ejemplo, cree una función denominada
myfunque utilice el siguiente código en línea de ejemplo:
/**
* 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
}
Sigue los siguientes pasos para crear y actualizar una suscripción a un evento de temporizador periódico para una función desde la consola.
-
Desde la página «Proyectos» de Code Engine, accede a tu proyecto.
-
En la página Visión general, pulse Suscripciones de sucesos.
-
En la página Suscripciones de sucesos, pulse Crear para crear la suscripción.
-
En la página «Crear suscripción a eventos», sigue estos pasos:
- En Tipo de suceso, seleccione el mosaico Temporizador periódico. Pulse Siguiente.
- Para General, proporcione un nombre para la suscripción de temporizador periódico, por ejemplo,
myptimer. Opcionalmente, puede proporcionar atributos de suceso. Tenga en cuenta que si el consumidor de sucesos de temporizador periódico es una aplicación, los atributos de sucesos están disponibles como cabeceras HTTP. Si el consumidor de sucesos es una función, los atributos de suceso están disponibles como pares de clave-valor en la propiedad__ce_headersdel objetoparams. Pulse Siguiente para continuar. - Para Planificar, proporcione información sobre la temporización de los sucesos. El generador de eventos de temporizador periódico utiliza la sintaxis estándar de crontab para especificar los detalles del intervalo. Elija
el intervalo entre los patrones proporcionados o proporcione su propia expresión cron personalizada, como por ejemplo
0 0 * * *, que especifica que el suceso se producirá todos los días a medianoche. Para este ejemplo, seleccione el patrón de planificación para cada día, cada hora, cada minuto. Observe que la expresión cron se genera por usted. Los patrones de día, hora y minuto y la expresión Cron están en Hora universal coordinada (UTC). Si no especifica una planificación, esta suscripción de suceso envía un suceso cada minuto. Se muestra una lista de los próximos sucesos planificados. Tenga en cuenta que estos próximos sucesos planificados se visualizan en su huso horario. Pulse Siguiente para continuar. - Para Datos de sucesos personalizados, proporcione datos para incluir en el cuerpo del mensaje de suceso. Puede especificar el mensaje como texto sin formato o en formato base64. Para este ejemplo, especifique el texto,
hello strangercomo el cuerpo del mensaje de suceso. Si el mensaje está en formato base64, puede optar por tener el mensaje decodificado cuando se envíe el suceso. También puede especificar el tipo de contenido para los datos de sucesos personalizados. Pulse Siguiente para continuar. - Para Consumidor de sucesos, elija el tipo de componente
Functiony especifique la función para recibir sucesos. Ten en cuenta que puedes elegir entre una lista de funciones definidas. Para este ejemplo, utilice la funciónmyfunque utiliza el código en línea de ejemplo. Si todavía no ha creado la función, puede especificar el nombre de la función y Creación de cargas de trabajo de función con código en línea después de crear la suscripción de temporizador periódico. Pulse Siguiente para continuar. - Para Resumen, revise los valores de la suscripción de sucesos de temporizador periódico y realice los cambios si es necesario. Cuando estés listo, haz clic en «Crear» para crear la suscripción al temporizador periódico.
-
Ahora que ya has creado tu suscripción al temporizador periódico, ve a la página «Suscripciones a eventos» para ver una lista de las suscripciones definidas.
-
Para actualizar una suscripción, ve a la página de tu suscripción al temporizador periódico. En la página Suscripciones de sucesos, pulse el nombre de la suscripción que desea actualizar.
-
Desde la página de suscripción al temporizador periódico, modifica los datos del mensaje del evento. En la pestaña Datos de suceso personalizados, cambie los datos de suceso a
{ "hello": "world" }y elijaapplication/jsoncomo Tipo de contenido de datos de suceso personalizados. Pulse Guardar para guardar los cambios. -
Puesto que la función
myfunutiliza el código en línea de ejemplo, que imprime el objetoparamscompleto en los archivos de registro, puede ver los registros para verificar que se ha invocado la función. Vea los registros de función para la función de consumidor de sucesos demyfuny compruebe que el objetoparamscontiene un par de clave-valorhello: world. También puede ver que el campobodydel objetoparamscontiene el valor codificado Base64{ "hello": "world" }Consulte Visualización de registros de función desde la consola.
Suscribirse a eventos periódicos del temporizador (cron) para una función mediante la CLI
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Crear un proyecto.
- Crear una función. Por ejemplo, cree una función denominada
myfunque utilice el siguiente código en línea de ejemplo:
/**
* 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
}
Guarde el código en un archivo denominado sample_inline_code.js y cree la función utilizando el mandato siguiente:
ibmcloud ce function create --name myfun --runtime nodejs --inline-code ./sample_inline_code.js
Para vincular tu función a la suscripción al temporizador periódico mediante la CLI, utiliza el ibmcloud ce sub cron create siguiente
comando :
ibmcloud ce sub cron create --name NAME --destination-type function --destination FUNCTION_NAME --schedule CRON
Por ejemplo, para crear una suscripción cron que envíe un evento a una aplicación llamada myfun todos los días a medianoche:
ibmcloud ce sub cron create --name mycronevent --destination-type function --destination myfun --schedule '0 0 * * *'
Debe ajustar el valor de la planificación entre comillas para asegurarse de que se trata como una sola serie.
En la tabla siguiente se resumen las opciones que se utilizan en el ejemplo anterior con el mandato sub cron create. Para obtener más información sobre el mandato y sus opciones, consulte el mandato ibmcloud ce subscription cron create.
| Opción | Descripción |
|---|---|
--name |
Nombre del origen de sucesos de cron. Este valor es obligatorio. |
--destination |
El nombre de una aplicación, función o tarea de Code Engine en el proyecto actual que recibirá los eventos del generador de eventos. Este valor es obligatorio. |
--destination-type |
El tipo del destination, en este caso, function. El valor predeterminado es app. |
--schedule |
Planificar la frecuencia con la que se desencadena el suceso, en formato crontab. Por ejemplo, especifique */2 * * * * (en formato de serie) para cada 2 minutos. De forma predeterminada, el suceso de cron se desencadena
cada minuto y se establece en el huso horario de UTC . Para modificar el huso horario, utilice la opción --time-zone. Este valor es opcional. |
- Consejos para utilizar los mandatos de
sub cron -
- El tamaño de los datos de los eventos del temporizador periódico está limitado a un máximo de 4096 bytes. Por lo tanto, si utiliza la opción
--datao la opción--data-base64, puede enviar un máximo de 4096 bytes. Para obtener más información, consulte Límites y cuotas para Code Engine. - Las suscripciones de cron utilizan la zona horaria
UTCde forma predeterminada. Puede cambiar el huso horario especificando la opción--time-zonecon los mandatossub cron createosub cron update. Para conocer los valores válidos de zonas horarias, consulta la base de datos TZ. Tenga en cuenta que si crea una suscripción utilizandokubectly no especifica un huso horario, se asigna el uso horarioUTC. - Si todavía no ha creado la app o el consumidor de sucesos de trabajo, utilice la opción
--forcecon el mandatosub cron createpara forzar la creación de la suscripción de sucesos de cron. Puede especificar el nombre de la función Crear una función después de crear la suscripción cron.
- El tamaño de los datos de los eventos del temporizador periódico está limitado a un máximo de 4096 bytes. Por lo tanto, si utiliza la opción
Para verificar que la suscripción de cron se ha creado correctamente, ejecute el mandato ibmcloud ce sub cron get --name mycronevent .
Salida de ejemplo
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
En esta salida se puede ver que la función de destino es myfun, la programación es 0 0 * * * (todos los días a medianoche) y el estado «Ready» es true.
Actualizar la suscripción de cron con la CLI
Para actualizar la suscripción de cron con la CLI, utilice el mandatoibmcloud ce subscription cron update. Por ejemplo, actualiza
la suscripción « mycronevent » para cambiar la programación de modo que envíe un evento a una función llamada « myfun » cada 2 minutos:
ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'
Para verificar que la suscripción de cron se ha actualizado correctamente, ejecute el mandato ibmcloud ce sub cron get --name mycronevent. Se actualiza la planificación de la suscripción.
Salida de ejemplo
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
¿Desea probar una guía de aprendizaje? Consulte Suscripción a sucesos de temporizador periódico (cron). ¿Desea ver más ejemplos de código? Echa un vistazo a Ejemplos para el repositorio « IBM Cloud Code Engine GitHub ».
Visualización de la información de eventos de una función desde la consola
Para consultar la información sobre tus suscripciones a eventos:
- Desde la página «Proyectos» de Code Engine, accede a tu proyecto.
- En la página Visión general, pulse Suscripciones de sucesos para ver una lista de suscripciones definidas.
Si tu función registra información en archivos de registro, tal y como hace el trabajo de ejemplo « codeengine », consulta los archivos de registro de tu función. Consulte Visualización de registros de trabajo desde la consola.
Información del encabezado y el cuerpo de Cron para los eventos enviados a las funciones
Todos los eventos que se envían a las funciones se reciben como mensajes POST de HTTP. Los eventos contienen determinados encabezados de tipo « HTTP » que te ayudan a identificar rápidamente datos clave sobre los mismos. HTTP Los encabezados
se almacenan en la propiedad « __ce_headers » del objeto « params » con el que se invoca la función. Para obtener más información, consulta la especificación « CloudEvents ».
Cabeceras
La tabla siguiente describe los pares de clave-valor en __ce_headers para sucesos de temporizador periódico (cron):
| Cabecera | Descripción |
|---|---|
Ce-Id |
Un identificador exclusivo para el suceso, a menos que se vuelva a reproducir un suceso, en cuyo caso se le asigna el mismo ID. |
Ce-Source |
Una referencia de URI que indica dónde se ha originado este suceso en el generador de sucesos. Para los sucesos de cron, esta cabecera es una referencia de URI con subdominio para el proyecto y el nombre de la suscripción de cron,
en el formato siguiente: /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME]. |
Ce-Specversion |
La versión de la especificación de CloudEvents. Este valor siempre es 1.0. |
Ce-Time |
La hora a la que se ha generado el suceso. |
Ce-Type |
El tipo del suceso. Para los sucesos de cron, se trata de dev.knative.sources.ping. |
Salida de ejemplo
__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"
}
Cuerpo HTTP
El cuerpo « HTTP » contiene los datos del evento personalizado y tiene el formato que se especifica al crear o actualizar la suscripción. Puede acceder a los datos de sucesos personalizados desde la propiedad body en el objeto
params.
Ejemplo de objeto params para una invocación de suceso con un conjunto de datos de suceso personalizado en hello stranger y Tipo de contenido de datos de suceso personalizado establecido en 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"
}
El valor de « body » se codifica como « Base64 » si el tipo de contenido de los datos del evento personalizado está establecido en « application/json ».
Suscripción a sucesos de temporizador periódico (cron) para un trabajo
Puedes gestionar las suscripciones a temporizadores periódicos desde la consola o mediante la CLI.
El trabajo recibe sucesos como variables de entorno. Para obtener más información sobre las variables de entorno enviadas por cron, consulte Variables de entorno para sucesos.
Suscripción a sucesos de temporizador periódico (cron) para un trabajo desde la consola
Desde la consola puedes crear y actualizar suscripciones a eventos de temporizador periódicos para un trabajo.
Antes de empezar
- Crear un proyecto.
- Cree un trabajo. Por ejemplo, cree un trabajo denominado
myjobque utilice la imagencodeengine. Esta imagen se ha creado a partir decodeengine.go, disponible en el repositorio «Samples for IBM Cloud Code Engine »(GitHub).
Sigue los siguientes pasos para crear y actualizar una suscripción a un evento de temporizador periódico para un trabajo desde la consola.
-
Desde la página «Proyectos» de Code Engine, accede a tu proyecto.
-
En la página Visión general, pulse Suscripciones de sucesos.
-
En la página Suscripciones de sucesos, pulse Crear para crear la suscripción.
-
En la página «Crear suscripción a eventos», sigue estos pasos:
- Para General, proporcione un nombre para la suscripción de temporizador periódico, por ejemplo,
myptimer2. Opcionalmente, puede proporcionar atributos de suceso. Tenga en cuenta que si el consumidor de sucesos de temporizador periódico es una aplicación, los atributos de sucesos están disponibles como cabeceras HTTP. Si el consumidor de sucesos es un trabajo, los atributos de sucesos están disponibles como variables de entorno. Pulse Siguiente para continuar. - Para Planificar, proporcione información sobre la temporización de los sucesos. El generador de eventos de temporizador periódico utiliza la sintaxis estándar de crontab para especificar los detalles del intervalo. Elija
el intervalo entre los patrones proporcionados o proporcione su propia expresión cron personalizada, como por ejemplo
0 0 * * *, que especifica que el suceso se producirá todos los días a medianoche. Para este ejemplo, seleccione el patrón de planificación para cada día, cada hora, cada minuto. Observe que la expresión cron se genera por usted. Los patrones de día, hora y minuto y la expresión Cron están en Hora universal coordinada (UTC). Si no especifica una planificación, esta suscripción de suceso envía un suceso cada minuto. Se muestra una lista de los próximos sucesos planificados. Tenga en cuenta que estos próximos sucesos planificados se visualizan en su huso horario. Pulse Siguiente para continuar. - Para Datos de sucesos personalizados, proporcione datos para incluir en el cuerpo del mensaje de suceso. Puede especificar el mensaje como texto sin formato o en formato base64. Para este ejemplo, especifique el texto,
hello strangercomo el cuerpo del mensaje de suceso. Si el mensaje está en formato base64, puede optar por tener el mensaje decodificado cuando se envíe el suceso. También puede especificar el tipo de contenido para los datos de sucesos personalizados. Pulse Siguiente para continuar. - Para Consumidor de sucesos, especifique la aplicación o el trabajo para recibir sucesos. Observe que puede elegir entre una lista de aplicaciones y trabajos definidos. Para este ejemplo, utilice el trabajo
myjobque aparece en la imagenicr.io/codeengine/codeengine. Si aún no has creado tu trabajo, puedes especificar el nombre del mismo y crearlo una vez que hayas creado la suscripción al temporizador periódico. Pulse Siguiente para continuar. - Para Resumen, revise los valores de la suscripción de sucesos de temporizador periódico y realice los cambios si es necesario. Cuando estés listo, haz clic en «Crear» para crear la suscripción al temporizador periódico.
- Para General, proporcione un nombre para la suscripción de temporizador periódico, por ejemplo,
-
Ahora que ya has creado tu suscripción al temporizador periódico, ve a la página «Suscripciones a eventos» para ver una lista de las suscripciones definidas.
-
Para actualizar una suscripción, ve a la página de tu suscripción al temporizador periódico. En la página Suscripciones de sucesos, pulse el nombre de la suscripción que desea actualizar.
-
Desde la página de suscripción al temporizador periódico, modifica los datos del mensaje del evento. En el separador Datos de suceso personalizados, cambie los datos de suceso a
hello sunshine. Pulse Guardar para guardar los cambios. -
Puesto que el trabajo
myjobhace referencia a la aplicacióncodeenginede ejemplo, que imprime información en los archivos de registro, puede ver los registros. Consulte los registros de trabajo para el trabajo de consumidor de sucesosmyjoby vea que el mensaje de suceso eshello sunshine. Consulte Visualización de registros de trabajo desde la consola.
Suscripción a sucesos de temporizador periódico (cron) para un trabajo con la CLI
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Crear un proyecto.
- Cree un trabajo. Por ejemplo, cree un trabajo denominado
myjobque utilice la imagenicr.io/codeengine/codeengine. Esta imagen se ha creado a partir decodeengine.go, disponible en el repositorio «Samples for IBM Cloud Code Engine »(GitHub).
ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine
Para vincular tu trabajo a la suscripción al temporizador periódico mediante la CLI utilizando el ibmcloud ce sub cron create comando.
ibmcloud ce sub cron create --name NAME --destination-type job --destination JOB_NAME --schedule CRON
Por ejemplo, para crear una suscripción de cron que envíe un suceso a un trabajo llamado myjob cada 5 minutos,
ibmcloud ce sub cron create --name mycronevent --destination-type job --destination myjob --schedule '*/5 * * * *' --data '{ "message": "Hello world!" }' --content-type application/json
Debe ajustar el valor de la planificación entre comillas para asegurarse de que se trata como una sola serie.
En la tabla siguiente se resumen las opciones que se utilizan con el mandato sub cron create en este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandato ibmcloud ce subscription cron create.
| Opción | Descripción |
|---|---|
--name |
Nombre del origen de sucesos de cron. |
--destination-type |
El tipo del destination, en este caso, job. |
--destination |
El nombre de un trabajo de Code Engine en el proyecto actual para recibir los sucesos del generador de sucesos. |
--schedule |
Planificar la frecuencia con la que se desencadena el suceso, en formato crontab. Por ejemplo, especifique */2 * * * * (en formato de serie) para cada 2 minutos. De forma predeterminada, el suceso de cron se desencadena
cada minuto y se establece en el huso horario de UTC . Para modificar el huso horario, utilice la opción --time-zone. Este valor es opcional. |
- Consejos para utilizar los mandatos de
sub cron -
- El tamaño de los datos de los eventos del temporizador periódico está limitado a un máximo de 4096 bytes. Por lo tanto, si utiliza la opción
--datao la opción--data-base64, puede enviar un máximo de 4096 bytes. Para obtener más información, consulte Límites y cuotas para Code Engine. - Las suscripciones de cron utilizan la zona horaria
UTCde forma predeterminada. Puede cambiar el huso horario especificando la opción--time-zonecon los mandatossub cron createosub cron update. Para conocer los valores válidos de zonas horarias, consulta la base de datos TZ. Tenga en cuenta que si crea una suscripción utilizandokubectly no especifica un huso horario, se asigna el uso horarioUTC. - Si todavía no ha creado la app o el consumidor de sucesos de trabajo, utilice la opción
--forcecon el mandatosub cron createpara forzar la creación de la suscripción de sucesos de cron. Puede especificar el nombre de la aplicación o el trabajo y crear la aplicación o crear su trabajo después de crear la suscripción de cron.
- El tamaño de los datos de los eventos del temporizador periódico está limitado a un máximo de 4096 bytes. Por lo tanto, si utiliza la opción
Para verificar que la suscripción de cron se ha creado correctamente, ejecute ibmcloud ce sub cron get --name mycronevent.
Salida de ejemplo
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
En esta salida, puede ver que el trabajo de destino es myjob, la planificación es */5 * * * * (cada 5 minutos) y el estado Listo es true.
Las ejecuciones de trabajo creadas por suscripciones se suprimen al cabo de 10 minutos.
Actualizar la suscripción de cron con la CLI (trabajo)
Para actualizar la suscripción de cron con la CLI, utilice el mandatoibmcloud ce subscription cron update. Por ejemplo, actualice
la suscripción de mycronevent para cambiar la planificación para enviar un suceso a una app denominada myapp cada 2 minutos.
ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'
Para verificar que la suscripción de cron se ha actualizado correctamente, ejecute el mandato ibmcloud ce sub cron get --name mycronevent. Se actualiza la planificación de la suscripción.
Salida de ejemplo
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
Visualización de información de sucesos para un trabajo desde la consola
Para ver información sobre las suscripciones de sucesos,
- Desde la página «Proyectos» de Code Engine, accede a tu proyecto.
- En la página Visión general, pulse Suscripciones de sucesos para ver una lista de suscripciones definidas.
Si el trabajo imprime información en los archivos de registro, como el trabajo de ejemplo codeengine, consulte los archivos de registro para el trabajo de consumidor de sucesos. Consulte Visualización de registros de trabajo desde la consola.
Visualización de la información de sucesos para un trabajo con la CLI
Si el trabajo imprime información en los archivos de registro, como el trabajo de ejemplo codeengine, puede encontrar la ejecución del trabajo que se ha creado a partir del suceso de temporizador periódico (cron) y, a continuación,
ver los registros de ejecución del trabajo. Por ejemplo, para encontrar la ejecución del trabajo para el trabajo en el ejemplo anterior,
ibmcloud ce jobrun list
Salida de ejemplo
Listing job runs...
OK
Name Failed Pending Requested Running Succeeded Unknown Age
myjob-kd829 0 0 0 0 1 0 43s
Visualice los registros de la ejecución del trabajo especificando el nombre de la ejecución del trabajo.
ibmcloud ce jobrun logs --jobrun myjob-kd829
Salida de ejemplo
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
Ten en cuenta que la información de registro de las ejecuciones de los trabajos solo se conserva durante una hora. Para obtener más información sobre el registro, consulte Visualización de registros.
Para obtener más información sobre las variables de entorno enviadas por cron, consulte Variables de entorno para sucesos.
¿Desea ver más ejemplos de código? Echa un vistazo a Ejemplos para el repositorio « IBM Cloud Code Engine GitHub ».
Variables de entorno para sucesos que se entregan a trabajos
Todos los sucesos que se entregan a un trabajo se reciben como variables de entorno. Estas variables de entorno incluyen el prefijo « CE_ » y se basan en la especificación CloudEvents.
Cada suceso contiene algunas variables de entorno comunes que aparecen cada vez que se entrega el suceso a un trabajo. El conjunto real de variables en cada suceso puede incluir más opciones. Para obtener más información, consulta los atributos de « CloudEvent ».
En la tabla siguiente se describen las variables de entorno específicas de los sucesos de cron.
| Variable | Descripción |
|---|---|
CE_DATA |
Los datos (cuerpo) para el suceso. Consulte CE_DATA para sucesos de cron. |
CE_ID |
Un identificador exclusivo para el suceso, a menos que se vuelva a reproducir un suceso, en cuyo caso se le asigna el mismo ID. |
CE_SOURCE |
Una referencia de URI que indica dónde se ha originado este suceso en el generador de sucesos. Para sucesos de cron, se trata de una referencia de URI con subdominio para el proyecto y el nombre de la suscripción de cron, en el formato
siguiente: /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME]. |
CE_SPECVERSION |
La versión de la especificación de CloudEvents. Este valor siempre es 1.0. |
CE_TIME |
La hora a la que se ha generado el suceso. |
CE_TYPE |
El tipo del suceso. Para los sucesos de cron, se trata de dev.knative.sources.ping. |
Variable de entorno de CE_DATA
En el caso de los eventos periódicos programados, la variable de entorno CE_DATA contiene el propio evento y tiene el formato que se especifica al crear o actualizar la suscripción.
Salida de ejemplo
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
Definición de atributos de suceso adicionales
Al crear una suscripción, puede definir atributos de suceso adicionales que se incluirán en los sucesos generados. Estos atributos de suceso parecen similares a cualquier otro atributo de CloudEvent en la entrega de sucesos. Si
elige especificar el nombre de un atributo CloudEvent existente, prevalece sobre el valor original incluido en el suceso. Para obtener más información, consulte ¿Puedo utilizar otras especificaciones de CloudEvents?
Desde la consola, puede especificar atributos de suceso como pares de clave-valor desde el separador General para la suscripción de sucesos de temporizador periódico (cron).
Con la CLI, para definir atributos adicionales, utilice las opciones --extension con el mandato de CLI ibmcloud ce sub cron create.
Supresión de un suscripción
Cuando ya no necesite una suscripción de temporizador periódico (cron), puede suprimirla.
Supresión de una suscripción desde la consola
- Desde la página «Proyectos» de Code Engine, accede a tu proyecto.
- En la página Visión general, pulse Suscripciones de sucesos para ver una lista de suscripciones definidas.
- En la lista de suscripciones, suprima la suscripción que desea eliminar de la aplicación o del trabajo.
Si suprime una app o un trabajo, la suscripción no se suprime.
Supresión de una suscripción con la CLI
Puede suprimir una suscripción ejecutando el mandato ibmcloud ce sub cron delete o el mandato ibmcloud ce sub cos delete.
Por ejemplo, suprima una suscripción de cron denominada mycronevent2,
ibmcloud ce subscription cron delete --name mycronevent2
Si suprime una app o un trabajo, la suscripción no se suprime. En su lugar, en la CLI, la suscripción pasa al estado preparado de false porque la suscripción depende de la disponibilidad de la aplicación o del trabajo. Si vuelve
a crear la app o el trabajo (u otra app o trabajo con el mismo nombre), la reconexión de la suscripción y el estado preparado son true.