Utilisation du producteur d'événement de temporisateur périodique (cron)

Le producteur d'événement de temporisateur périodique (cron) génère un événement à intervalles réguliers. L'intervalle peut être exprimé en minutes, heures, jours ou mois ou correspondre à une combinaison de plusieurs intervalles différents. Vous pouvez vous abonner aux applications, fonctions et tâches d Code Engine s pour recevoir des événements cron.

L'abonnement à l'événement de minuterie périodique utilise la syntaxe standard de crontab pour spécifier les détails de l'intervalle, au format * * * * *, où les champs correspondent respectivement à la minute, l'heure, le jour du mois, le mois de l'année et le jour de la semaine. Par exemple, pour planifier l'exécution d'un événement à minuit, spécifiez 0 0 * * *. Pour planifier l'exécution d'un événement tous les vendredis à minuit, spécifiez 0 0 * * 5.

Lorsque vous vous abonnez à un générateur d'événements de type « Temporisateur périodique », vous devez indiquer une destination (application, fonction ou tâche) ainsi qu'un type de destination pour l'abonnement. Si vous n'indiquez pas de planning, la valeur par défaut * * * * * (toutes les minutes) est utilisée.

Code Engine prévoit des quotas pour les abonnements aux minuteries périodiques au sein d'un projet, ainsi que des limites d'abonnement. Pour plus d'informations sur les limites dans Code Engine, voir Limites et quotas pour Code Engine.

Abonnement à des événements de temporisateur périodique (cron) pour une application

Vous pouvez gérer les abonnements aux minuteries périodiques depuis la console ou via l'interface de ligne de commande (CLI).

Les événements sont envoyés aux applications en tant que demandes HTTP POST. Pour plus de détails sur les informations incluses dans un événement, voir Informations relatives aux en-têtes et au corps HTTP pour les événements.

Abonnement à des événements de temporisateur périodique (cron) pour une application depuis la console

Vous pouvez créer et mettre à jour des abonnements à des événements de minuterie périodiques pour une application depuis la console.

Avant de commencer

Suivez les étapes ci-dessous pour créer et mettre à jour un abonnement à un événement de minuterie périodique pour une application depuis la console.

  1. Depuis la page « Projets » d' Code Engine, accédez à votre projet.

  2. Sur la page Présentation, cliquez sur Abonnements à des événements.

  3. Sur la page Abonnements à des événements, cliquez sur Créer pour créer votre abonnement.

  4. Sur la page « Créer un abonnement à un événement », procédez comme suit :

    1. Pour leType d’évènement, sélectionnez la mosaïque de temporisateur périodique. Cliquez sur Suivant.
    2. Pour Général, indiquez le nom de l'abonnement au temporisateur périodique, myptimer par exemple. Vous pouvez le cas échéant fournir des attributs d'événement. Sachez que si le consommateur d'événement de temporisateur périodique est une application, les attributs de l'événement sont disponibles sous forme d'en-têtes HTTP. Si le consommateur d'événement est un travail, les attributs de l'événement sont disponibles sous forme de variables d'environnement. Cliquez sur Suivant pour continuer.
    3. Pour le paramètre de planification Schedule, fournissez des informations sur l'échelonnement des événements. Le générateur d'événements « Periodic timer » utilise la syntaxe standard de crontab pour définir les détails relatifs aux intervalles. Choisissez votre intervalle parmi les modèles fournis ou fournissez votre propre expression cron personnalisée, telle que 0 0 * * * indiquant que l'événement doit se produire tous les jours à minuit. Dans le cas présent, sélectionnez le modèle de planification pour chaque jour, chaque heure, chaque minute. Notez que l'expression cron est générée automatiquement. Les modèles de jour, d'heure et de minute et l'expression Cron sont en temps universel coordonné (UTC). Si vous ne définissez pas la planification, cet abonnement envoie un événement toutes les minutes. Une liste des événements planifiés à venir s'affiche. Notez que ces événements sont affichés dans votre fuseau horaire. Cliquez sur Suivant pour continuer.
    4. Pour Données d'événements personnalisées, fournissez les données à inclure dans le corps de votre message d'événement. Vous pouvez spécifier le message en texte brut ou au format base64. Dans le cas présent, spécifiez le texte hello stranger en tant que corps du message d'événement. Si le message est au format base64, vous pouvez faire en sorte qu'il soit décodé lors de l'envoi de l'événement. Vous pouvez également spécifier le type de contenu pour vos données d'événement personnalisées. Cliquez sur Suivant pour continuer.
    5. Pour Consommateur d'événement, spécifiez l'application ou le travail devant recevoir des événements. Notez que vous pouvez faire un choix dans une liste d'applications et de travaux définis. Pour cet exemple, utilisez l'application myapp qui référence l'image icr.io/codeengine/cron. Si vous n'avez pas encore créé votre application ou votre tâche, vous pouvez indiquer le nom de celle-ci et la créer après avoir créé l'abonnement à la minuterie périodique. Pour les applications uniquement, vous pouvez le cas échéant spécifier un chemin. Par défaut, les événements sont acheminés vers l'URL racine de l'application de destination. Vous pouvez envoyer des événements vers une autre destination dans l'application en spécifiant un chemin. Par exemple, si votre chemin d'abonnement indique /events, les évènements sont envoyés à https://<base application URL>/events. Cliquez sur Suivant pour continuer.
    6. Pour Récapitulatif, vérifiez les paramètres de votre abonnement aux événements de temporisateur périodique et modifiez-les si nécessaire. Lorsque vous êtes prêt, cliquez sur « Créer » pour créer l'abonnement à la minuterie périodique.
  5. Maintenant que votre abonnement à la minuterie périodique est créé, rendez-vous sur la page « Abonnements aux événements » pour consulter la liste des abonnements définis.

  6. Pour mettre à jour un abonnement, rendez-vous sur la page de votre abonnement « Minuterie périodique ». Sur cette dernière, cliquez sur le nom de l'abonnement à mettre à jour.

  7. Depuis la page d'abonnement à votre minuterie périodique, modifiez les données contenues dans le message d'événement. Dans l'onglet Données d'événement personnalisées, remplacez les données d'événement spécifiées par hello sunshine. Cliquez sur Sauvegarder pour sauvegarder vos modifications.

  8. Étant donné que l'application myapp fait référence à l'exemple d'application cron, qui imprime des informations dans les fichiers journaux, vous pouvez afficher les journaux. Dans les journaux de l'application du consommateur d'événement myapp, vous constaterez que le message d'événement est hello sunshine. Voir Affichage des journaux d'application à partir de la console.

Abonnement à des événements de temporisateur périodique (cron) pour une application à l'aide de l'interface de ligne de commande

Avant de commencer

ibmcloud ce application create --name myapp --image icr.io/codeengine/cron

Pour connecter votre application à l'abonnement « Periodic timer » à l'aide de l'interface de ligne de commande (CLI), utilisez la ibmcloud ce sub cron create commande suivante.

ibmcloud ce sub cron create --name NAME --destination-type APP --destination APPLICATION_NAME --schedule CRON

Par exemple, pour créer un abonnement cron qui envoie chaque jour à minuit un événement à une application appelée myapp:

ibmcloud ce sub cron create --name mycronevent --destination-type app --destination myapp --schedule '0 0 * * *'

Vous devez placer la valeur de planification entre guillemets pour qu'elle soit traitée comme une chaîne unique.

Le tableau ci-dessous récapitule les options utilisées dans l'exemple précédent avec la commande sub cron create. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce subscription cron create.

Options de commande
Option Description
--name Nom de la source d'événement cron. Cette valeur est obligatoire.
--destination Nom d'une application ou d'un travail Code Engine dans le projet en cours destiné à recevoir les événements du producteur d'événement. Cette valeur est obligatoire.
--destination-type Type de la destination, en l'occurrence, app. La valeur par défaut est app.
--schedule Permet de planifier la fréquence à laquelle l'événement est déclenché, au format crontab. Par exemple, indiquez */2 * * * * (au format chaîne) pour un déclenchement toutes les 2 minutes. Par défaut, l'événement cron est déclenché toutes les minutes et utilise le fuseau horaire UTC. Pour modifier le fuseau horaire, utilisez l'option --time-zone. Cette valeur est facultative.
Conseils pour l'utilisation des commandes sub cron
  • Par défaut, les événements sont acheminés vers l'URL racine de l'application de destination. Vous pouvez envoyer des événements vers une autre destination dans l'application à l'aide de l'option --path. Par exemple, si votre abonnement indique --path /events, les évènements sont envoyés à https://<base application URL>/events.
  • La taille des données relatives aux événements de minuterie périodique est limitée à 4 096 octets au maximum. Ainsi, lorsque vous utilisez l'option --data ou --data-base64, vous pouvez envoyer 4096 octets maximum. Pour plus d'informations, voir Limites et quotas pour Code Engine.
  • Les abonnements cron utilisent le fuseau horaire UTC par défaut. Vous pouvez modifier le fuseau horaire en spécifiant l'option --time-zone dans la commande sub cron create ou sub cron update. Pour connaître les valeurs de fuseau horaire valides, consultez la base de données TZ. Notez que si vous créez un abonnement à l'aide de kubectl et que vous ne spécifiez pas de fuseau horaire, le fuseau horaire UTC est utilisé.
  • Si vous n'avez pas encore créé votre consommateur d'événement d'application ou de travail, utilisez l'option --force avec la commande sub cron create pour forcer la création de l'abonnement aux événements cron. Vous pouvez indiquer le nom de votre application ou travail et créer votre application ou créer votre travail après avoir créé l'abonnement cron.

Pour vérifier que votre abonnement cron a été créé, exécutez la commande ibmcloud ce sub cron get --name mycronevent.

Exemple de sortie

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

Dans cette sortie, vous pouvez constater que l'application de destination est myapp, que la planification est 0 0 * * * (chaque jour à minuit) et que l'état Ready a pour valeur true.

Mise à jour de votre abonnement cron avec l'interface de ligne de commande

Pour mettre à jour l'abonnement cron à l'aide de l'interface de ligne de commande, utilisez la commande ibmcloud ce subscription cron update. Par exemple, mettez à jour l'abonnement mycronevent pour modifier la planification de l'envoi d'un événement à une application appelée myapp toutes les 2 minutes.

ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'

Pour vérifier que votre abonnement cron a été mis à jour, exécutez la commande ibmcloud ce sub cron get --name mycronevent. La planification de l'abonnement est mise à jour.

Exemple de sortie

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

Vous voulez suivre un tutoriel ? Voir Abonnement à des événements de temporisateur périodique (cron). Vous recherchez d'autres exemples de code ? Découvrez le site Exemples pour le dépôt « IBM Cloud Code Engine GitHub ».

Affichage des informations d'événement pour une application à partir de la console

Pour afficher des informations sur vos abonnements à des événements,

  1. Depuis la page « Projets » d' Code Engine, accédez à votre projet.
  2. Sur la page Présentation, cliquez sur Abonnements à des événements pour afficher une liste des abonnements définis.

Si votre application imprime des informations dans les fichiers journaux, comme le fait l'exemple d'application cron, affichez les fichiers journaux de votre application client d’évènement. Voir Affichage des journaux d'application à partir de la console.

Affichage des informations d'événement pour une application à l'aide de l'interface de ligne de commande

Si votre application imprime des informations dans les fichiers journaux, comme le fait l'exemple d'application cron, affichez les fichiers journaux de votre application de consommateur d'événement à l'aide de la commande d'interface de ligne de commande ibmcloud ce app logs. Par exemple, pour afficher les journaux de l'application que vous avez créée dans l'exemple précédent, utilisez la commande :

ibmcloud ce application logs --application myapp

Exemple de sortie

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]

Pour plus d'informations sur la journalisation, voir Affichage des journaux.

Vous recherchez d'autres exemples de code ? Découvrez le site Exemples pour le dépôt « IBM Cloud Code Engine GitHub ».

Informations d'en-tête et de corps pour les événements distribués aux applications

Tous les événements distribués aux applications sont reçus en tant que messages POST HTTP. Les événements contiennent des en-têtes HTTP qui vous aident à déterminer rapidement des informations clés sur les événements sans examiner le corps (logique métier) de l'événement. Pour plus d'informations, consultez la spécification « CloudEvents ».

En-têtes

Le tableau suivant présente les en-têtes des événements de la planification périodique (cron):

Champs d'en-tête pour les événements
En-tête Description
ce-id Identificateur unique de l'événement, sauf si un événement est réexécuté. Dans ce cas, il se voit attribuer le même ID.
ce-source Référence d'URI qui indique l'origine de cet événement au sein du producteur d'événement. Pour les événements cron, cet en-tête est une référence d'URI associée au sous-domaine du projet et au nom de l'abonnement, au format suivant : /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME].
ce-specversion Version de la spécification CloudEvents. Cette valeur est toujours 1.0.
ce-time Heure à laquelle l'événement a été généré.
ce-type Type de l'événement. Pour les événements cron, il s'agit de dev.knative.sources.ping.

Exemple de sortie

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

Corps HTTP

Le corps HTTP contient l'événement lui-même et se présente sous le format que vous avez spécifié lors de la création ou de la mise à jour de l'abonnement.

S'abonner aux événements périodiques (cron) d'une fonction

Vous pouvez gérer les abonnements aux minuteries périodiques depuis la console ou via l'interface de ligne de commande (CLI).

Les événements sont transmis aux fonctions sous forme de requêtes POST « HTTP ». Pour plus de détails sur les informations incluses dans un événement, voir Informations relatives aux en-têtes et au corps HTTP pour les événements.

S'abonner aux événements périodiques (cron) d'une fonction depuis la console

Vous pouvez créer et mettre à jour des abonnements à des événements de minuterie périodiques pour une fonction depuis la console.

Avant de commencer

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

Suivez les étapes ci-dessous pour créer et mettre à jour un abonnement à un événement de minuterie périodique pour une fonction depuis la console.

  1. Depuis la page « Projets » d' Code Engine, accédez à votre projet.

  2. Sur la page Présentation, cliquez sur Abonnements à des événements.

  3. Sur la page Abonnements à des événements, cliquez sur Créer pour créer votre abonnement.

  4. Sur la page « Créer un abonnement à un événement », procédez comme suit :

    1. Pour leType d’évènement, sélectionnez la mosaïque de temporisateur périodique. Cliquez sur Suivant.
    2. Pour Général, indiquez le nom de l'abonnement au temporisateur périodique, myptimer par exemple. Vous pouvez le cas échéant fournir des attributs d'événement. Sachez que si le consommateur d'événement de temporisateur périodique est une application, les attributs de l'événement sont disponibles sous forme d'en-têtes HTTP. Si le consommateur d'événement est une fonction, les attributs d'événement sont disponibles en tant que paires clé-valeur dans la propriété __ce_headers de l'objet params. Cliquez sur Suivant pour continuer.
    3. Pour le paramètre de planification Schedule, fournissez des informations sur l'échelonnement des événements. Le générateur d'événements « Periodic timer » utilise la syntaxe standard de crontab pour définir les détails relatifs aux intervalles. Choisissez votre intervalle parmi les modèles fournis ou fournissez votre propre expression cron personnalisée, telle que 0 0 * * * indiquant que l'événement doit se produire tous les jours à minuit. Dans le cas présent, sélectionnez le modèle de planification pour chaque jour, chaque heure, chaque minute. Notez que l'expression cron est générée automatiquement. Les modèles de jour, d'heure et de minute et l'expression Cron sont en temps universel coordonné (UTC). Si vous ne définissez pas la planification, cet abonnement envoie un événement toutes les minutes. Une liste des événements planifiés à venir s'affiche. Notez que ces événements sont affichés dans votre fuseau horaire. Cliquez sur Suivant pour continuer.
    4. Pour Données d'événements personnalisées, fournissez les données à inclure dans le corps de votre message d'événement. Vous pouvez spécifier le message en texte brut ou au format base64. Dans le cas présent, spécifiez le texte hello stranger en tant que corps du message d'événement. Si le message est au format base64, vous pouvez faire en sorte qu'il soit décodé lors de l'envoi de l'événement. Vous pouvez également spécifier le type de contenu pour vos données d'événement personnalisées. Cliquez sur Suivant pour continuer.
    5. Pour Event consumer, choisissez le type de composant Function et spécifiez la fonction de réception des événements. Notez que vous pouvez choisir parmi une liste de fonctions prédéfinies. Pour cet exemple, utilisez la fonction myfun qui utilise l'exemple de code en ligne. Si vous n'avez pas encore créé votre fonction, vous pouvez spécifier le nom de votre fonction et Création de charges de travail de fonction avec un code en ligne après avoir créé l'abonnement au temporisateur périodique. Cliquez sur Suivant pour continuer.
    6. Pour Récapitulatif, vérifiez les paramètres de votre abonnement aux événements de temporisateur périodique et modifiez-les si nécessaire. Lorsque vous êtes prêt, cliquez sur « Créer » pour créer l'abonnement à la minuterie périodique.
  5. Maintenant que votre abonnement à la minuterie périodique est créé, rendez-vous sur la page « Abonnements aux événements » pour consulter la liste des abonnements définis.

  6. Pour mettre à jour un abonnement, rendez-vous sur la page de votre abonnement « Minuterie périodique ». Sur cette dernière, cliquez sur le nom de l'abonnement à mettre à jour.

  7. Depuis la page d'abonnement à votre minuterie périodique, modifiez les données contenues dans le message d'événement. Dans l'onglet Données d'événement personnalisé, remplacez les données d'événement par { "hello": "world" } et choisissez application/json comme Type de contenu des données d'événement personnalisé. Cliquez sur Sauvegarder pour sauvegarder vos modifications.

  8. Etant donné que la fonction myfun utilise l'exemple de code en ligne, qui imprime l'objet params complet dans les fichiers journaux, vous pouvez afficher les journaux pour vérifier que la fonction a été appelée. Affichez les journaux de la fonction de consommateur d'événement myfun et vérifiez que l'objet params contient une paire clé-valeur hello: world. Vous pouvez également voir que la zone body de l'objet params contient la valeur codée Base64. { "hello": "world" } Voir Affichage des journaux de fonction à partir de la console.

S'abonner aux événements périodiques (cron) d'une fonction via l'interface en ligne de commande (CLI)

Avant de commencer

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

Sauvegardez le code dans un fichier appelé sample_inline_code.js et créez la fonction à l'aide de la commande suivante:

ibmcloud ce function create --name myfun --runtime nodejs --inline-code ./sample_inline_code.js

Pour associer votre fonction à l'abonnement « Periodic timer » via l'interface CLI, utilisez la ibmcloud ce sub cron create commande suivante :

ibmcloud ce sub cron create --name NAME --destination-type function --destination FUNCTION_NAME --schedule CRON

Par exemple, pour créer un abonnement cron qui envoie chaque jour à minuit un événement à une application appelée myfun:

ibmcloud ce sub cron create --name mycronevent --destination-type function --destination myfun --schedule '0 0 * * *'

Vous devez placer la valeur de planification entre guillemets pour qu'elle soit traitée comme une chaîne unique.

Le tableau ci-dessous récapitule les options utilisées dans l'exemple précédent avec la commande sub cron create. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce subscription cron create.

Options de commande
Option Description
--name Nom de la source d'événement cron. Cette valeur est obligatoire.
--destination Nom d'une application, d'une fonction ou d'un job Code Engine dans le projet actuel, destiné à recevoir les événements provenant du producteur d'événements. Cette valeur est obligatoire.
--destination-type Type de la destination, en l'occurrence, function. La valeur par défaut est app.
--schedule Permet de planifier la fréquence à laquelle l'événement est déclenché, au format crontab. Par exemple, indiquez */2 * * * * (au format chaîne) pour un déclenchement toutes les 2 minutes. Par défaut, l'événement cron est déclenché toutes les minutes et utilise le fuseau horaire UTC. Pour modifier le fuseau horaire, utilisez l'option --time-zone. Cette valeur est facultative.
Conseils pour l'utilisation des commandes sub cron
  • La taille des données relatives aux événements de minuterie périodique est limitée à 4 096 octets au maximum. Ainsi, lorsque vous utilisez l'option --data ou --data-base64, vous pouvez envoyer 4096 octets maximum. Pour plus d'informations, voir Limites et quotas pour Code Engine.
  • Les abonnements cron utilisent le fuseau horaire UTC par défaut. Vous pouvez modifier le fuseau horaire en spécifiant l'option --time-zone dans la commande sub cron create ou sub cron update. Pour connaître les valeurs de fuseau horaire valides, consultez la base de données TZ. Notez que si vous créez un abonnement à l'aide de kubectl et que vous ne spécifiez pas de fuseau horaire, le fuseau horaire UTC est utilisé.
  • Si vous n'avez pas encore créé votre consommateur d'événement d'application ou de travail, utilisez l'option --force avec la commande sub cron create pour forcer la création de l'abonnement aux événements cron. Vous pouvez spécifier le nom de votre fonction Créer une fonction après avoir créé l'abonnement cron.

Pour vérifier que votre abonnement cron a été créé, exécutez la commande ibmcloud ce sub cron get --name mycronevent.

Exemple de sortie

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

D'après ces résultats, vous pouvez constater que la fonction de destination est myfun, que la planification est 0 0 * * * (tous les jours à minuit) et que l'état « Ready » est true.

Mise à jour de votre abonnement cron avec l'interface de ligne de commande

Pour mettre à jour l'abonnement cron à l'aide de l'interface de ligne de commande, utilisez la commande ibmcloud ce subscription cron update. Par exemple, mettez à jour l'abonnement « mycronevent » afin de modifier la planification et d'envoyer un événement à une fonction nommée « myfun » toutes les 2 minutes :

ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'

Pour vérifier que votre abonnement cron a été mis à jour, exécutez la commande ibmcloud ce sub cron get --name mycronevent. La planification de l'abonnement est mise à jour.

Exemple de sortie

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

Vous voulez suivre un tutoriel ? Voir Abonnement à des événements de temporisateur périodique (cron). Vous recherchez d'autres exemples de code ? Découvrez le site Exemples pour le dépôt « IBM Cloud Code Engine GitHub ».

Affichage des informations relatives aux événements d'une fonction depuis la console

Pour consulter les informations relatives à vos abonnements aux événements :

  1. Depuis la page « Projets » d' Code Engine, accédez à votre projet.
  2. Sur la page Présentation, cliquez sur Abonnements à des événements pour afficher une liste des abonnements définis.

Si votre fonction enregistre des informations dans des fichiers journaux, comme le fait l'exemple de tâche « codeengine », consultez alors les fichiers journaux de votre fonction. Voir Affichage des journaux de travail à partir de la console.

Informations relatives à l'en-tête et au corps des tâches Cron transmises aux fonctions

Tous les événements transmis aux fonctions sont reçus sous forme de messages POST de type « HTTP ». Les événements comportent certains en-têtes d' HTTP s qui vous permettent d'identifier rapidement les informations essentielles les concernant. HTTP Les en-têtes sont stockés dans la propriété __ce_headers de l'objet params avec lequel la fonction est appelée. Pour plus d'informations, consultez la spécification « CloudEvents ».

En-têtes

Le tableau suivant décrit les paires clé-valeur dans __ce_headers pour les événements périodiques timer (cron):

Fichiers d'en-tête pour les événements
En-tête Description
Ce-Id Identificateur unique de l'événement, sauf si un événement est réexécuté. Dans ce cas, il se voit attribuer le même ID.
Ce-Source Référence d'URI qui indique l'origine de cet événement au sein du producteur d'événement. Pour les événements cron, cet en-tête est une référence d'URI associée au sous-domaine du projet et au nom de l'abonnement, au format suivant : /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME].
Ce-Specversion Version de la spécification CloudEvents. Cette valeur est toujours 1.0.
Ce-Time Heure à laquelle l'événement a été généré.
Ce-Type Type de l'événement. Pour les événements cron, il s'agit de dev.knative.sources.ping.

Exemple de sortie

  __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"
  }

Corps HTTP

Le corps de l' HTTP ion contient les données d'événement personnalisées et se présente sous le format que vous spécifiez lors de la création ou de la mise à jour de l'abonnement. Vous pouvez accéder aux données d'événement personnalisé à partir de la propriété body dans l'objet params.

Exemple d'objet params pour un appel d'événement avec un fichier d'événements personnalisé défini sur hello stranger et Content Type of custom event data défini sur 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"
  }

La valeur de « body » est encodée au format « Base64 », si le type de contenu des données d'événement personnalisé est défini sur « application/json ».

Abonnement à des événements de temporisateur périodique (cron) pour un travail

Vous pouvez gérer les abonnements aux minuteries périodiques depuis la console ou via l'interface de ligne de commande (CLI).

Votre travail reçoit les événements en tant que variables d'environnement. Pour plus d'informations sur les variables d'environnement envoyées par cron, voir Variables d'environnement pour les événements.

Abonnement à des événements de temporisateur périodique (cron) pour un travail depuis la console

Vous pouvez créer et mettre à jour des abonnements à des événements de minuterie périodiques pour une tâche depuis la console.

Avant de commencer

Suivez les étapes ci-dessous pour créer et mettre à jour un abonnement à un événement de minuterie périodique pour une tâche depuis la console.

  1. Depuis la page « Projets » d' Code Engine, accédez à votre projet.

  2. Sur la page Présentation, cliquez sur Abonnements à des événements.

  3. Sur la page Abonnements à des événements, cliquez sur Créer pour créer votre abonnement.

  4. Sur la page « Créer un abonnement à un événement », procédez comme suit :

    1. Pour Général, indiquez le nom de l'abonnement au temporisateur périodique, myptimer2 par exemple. Vous pouvez le cas échéant fournir des attributs d'événement. Sachez que si le consommateur d'événement de temporisateur périodique est une application, les attributs de l'événement sont disponibles sous forme d'en-têtes HTTP. Si le consommateur d'événement est un travail, les attributs de l'événement sont disponibles sous forme de variables d'environnement. Cliquez sur Suivant pour continuer.
    2. Pour le paramètre de planification Schedule, fournissez des informations sur l'échelonnement des événements. Le générateur d'événements « Periodic timer » utilise la syntaxe standard de crontab pour définir les détails relatifs aux intervalles. Choisissez votre intervalle parmi les modèles fournis ou fournissez votre propre expression cron personnalisée, telle que 0 0 * * * indiquant que l'événement doit se produire tous les jours à minuit. Dans le cas présent, sélectionnez le modèle de planification pour chaque jour, chaque heure, chaque minute. Notez que l'expression cron est générée automatiquement. Les modèles de jour, d'heure et de minute et l'expression Cron sont en temps universel coordonné (UTC). Si vous ne définissez pas la planification, cet abonnement envoie un événement toutes les minutes. Une liste des événements planifiés à venir s'affiche. Notez que ces événements sont affichés dans votre fuseau horaire. Cliquez sur Suivant pour continuer.
    3. Pour Données d'événements personnalisées, fournissez les données à inclure dans le corps de votre message d'événement. Vous pouvez spécifier le message en texte brut ou au format base64. Dans le cas présent, spécifiez le texte hello stranger en tant que corps du message d'événement. Si le message est au format base64, vous pouvez faire en sorte qu'il soit décodé lors de l'envoi de l'événement. Vous pouvez également spécifier le type de contenu pour vos données d'événement personnalisées. Cliquez sur Suivant pour continuer.
    4. Pour Consommateur d'événement, spécifiez l'application ou le travail devant recevoir des événements. Notez que vous pouvez faire un choix dans une liste d'applications et de travaux définis. Pour cet exemple, utilisez le travail myjob qui référence l'image icr.io/codeengine/codeengine. Si vous n'avez pas encore créé votre tâche, vous pouvez indiquer son nom et la créer une fois que vous aurez créé l'abonnement à la minuterie périodique. Cliquez sur Suivant pour continuer.
    5. Pour Récapitulatif, vérifiez les paramètres de votre abonnement aux événements de temporisateur périodique et modifiez-les si nécessaire. Lorsque vous êtes prêt, cliquez sur « Créer » pour créer l'abonnement à la minuterie périodique.
  5. Maintenant que votre abonnement à la minuterie périodique est créé, rendez-vous sur la page « Abonnements aux événements » pour consulter la liste des abonnements définis.

  6. Pour mettre à jour un abonnement, rendez-vous sur la page de votre abonnement « Minuterie périodique ». Sur cette dernière, cliquez sur le nom de l'abonnement à mettre à jour.

  7. Depuis la page d'abonnement à votre minuterie périodique, modifiez les données contenues dans le message d'événement. Dans l'onglet Données d'événement personnalisées, remplacez les données d'événement spécifiées par hello sunshine. Cliquez sur Sauvegarder pour sauvegarder vos modifications.

  8. Etant donné que le travail myjob fait référence à l'exemple d'application codeengine qui imprime des informations dans des fichiers journaux, ces derniers sont consultables. En affichant les journaux du travail du consommateur d'événement myjob, vous constaterez que le message d'événement est hello sunshine. Voir Affichage des journaux de travail à partir de la console.

Abonnement à des événements de temporisateur périodique (cron) pour un travail à l'aide de l'interface de ligne de commande

Avant de commencer

ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine

Pour associer votre tâche à l'abonnement « Periodic timer » via l'interface de ligne de commande (CLI) à l'aide de la ibmcloud ce sub cron create commande.

ibmcloud ce sub cron create --name NAME --destination-type job --destination JOB_NAME --schedule CRON

Par exemple, pour créer un abonnement cron qui envoie un événement à une application appelée myjob toutes les 5 minutes,

ibmcloud ce sub cron create --name mycronevent --destination-type job --destination myjob --schedule '*/5 * * * *' --data '{ "message": "Hello world!" }' --content-type application/json

Vous devez placer la valeur de planification entre guillemets pour qu'elle soit traitée comme une chaîne unique.

Le tableau ci-dessous récapitule les options utilisées avec la commande sub cron create dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce subscription cron create.

Options de commande
Option Description
--name Nom de la source d'événement cron.
--destination-type Type de la destination, en l'occurrence, job.
--destination Nom d'un travail Code Engine dans le projet en cours qui doit recevoir les événements du producteur d'événement.
--schedule Permet de planifier la fréquence à laquelle l'événement est déclenché, au format crontab. Par exemple, indiquez */2 * * * * (au format chaîne) pour un déclenchement toutes les 2 minutes. Par défaut, l'événement cron est déclenché toutes les minutes et utilise le fuseau horaire UTC. Pour modifier le fuseau horaire, utilisez l'option --time-zone. Cette valeur est facultative.
Conseils pour l'utilisation des commandes sub cron
  • La taille des données relatives aux événements de minuterie périodique est limitée à 4 096 octets au maximum. Ainsi, lorsque vous utilisez l'option --data ou --data-base64, vous pouvez envoyer 4096 octets maximum. Pour plus d'informations, voir Limites et quotas pour Code Engine.
  • Les abonnements cron utilisent le fuseau horaire UTC par défaut. Vous pouvez modifier le fuseau horaire en spécifiant l'option --time-zone dans la commande sub cron create ou sub cron update. Pour connaître les valeurs de fuseau horaire valides, consultez la base de données TZ. Notez que si vous créez un abonnement à l'aide de kubectl et que vous ne spécifiez pas de fuseau horaire, le fuseau horaire UTC est utilisé.
  • Si vous n'avez pas encore créé votre consommateur d'événement d'application ou de travail, utilisez l'option --force avec la commande sub cron create pour forcer la création de l'abonnement aux événements cron. Vous pouvez indiquer le nom de votre application ou travail et créer votre application ou créer votre travail après avoir créé l'abonnement cron.

Pour vérifier que votre abonnement cron a été créé, exécutez ibmcloud ce sub cron get --name mycronevent.

Exemple de sortie

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

Dans cette sortie, vous pouvez constater que le travail de destination est myjob, que la planification est */5 * * * * (toutes les 5 minutes) et que l'état Ready a pour valeur true.

Les exécutions de travail qui sont créées par des abonnements sont supprimées au bout de 10 minutes.

Mise à jour de l'abonnement cron avec l'interface de ligne de commande (travail)

Pour mettre à jour l'abonnement cron à l'aide de l'interface de ligne de commande, utilisez la commande ibmcloud ce subscription cron update. Par exemple, mettez à jour l'abonnement mycronevent pour modifier la planification de l'envoi d'un événement à une application appelée myapp toutes les 2 minutes.

ibmcloud ce sub cron update --name mycronevent --schedule '*/2 * * * *'

Pour vérifier que votre abonnement cron a été mis à jour, exécutez la commande ibmcloud ce sub cron get --name mycronevent. La planification de l'abonnement est mise à jour.

Exemple de sortie

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

Affichage des informations d'événement pour un travail à partir de la console

Pour afficher des informations sur vos abonnements à des événements,

  1. Depuis la page « Projets » d' Code Engine, accédez à votre projet.
  2. Sur la page Présentation, cliquez sur Abonnements à des événements pour afficher une liste des abonnements définis.

Si votre travail imprime des informations dans les fichiers journaux, comme le fait l'exemple de travail codeengine, affichez les fichiers journaux de votre travail de consommateur d'événement. Voir Affichage des journaux de travail à partir de la console.

Affichage des informations d'événement pour un travail à l'aide de l'interface de ligne de commande

Si votre travail imprime des informations dans les fichiers journaux, comme c'est le cas de l'exemple de travail codeengine, vous pouvez localiser l'exécution de travail qui a été créée à partir de l'événement de temporisateur périodique (cron), puis afficher les journaux d'exécution de travail. Par exemple, pour trouver l'exécution du travail dans l'exemple précédent,

ibmcloud ce jobrun list

Exemple de sortie

Listing job runs...
OK
Name         Failed  Pending  Requested  Running  Succeeded  Unknown  Age
myjob-kd829  0       0        0          0        1          0        43s

Affichez les journaux pour l'exécution du travail en indiquant le nom d'exécution du travail.

ibmcloud ce jobrun logs --jobrun myjob-kd829

Exemple de sortie

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

Veuillez noter que les informations de journalisation relatives à l'exécution des tâches ne sont conservées que pendant une heure. Pour plus d'informations sur la journalisation, voir Affichage des journaux.

Pour plus d'informations sur les variables d'environnement envoyées par cron, voir Variables d'environnement pour les événements.

Vous recherchez d'autres exemples de code ? Découvrez le site Exemples pour le dépôt « IBM Cloud Code Engine GitHub ».

Variables d'environnement pour les événements distribués aux travaux

Tous les événements distribués à un travail sont reçus en tant que variables d'environnement. Ces variables d'environnement sont précédées du préfixe « CE_ » et s'appuient sur la spécification « CloudEvents ».

Chaque événement contient un certain nombre de variables d'environnement communes qui s'affichent chaque fois que l'événement est distribué à un travail. Le jeu de variables réel de chaque événement peut comporter plus d'options. Pour plus d'informations, consultez la section consacrée aux attributs de la balise « CloudEvent ».

Le tableau suivant décrit les variables d'environnement qui sont propres aux événements cron.

Variables d'environnement pour les événements
Variable Description
CE_DATA Données (corps) de l'événement. Voir CE_DATA pour les événements cron.
CE_ID Identificateur unique de l'événement, sauf si un événement est réexécuté. Dans ce cas, il se voit attribuer le même ID.
CE_SOURCE Référence d'URI qui indique l'origine de cet événement au sein du producteur d'événement. Pour les événements cron, il s'agit d'une référence d'URI associée au sous-domaine du projet et au nom de l'abonnement, au format suivant : /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/pingsources/[SUBSCRIPTION_NAME].
CE_SPECVERSION Version de la spécification CloudEvents. Cette valeur est toujours 1.0.
CE_TIME Heure à laquelle l'événement a été généré.
CE_TYPE Type de l'événement. Pour les événements cron, il s'agit de dev.knative.sources.ping.

CE_DATAvariable d'environnement

Pour les événements de minuterie périodiques, la variable d'environnement CE_DATA contient l'événement lui-même et se présente sous le format que vous spécifiez lors de la création ou de la mise à jour de l'abonnement.

Exemple de sortie

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

Définition d'attributs d'événements supplémentaires

Lorsque vous créez un abonnement, vous pouvez définir des attributs d'événement supplémentaires à inclure dans les événements générés. Ces attributs d'événement sont similaires à tous les autres attributs CloudEvent dans la distribution d'événements. Si vous choisissez de spécifier le nom d'un attribut CloudEvent existant, il remplace la valeur d'origine incluse dans l'événement. Pour plus d'informations, voir Puis-je utiliser d'autres spécifications CloudEvents ?

A partir de la console, vous pouvez spécifier les attributs de l'événement sous forme de paires clé-valeur dans l'onglet Général pour votre abonnement aux événements de temporisateur périodique (cron).

Pour définir des attributs supplémentaires l'aide de l'interface de ligne de commande, utilisez les options --extension avec la commande d'interface de ligne de commande ibmcloud ce sub cron create.

Suppression d'un abonnement

Lorsque vous n'avez plus besoin d'un abonnement au temporisateur périodique (cron), vous pouvez le supprimer.

Suppression d'un abonnement de la console

  1. Depuis la page « Projets » d' Code Engine, accédez à votre projet.
  2. Sur la page Présentation, cliquez sur Abonnements à des événements pour afficher une liste des abonnements définis.
  3. Dans la liste des abonnements, supprimez l'abonnement que vous souhaitez supprimer de votre application ou travail.

La suppression d'une application ou d'un travail n'entraîne pas la suppression de l'abonnement.

Suppression d'un abonnement avec l'interface de ligne de commande

Vous pouvez supprimer un abonnement en exécutant la commande ibmcloud ce sub cron delete ou ibmcloud ce sub cos delete.

Par exemple, supprimez un abonnement cron appelé mycronevent2 :

ibmcloud ce subscription cron delete --name mycronevent2

La suppression d'une application ou d'un travail n'entraîne pas la suppression de l'abonnement. Au lieu de cela, dans l'interface de ligne de commande, son état Prêt (Ready) devient false car l'abonnement dépend de la disponibilité de l'application ou du travail. Si vous recréez l'application ou le travail (ou une autre application du même nom), votre abonnement est reconnecté et l'état Ready prend la valeur true.