Cómo trabajar con el generador de sucesos de IBM Cloud Object Storage
La suscripción de IBM Cloud Object Storage escucha si hay cambios en un grupo de Object Storage. Cuando se crea una suscripción en un grupo, la app o el trabajo recibe un suceso independiente para cada cambio correcto en ese grupo. Puede suscribirse
a distintos, sucesos como por ejemplo a sucesos write, a sucesos delete o a sucesos all. Puede crear como máximo 100 suscripciones de Object Storage por proyecto.
Configuración del productor de sucesos de IBM Cloud Object Storage
Para empezar, debe crear una instancia de servicio de IBM Cloud Object Storage y crear un grupo regional en una de las regiones soportadas para Code Engine.
Su grupo de Object Storage debe ser un grupo regional que se encuentre en la misma región que su proyecto de Code Engine. No se da soporte a grupos entre regiones ni a grupos de un solo sitio. Para obtener más información sobre la configuración del productor de sucesos de IBM Cloud Object Storage, consulte Cómo empezar con Object Storage.
Si la aplicación o el trabajo que está recibiendo sucesos desea hablar con un servicio utilizando la red privada y el servicio tiene puntos finales private y direct (como por ejemplo IBM Cloud Object Storage), se deben
utilizar los puntos finales de direct.
Asignación del rol de Gestor de notificaciones a Code Engine
Para poder crear una suscripción de Object Storage, debe asignar el rol de Gestor de notificaciones a Code Engine. Como Gestor de notificaciones, Code Engine puede ver, modificar y suprimir notificaciones para un grupo de Object Storage.
Solo los administradores de la cuenta pueden asignar el rol de Gestor de notificaciones.
Cuando asigne el rol de Gestor de notificaciones al proyecto, puede crear suscripciones de sucesos para cualquier grupo regional de su instancia de Object Storage que se encuentre en la misma región que el proyecto.
- Accede a la página « Conceder una autorización de servicio » en el panel de control de IAM.
- En Servicio de origen, seleccione Code Engine.
- Seleccione Recursos basados en atributos seleccionados e Instancia de servicio de origen. A continuación, seleccione un proyecto de Code Engine.
- En Servicio de destino, seleccione Cloud Object Storage.
- Seleccione Recursos basados en atributos seleccionados e Instancia de servicio. A continuación, seleccione la instancia de IBM Cloud Object Storage.
- Asigne el rol de Gestor de notificaciones y pulse Autorizar.
También puede asignar el rol de Gestor de notificaciones al proyecto con el mandato ibmcloud iam authorization-policy-create.
Suscripción a sucesos de IBM Cloud Object Storage para una aplicación
Puede trabajar con suscripciones de IBM Cloud Object Storage desde la consola o con la CLI de forma que los sucesos se envíen a una aplicación de Code Engine.
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 /event,
el suceso se envía a https://<base application URL>/events.
Los sucesos se envían a las aplicaciones como solicitudes HTTP POST. Para obtener más información, consulte cabeceras HTTP e información de cuerpo para sucesos.
Suscripción a sucesos de IBM Cloud Object Storage para una aplicación desde la consola
Puede crear y actualizar suscripciones de sucesos de IBM Cloud Object Storage para una aplicación desde la consola.
Antes de empezar
- Crear un proyecto.
- Cree una aplicación. Por ejemplo, cree una aplicación denominada
myappque utilice la imagenicr.io/codeengine/cos-event. Esta imagen se ha creado a partir decos-listen.go, disponible en el repositorio «Samples for IBM Cloud Code Engine »(GitHub).
Complete los pasos siguientes para crear y actualizar una suscripción de sucesos de IBM Cloud Object Storage 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 una suscripción de sucesos, siga los pasos siguientes.
- En Tipo de suceso, seleccione el mosaico Cloud Object Storage. Pulse Siguiente.
- En General, indique un nombre para la suscripción de Object Storage, por ejemplo,
mycos. Opcionalmente, puede proporcionar atributos de suceso. Tenga en cuenta que si el consumidor de sucesos de Object Storage es una aplicación, los atributos de suceso 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. - En Detalles de sucesos de grupo, seleccione o escriba el nombre de un grupo existente de Object Storage. Especifique los tipos de cambios para el objeto, y opcionalmente indique un prefijo o sufijo de nombre de objeto para filtrar objetos en el grupo, para desencadenar sucesos para la suscripción. Pulse Siguiente para continuar.
- En Consumidor de sucesos, especifique la aplicación que recibirá los 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/cos-listen. Si la aplicación no existe, puede indicar el nombre de la aplicación y crear su aplicación después de crear la suscripción de Object Storage. 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. - En Resumen, revise los valores de la suscripción de sucesos de Object Storage y haga los cambios necesarios. Cuando esté preparado, pulse Crear para crear la suscripción de Object Storage.
-
Ahora que se ha creado la suscripción de Object Storage, vaya a la página de suscripciones de sucesos a ver una lista de las suscripciones definidas.
-
Para actualizar una suscripción, vaya a la página de suscripción de Object Storage. En la página Suscripciones de sucesos, pulse el nombre de la suscripción que desea actualizar.
-
En la página de suscripciones de Object Storage, cambiamos el tipo de cambio de objeto a solo cambios de objeto de
delete. En la pestaña Detalles de sucesos de grupo, seleccione solo el tipo de cambio de objetodelete. Pulse Guardar para guardar los cambios. -
Dado que la aplicación
myapphace referencia a la aplicación de ejemplocos-listen, que imprime información en los archivos de registro, puede ver los registros. Después de suprimir un objeto del grupo, puede ver un suceso referente a la supresión en los registros de la aplicación. Consulte Visualización de registros de aplicaciones desde la consola.
Una vez que se ha definido una suscripción de suceso de IBM Cloud Object Storage que hace referencia a un grupo específico, no se puede actualizar esta suscripción para que utilice otro grupo distinto. Debe crear una nueva suscripción para referirla al grupo que desee.
Suscripción a sucesos de IBM Cloud Object Storage para una aplicación con la CLI
Antes de empezar
-
Crear una aplicación. Por ejemplo, cree una aplicación denominada
myappque utilice la imagenicr.io/codeengine/cos-listen. Esta imagen se ha creado a partir decos-listen.go, disponible en el repositorio «Samples for IBM Cloud Code Engine »(GitHub). Por ejemplo:ibmcloud ce application create --name myapp --image icr.io/codeengine/cos-listen
-
Conecte la aplicación al productor de sucesos de IBM Cloud Object Storage utilizando el mandato
ibmcloud ce subscription cos create. Por ejemplo:ibmcloud ce subscription cos create --name mycosevent --destination-type app --destination myapp --bucket mybucket -
Después de crear la suscripción, ejecute el mandato
subscription cos getpara obtener detalles sobre la suscripción.ibmcloud ce subscription cos get --name mycoseventSalida de ejemplo
Getting COS source 'mycosevent'... OK Name: mycosevent ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 59s Created: 2021-03-01T20:08:36-06:00 Destination: App:myapp Bucket: mybucket Event Type: all Ready: true Conditions: Type OK Age Reason CosConfigured true 55s Ready true 55s ReadyForEvents true 55s SinkProvided true 55s Events: Type Reason Age Source Messages Normal FinalizerUpdate 61s cossource-controller Updated "mycosevent" finalizers
Ahora, cada vez que cambia el grupo, la app recibe notificación.
¿Desea probar una guía de aprendizaje? Consulte Suscripción a sucesos de Object Storage. ¿Desea ver más ejemplos de código? Consulte el repositorio de muestras de 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 cos-listen 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 cos-listen, utilice el mandato de CLI ibmcloud ce app logs para ver la información que se ha enviado.
Para poder ver la información de sucesos para la aplicación, primero debe crear un suceso de Object Storage. Realice un cambio en el grupo.
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-a2mvv-1-deployment-d97dcd6cf-zc9lg/user-container:
Listening on port 8080
2021-04-13 19:43:45 - Received:
Body: {"bucket":"mybucket","endpoint":"","key":"Notes.rtf","notification":{"bucket_name":"mybucket","content_type":"text/rtf","event_type":"Object:Write","format":"2.0","object_etag":"2944035e54ee1bdc423848c8eaf05e86","object_length":"4642","object_name":"NOtes.rtf","request_id":"6abc7123-382d-4115-98e8-7568b2cc03f8","request_time":"2021-04-13T19:43:36.610Z"},"operation":"Object:Write"}
Ten en cuenta que la información de registro de las aplicaciones solo se conserva durante una hora. Para obtener más información sobre el registro, consulte Visualización de registros.
¿Desea ver más ejemplos de código? Consulte el repositorio de muestras de IBM Cloud Code Engine GitHub.
Información de cuerpo y cabecera de IBM Cloud Object Storage para sucesos entregados a aplicaciones
Todos los sucesos que se entregan a las aplicaciones se reciben como mensajes HTTP. 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 tabla siguiente se describen las cabeceras para sucesos de Object Storage.
| 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 sucesos de Object Storage, este valor es https://cloud.ibm.com/catalog/services/cloud-object-storage/[BUCKET_NAME] donde
[BUCKET_NAME] es el nombre del grupo que contiene el objeto. |
ce-specversion |
La versión de la especificación de CloudEvents. Este valor siempre es 1.0. |
ce-subject |
Indica el recurso sobre el que se relaciona el suceso. Para los sucesos de Object Storage, este es el nombre del objeto (o clave) sobre el que se ha actuado. |
ce-time |
La hora a la que se ha generado el suceso. |
ce-type |
El tipo del suceso. Para sucesos de Object Storage, es com.ibm.cloud.cos.document.[ACTION] donde [ACTION] es write o delete. Cuando se produce una creación o actualización de un suceso,
se utiliza una acción write para ce-type. |
Ejemplo
ce-id: 3fb2c04e-a660-4640-8899-b82efb8169b6
ce-source: https://cloud.ibm.com/catalog/services/cloud-object-storage/mybucket
ce-specversion: 1.0
ce-subject: object-69-144
ce-time: 2021-08-17T20:22:02.917Z
ce-type: com.ibm.cloud.cos.document.delete
Cuerpo HTTP
El cuerpo HTTP para un suceso de IBM Cloud Object Storage se encuentra en el formato siguiente,
{
"bucket": "mybucket",
"endpoint": "",
"key": "object-69-144",
"notification": {
"bucket_name": "mybucket",
"content_type": "image/svg+xml",
"event_type": "Object:Delete",
"format": "2.0",
"object_etag": "f3a9dbde30fdf48abc23e5f8b485d6e5",
"object_length": "1064391",
"object_name": "object-69-144",
"request_id": "67a2048a-abcd-abcd-9e0c-968744094b85",
"request_time": "2021-08-17T20:22:02.917Z"
},
"operation": "Object:Delete"
}
La siguiente tabla describe el campo de cuerpo.
| Campo Cuerpo | Descripción |
|---|---|
bucket |
El nombre de grupo del objeto que está relacionado con el suceso. |
endpoint |
Este valor siempre es una serie vacía. |
key |
El nombre del objeto en el grupo. |
operation |
El tipo de suceso o la operación, escriba Object:Write u Object:Delete. Los sucesos de creación o carga se etiquetan como operaciones Object:Write. |
Notification.bucket_name |
El nombre de grupo del objeto que está relacionado con el suceso. |
Notification.content_type |
El tipo MIME del objeto, por ejemplo, text/html. |
Notification.event_type |
El tipo de suceso o la operación, escriba Object:Write u Object:Delete. Los sucesos de creación o carga se etiquetan como operaciones Object:Write. |
Notification.format |
Este valor siempre es 2.0. |
Notification.object_etag |
Valor exclusivo que cambia cada vez que se modifica el objeto. Este valor no se visualiza para una operación Object:Delete. |
Notification.object_length |
El tamaño del objeto, en bytes. |
Notification.request_id |
El ID exclusivo relacionado con el cambio de objeto. |
Notification.request_time |
Hora a la que se ha producido el cambio de objeto. |
Suscripción a sucesos de IBM Cloud Object Storage para un trabajo
Puede trabajar con suscripciones de IBM Cloud Object Storage desde la consola o con la CLI de forma que los sucesos se envíen a un trabajo de Code Engine.
Cuando se crea una suscripción de sucesos para un trabajo, se crea una ejecución de trabajo para cada suceso que se desencadena y esta ejecución de trabajo tiene las variables de entorno que están relacionadas con el trabajo. Para obtener más información sobre las variables de entorno que envía IBM Cloud Object Storage, consulte Variables de entorno para sucesos.
Suscripción a sucesos de IBM Cloud Object Storage para un trabajo desde la consola
Puede crear y actualizar suscripciones de sucesos de IBM Cloud Object Storage para un trabajo desde la consola.
Antes de empezar
- 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).
Sigue estos pasos para crear o actualizar una suscripción a eventos de « IBM Cloud Object Storage » 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 una suscripción a un evento», sigue estos pasos:
-
En Tipo de suceso, seleccione el mosaico Cloud Object Storage. Pulse Siguiente.
-
En General, indique un nombre para la suscripción de Object Storage, por ejemplo,
mycos-job. Opcionalmente, puede proporcionar atributos de suceso. Cuando el consumidor de sucesos es un trabajo, los atributos de suceso están disponibles como variables de entorno. Pulse Siguiente para continuar. -
Para obtener detalles sobre eventos de cubo, seleccione o escriba el nombre de un cubo de Object Storage existente y especifique los tipos de cambios para su objeto en los que desea activar eventos.
Para el tipo de cambio de objeto, especifique cuándo recibir eventos para acciones en su objeto Object Storage ; puede seleccionar uno o ambos tipos de cambios de objeto:
- Utilice Crear y actualizar para recibir un evento cada vez que se cree un nuevo objeto o se actualice un objeto existente.
- Utilice Eliminar para recibir una notificación cada vez que se elimine un objeto existente de su cubo.
También puede proporcionar opcionalmente un prefijo o sufijo de nombre de objeto para filtrar objetos en el depósito y activar eventos para la suscripción. Especifique los valores de prefijo del nombre del objeto o sufijo del nombre del objeto para indicar cadenas que coincidan con el comienzo (prefijo) o el final (sufijo) de los nombres de los objetos para los que desea recibir eventos. El valor limita los objetos de su cubo de Object Storage que desencadenan eventos a los nombres de archivo que empiezan o acaban con el prefijo o sufijo especificado. No utilice caracteres comodín ni expresiones regulares; especifique solo texto sin formato para el prefijo y el sufijo (por ejemplo, especifique
abc, no*abcpara indicar todos los objetos que comienzan porabc). Además, los nombres de archivo incluyen la extensión del archivo (por ejemplo, si especificajsoncomo sufijo, el evento se gestionará para archivos comoabc.json, pero no paraabcjson.txt).Pulse Siguiente para continuar.
-
En Consumidor de sucesos, especifique el trabajo que recibirá sucesos. Observe que puede elegir entre una lista de trabajos definidos. Para este ejemplo, utilice el trabajo
myjobque aparece en la imagenicr.io/codeengine/codeengine. Si el trabajo no existe, puede especificar el nombre del trabajo y crear su trabajo después de crear la suscripción de Object Storage. Pulse Siguiente para continuar. -
En Resumen, revise los valores de la suscripción de sucesos de Object Storage y haga los cambios necesarios. Cuando esté preparado, pulse Crear para crear la suscripción de Object Storage.
-
-
Ahora que se ha creado la suscripción de Object Storage, vaya a la página de suscripciones de sucesos a ver una lista de las suscripciones definidas.
-
Para actualizar una suscripción, vaya a la página de suscripción de Object Storage. En la página Suscripciones de sucesos, pulse el nombre de la suscripción que desea actualizar.
-
En la página de suscripciones de Object Storage, cambiamos el tipo de cambio de objeto a solo cambios de objeto de
delete. En la pestaña Detalles de sucesos de grupo, seleccione solo el tipo de cambio de objetodelete. Pulse Guardar para guardar los cambios. -
Dado que el trabajo
myjobhace referencia al trabajo de ejemploicr.io/codeengine/codeengine, que imprime información en los archivos de registro, puede ver los registros. Después de suprimir un objeto del grupo, puede ver un suceso referente a la supresión en los registros de la ejecución del trabajo. Consulte Visualización de registros de trabajo desde la consola.
Las ejecuciones de trabajo creadas por suscripciones se suprimen al cabo de 10 minutos.
Una vez que se ha definido una suscripción de suceso de IBM Cloud Object Storage que hace referencia a un grupo específico, no se puede actualizar esta suscripción para que utilice otro grupo distinto. Debe crear una nueva suscripción para referirla al grupo que desee.
Suscripción a sucesos de IBM Cloud Object Storage para un trabajo con la CLI
Antes de empezar
-
Crear 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
-
Conecte el trabajo al productor de sucesos de IBM Cloud Object Storage utilizando el mandato
ibmcloud ce subscription cos create.ibmcloud ce subscription cos create --name mycosevent --destination-type job --destination myjob --bucket mybucket -
Después de crear la suscripción, ejecute el mandato
subscription cos getpara obtener detalles sobre la suscripción.ibmcloud ce subscription cos get --name mycoseventSalida de ejemplo
Getting COS source 'mycosevent'... OK Name: mycosevent ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 59s Created: 2021-03-01T20:08:36-06:00 Destination Type: job Destination: myjob Bucket: mybucket Event Type: all Ready: true Conditions: Type OK Age Reason CosConfigured true 55s Ready true 55s ReadyForEvents true 55s SinkProvided true 55s Events: Type Reason Age Source Messages Normal FinalizerUpdate 61s cossource-controller Updated "mycosevent" finalizers
Ahora, cada vez que cambia el grupo, el trabajo recibe notificación.
Las ejecuciones de trabajo creadas por suscripciones se suprimen al cabo de 10 minutos.
¿Desea probar una guía de aprendizaje? Consulte Suscripción a sucesos de Object Storage. ¿Desea ver más ejemplos de código? Consulte el repositorio de muestras de IBM Cloud Code Engine GitHub.
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 hace el trabajo de ejemplo codeengine, visualice los archivos de registro para la aplicación consumidora 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 hace el trabajo codeengine, utilice el mandato de la CLI de ibmcloud ce jobrun logs para ver la información que se ha enviado.
Para poder ver la información de sucesos para el trabajo, primero debe crear un suceso de Object Storage. Realice un cambio en el grupo.
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-pnz6m 0 0 0 0 1 0 39s
Visualice los registros de la ejecución del trabajo especificando el nombre de la ejecución del trabajo.
ibmcloud ce jobrun logs --jobrun myjob-pnz6m
Salida de ejemplo
Getting logs for all instances of job run 'myjob-pnz6m'...
Getting jobrun 'myjob-pnz6m'...
Getting instances of jobrun 'myjob-pnz6m'...
OK
myjob-pnz6m-0-0/myjob:
Hello from helloworld! I'm a batch job! Index: 0
Hello World from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_DATA={"bucket":"mybucket","endpoint":"","key":"Notes.rtf","notification":{"bucket_name":"mybucket","content_type":"text/rtf","event_type":"Object:Delete","format":"2.0","object_length":"4642","object_name":"Notes.rtf","request_id":"b59727ee-9c4e-446a-9261-5616f6d1283b","request_time":"2021-04-13T20:10:37.631Z"},"operation":"Object:Delete"}
CE_ID=b59727ee-9c4e-446a-9261-5616f6d1283b
CE_SOURCE=https://cloud.ibm.com/catalog/services/cloud-object-storage/mybucket
CE_SPECVERSION=1.0
CE_TIME=2021-04-13T20:10:37.631Z
CE_TYPE=com.ibm.cloud.cos.document.delete
CONTENT_TYPE=application/json
HOME=/root
HOSTNAME=myjob-pnz6m-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.
¿Desea ver más ejemplos de código? Consulte el repositorio de muestras de IBM Cloud Code Engine GitHub.
Variables de entorno para sucesos entregados 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 y conocer otras opciones
de variables de entorno, consulta los atributos de CloudEvent.
En la tabla siguiente se describen las variables de entorno que son específicas de los sucesos de IBM Cloud Object Storage.
| Variable | Descripción |
|---|---|
CE_DATA |
Los datos (cuerpo) para el suceso. Consulte CE_DATA para sucesos de Object Storage. |
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 Object Storage, este valor es https://cloud.ibm.com/catalog/services/cloud-object-storage/[BUCKET_NAME] donde
[BUCKET_NAME] es el nombre del grupo que contiene el objeto. |
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 sucesos de Object Storage, es com.ibm.cloud.cos.document.[ACTION] donde [ACTION] es write o delete. |
Variable de entorno de CE_DATA
Tenga en cuenta que el ejemplo siguiente para CE_DATA está formateado para facilitar la lectura.
{
"bucket":"mybucket",
"endpoint":"",
"key":"Notes.rtf",
"notification": {
"bucket_name":"mybucket",
"content_type":"text/rtf",
"event_type":"Object:Delete",
"format":"2.0",
"object_length":"4642",
"object_name":"Notes.rtf",
"request_id":"b59727ee-9c4e-446a-9261-5616f6d1283b",
"request_time":"2021-04-13T20:10:37.631Z"
},
"operation":"Object:Delete"}
En la tabla siguiente se describe el atributo de entorno CE_DATA.
| Atributo | Descripción |
|---|---|
bucket |
El nombre de grupo del objeto que está relacionado con el suceso. |
endpont |
Este valor siempre es una serie vacía. |
key |
El nombre del objeto en el grupo. |
operaton |
El tipo de suceso o la operación, escriba Object:Write u Object:Delete. Los sucesos de creación o carga se etiquetan como operaciones Object:Write. |
Notification.bucket_name |
El nombre de grupo del objeto que está relacionado con el suceso. |
Notification.content_type |
El tipo MIME del objeto, por ejemplo, text/rtf. |
Notification.event_type |
El tipo de suceso o la operación, escriba Object:Write u Object:Delete. Los sucesos de creación o carga se etiquetan como operaciones Object:Write. |
Notification.format |
Este valor siempre es 2.0. |
Notification.object_etag |
Valor exclusivo que cambia cada vez que se modifica el objeto. Este valor no se visualiza para una operación Object:Delete. |
Notification.object_length |
El tamaño del objeto, en bytes. |
Notification.request_id |
El ID exclusivo relacionado con el cambio de objeto. |
Notification.request_time |
Hora a la que se ha producido el cambio de objeto. |
Salida de ejemplo
CE_DATA={"bucket":"mybucket","endpoint":"","key":"Notes.rtf","notification":{"bucket_name":"mybucket","content_type":"text/rtf","event_type":"Object:Delete","format":"2.0","object_length":"4642","object_name":"Notes.rtf","request_id":"b59727ee-9c4e-446a-9261-5616f6d1283b","request_time":"2021-04-13T20:10:37.631Z"},"operation":"Object:Delete"}
CE_ID=b59727ee-9c4e-446a-9261-5616f6d1283b
CE_SOURCE=https://cloud.ibm.com/catalog/services/cloud-object-storage/mybucket
CE_SPECVERSION=1.0
CE_TIME=2021-04-13T20:10:37.631Z
CE_TYPE=com.ibm.cloud.cos.document.delete
Definición de atributos de suceso adicionales
Cuando cree una suscripción, puede definir atributos adicionales de CloudEvent para que se incluyan en cualquier suceso que se genere. Estos atributos parecen similares a los demás atributos 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 definir atributos de adición, utilice las opciones --extension con el mandato de CLI ibmcloud ce subscription cos create.
Para obtener más información, consulte ¿Puedo utilizar otras especificaciones de CloudEvents?
Supresión de un suscripción
Cuando ya no necesite una suscripción de IBM Cloud Object Storage, 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 aplicación o un trabajo asociado a la suscripción, la suscripción no se suprime. Si vuelve a crear la aplicación o el trabajo (u otra aplicación o trabajo con el mismo nombre), la suscripción se vuelve a conectar a la aplicación o trabajo.
Supresión de una suscripción con la CLI
Puede suprimir una suscripción de IBM Cloud Object Storage ejecutando el mandato ibmcloud ce subscription cos delete.
Por ejemplo, utilice el mandato siguiente para suprimir una suscripción de IBM Cloud Object Storage denominada mycosevent,
ibmcloud ce subscription cos delete --name mycosevent
Si suprime una aplicación o un trabajo asociado a la suscripción, la suscripción no se suprime. En vez de eso, pasa a estado preparado de false porque la suscripción depende de la disponibilidad de la aplicación o trabajo. Si
vuelve a crear la aplicación o el trabajo (u otra aplicación o trabajo con el mismo nombre), la suscripción se vuelve a conectar y el estado Preparado es true.