Utilizzo del produttore di evento IBM Cloud Object Storage
La sottoscrizione IBM Cloud Object Storage ascolta le modifiche a un bucket Object Storage. Quando crei una sottoscrizione a un bucket, la tua applicazione o lavoro riceve un evento separato per ogni modifica riuscita a tale bucket. È possibile
sottoscrivere diversi eventi come write eventi, delete eventi o all eventi. È possibile creare al massimo 100 sottoscrizioni a Object Storage per ogni progetto.
Configurazione del produttore di eventi IBM Cloud Object Storage
Per iniziare, devi creare un'istanza del servizio IBM Cloud Object Storage e creare un bucket regionale in una delle regioni supportate per Code Engine.
Il tuo bucket Object Storage deve trovarsi nella stessa regione del tuo progetto Code Engine. I bucket su più regioni e a singolo sito non sono supportati. Per ulteriori informazioni sull'impostazione del produttore dell'evento IBM Cloud Object Storage, vedi Introduzione a Object Storage.
Se l'applicazione o il lavoro che riceve gli eventi vuole parlare con un servizio utilizzando una rete privata e il servizio ha entrambi gli endpoint private e direct (ad esempio IBM Cloud Object Storage ), è necessario
utilizzare gli endpoint direct.
Assegnazione del ruolo Gestore notifiche a Code Engine
Prima di poter creare una sottoscrizione a Object Storage, è necessario assegnare il ruolo di Notifications Manager a Code Engine. In qualità di Gestore delle notifiche, Code Engine può visualizzare, modificare ed eliminare le notifiche per un bucket Object Storage.
Solo gli amministratori di account possono assegnare il ruolo Gestore notifiche.
Una volta assegnato il ruolo "Notifications Manager" al proprio progetto, è possibile creare sottoscrizioni agli eventi per qualsiasi bucket regionale presente nell'istanza di Object Storage che si trovi nella stessa regione del proprio progetto.
- Accedi alla pagina " Concedere un'autorizzazione di servizio " (Gestione delle impostazioni) all'indirizzo Dashboard IAM.
- Da Servizio origine, selezionare Motore di codice.
- Selezionare Risorse basate sugli attributi selezionati e Istanza del servizio di origine. Seleziona quindi un progetto Code Engine.
- In Servizio di destinazione, seleziona Cloud Object Storage.
- Seleziona Resources based on selected attributes e Service instance. Seleziona quindi la tua istanza IBM Cloud Object Storage.
- Assegna il ruolo Gestore notifiche e fai clic su Autorizza.
È anche possibile assegnare il ruolo Gestore notifiche al progetto utilizzando il comando ibmcloud iam authorization-policy-create.
Sottoscrizione di eventi IBM Cloud Object Storage per un'applicazione
È possibile lavorare con le sottoscrizioni di IBM Cloud Object Storage dalla console o con la CLI, in modo che gli eventi vengano inviati a un'applicazione Code Engine.
Per impostazione predefinita, gli eventi vengono instradati al sito URL dell'applicazione di destinazione. Puoi inviare eventi a una destinazione differente all'interno dell'applicazione utilizzando l'opzione --path. Ad esempio,
se la tua sottoscrizione specifica --path /event, l'evento viene inviato a https://<base application URL>/events.
Gli eventi vengono inviati alle applicazioni come richieste POST HTTP. Per ulteriori informazioni, vedere HTTP intestazioni e informazioni sul corpo degli eventi.
Sottoscrizione agli eventi IBM Cloud Object Storage per una applicazione dalla console
È possibile creare e aggiornare le sottoscrizioni agli eventi IBM Cloud Object Storage per un'applicazione dalla console.
Prima di iniziare
- Creare un progetto.
- Creare un'applicazione. Ad esempio, crea un'applicazione denominata
myappche utilizza l'immagineicr.io/codeengine/cos-event. Questa immagine viene creata dacos-listen.go, disponibile da Esempi per il repository IBM Cloud Code Engine GitHub.
Completa la seguente procedura per creare e aggiornare una sottoscrizione di eventi IBM Cloud Object Storage per un'applicazione dalla console.
-
Dalla pagina ProgettiCode Engine, vai al tuo progetto.
-
Dalla pagina Panoramica, fare clic su Sottoscrizioni eventi.
-
Dalla pagina Sottoscrizioni evento, fare clic su Crea per creare la sottoscrizione.
-
Dalla pagina Crea una sottoscrizione evento, completare la seguente procedura.
- Per Tipo di eventi, seleziona il tile Cloud Object Storage. Fai clic su Next.
- Per Generale, fornisci un nome per la sottoscrizione Object Storage, ad esempio
mycos. Facoltativamente, è possibile fornire attributi evento. Si noti che, se il destinatario dell'evento Object Storage è un'applicazione, gli attributi dell'evento sono disponibili come intestazioni HTTP. Se il destinatario dell'evento è un processo, gli attributi dell'evento sono disponibili come variabili d'ambiente. Fai clic su " Avanti " per continuare. - Per Dettagli evento bucket, seleziona o immetti il nome di un bucket Object Storage esistente. Specifica i tipi di modifiche per il tuo oggetto e facoltativamente fornisci un prefisso o un suffisso del nome oggetto per filtrare gli oggetti nel bucket che deve attivare gli eventi per la sottoscrizione. Fai clic su " Avanti " per continuare.
- Per Event consumer, specifica l'applicazione per ricevere gli eventi. Notare che è possibile scegliere da un elenco di applicazioni e lavori definiti. Per questo esempio, utilizza l'applicazione
myappche fa riferimento all'immagineicr.io/codeengine/cos-listen. Se la tua applicazione non esiste, puoi fornire il nome della tua applicazione e creare la tua applicazione dopo aver creato la sottoscrizione Object Storage. Solo per le applicazioni, è possibile specificare facoltativamente un percorso. Per impostazione predefinita, gli eventi vengono instradati al sito URL dell'applicazione di destinazione. È possibile inviare eventi a una destinazione diversa all'interno dell'app specificando un percorso. Ad esempio, se il tuo percorso di sottoscrizione specifica/events, gli eventi vengono inviati ahttps://<base application URL>/events. Fai clic su " Avanti " per proseguire. - Per Riepilogo, controlla le impostazioni per la tua sottoscrizione evento Object Storage e apporta le modifiche se necessario. Quando sei pronto, fai clic su Crea per creare la sottoscrizione Object Storage.
-
Ora che la tua sottoscrizione Object Storage è stata creata, vai alla pagina Sottoscrizioni evento per visualizzare un elenco di sottoscrizioni definite.
-
Per aggiornare una sottoscrizione, vai alla tua pagina di sottoscrizione Object Storage. Dalla pagina Sottoscrizioni evento, fare clic sul nome della sottoscrizione che si desidera aggiornare.
-
Dalla tua pagina di sottoscrizione Object Storage, modifichi il tipo di modifica dell'oggetto in solo
deletemodifiche dell'oggetto. Dalla scheda Dettagli evento bucket, selezionare solo il tipodeletedi modifica oggetto. Fai clic su Save per salvare le modifiche. -
Poiché l'applicazione
myappfa riferimento all'applicazionecos-listendi esempio, che stampa le informazioni nei file di log, è possibile visualizzare i log. Dopo che un oggetto è stato eliminato dal bucket, puoi vedere un evento per l'eliminazione nei log dell'app. Consultare Visualizzazione dei log dell'applicazione dalla console.
Dopo aver definito una sottoscrizione a un evento IBM Cloud Object Storage che fa riferimento a un bucket specifico, non è possibile aggiornare questa sottoscrizione per utilizzare un bucket diverso. Devi creare una nuova sottoscrizione per fare riferimento al bucket che desideri.
Sottoscrizione agli eventi IBM Cloud Object Storage per un'applicazione con la CLI
Prima di iniziare
-
Crea un'applicazione. Ad esempio, crea un'applicazione denominata
myappche utilizza l'immagineicr.io/codeengine/cos-listen. Questa immagine viene creata dacos-listen.go, disponibile da Esempi per il repository IBM Cloud Code Engine GitHub. Ad esempio,ibmcloud ce application create --name myapp --image icr.io/codeengine/cos-listen
-
Connetti la tua applicazione al produttore di eventi IBM Cloud Object Storage utilizzando il comando
ibmcloud ce subscription cos create. Ad esempio,ibmcloud ce subscription cos create --name mycosevent --destination-type app --destination myapp --bucket mybucket -
Dopo la creazione della sottoscrizione, eseguire il comando
subscription cos getper dettagli sulla sottoscrizione.ibmcloud ce subscription cos get --name mycoseventOutput di esempio
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
Ora, ogni volta che modifichi il tuo bucket, la tua applicazione riceve la notifica.
Vuoi provare un tutorial? Vedere Sottoscrizione agli eventi di Object Storage. Cerchi altri esempi di codice? Consultate la repo Samples for IBM Cloud Code Engine GitHub.
Visualizzazione delle informazioni sull'evento per un'applicazione dalla console
Per visualizzare le informazioni sulle sottoscrizioni degli eventi,
- Dalla pagina ProgettiCode Engine, vai al tuo progetto.
- Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
Se l'applicazione stampa le informazioni nei file di log, come fa l'applicazione cos-listen di esempio, visualizzare i file di log per l'applicazione event consumer. Consultare Visualizzazione dei log dell'applicazione dalla console.
Visualizzazione delle informazioni evento per una applicazione con la CLI
Se la tua applicazione stampa le informazioni nei file di log, come fa l'applicazione cos-listen, utilizza il comando CLI ibmcloud ce app logs per visualizzare le informazioni che sono state inviate.
Prima di poter visualizzare le informazioni evento per la tua applicazione, devi prima creare un evento Object Storage. Apporta una modifica al tuo secchio.
Per visualizzare i log per l'applicazione creata nell'esempio precedente,
ibmcloud ce application logs --application myapp
Output di esempio
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"}
Nota che le informazioni di log per le app durano solo un'ora. Per ulteriori informazioni sulla registrazione, vedi Visualizzazione dei log.
Cerchi altri esempi di codice? Consultate la repo Samples for IBM Cloud Code Engine GitHub.
Informazioni sul corpo e sull'intestazione IBM Cloud Object Storage per gli eventi consegnati alle applicazioni
Tutti gli eventi consegnati alle applicazioni vengono ricevuti come messaggi HTTP. Gli eventi contengono alcune intestazioni di HTTP che aiutano a determinare rapidamente le informazioni chiave sugli eventi senza esaminare il corpo (la logica
aziendale) dell'evento. Per ulteriori informazioni, consultare la specifica CloudEvents.
Intestazioni
La seguente tabella descrive le intestazioni per eventi Object Storage.
| Intestazione | Descrizione |
|---|---|
ce-id |
Un identificativo univoco per l'evento, a meno che un evento non venga riprodotto, nel qual caso, viene assegnato lo stesso ID. |
ce-source |
Un riferimento URI che indica dove questo evento ha avuto origine dal produttore dell'evento. Per gli eventi Object Storage, questo valore è https://cloud.ibm.com/catalog/services/cloud-object-storage/[BUCKET_NAME] dove
[BUCKET_NAME] è il nome del bucket che contiene l'oggetto. |
ce-specversion |
La versione delle specifiche dell' CloudEvents. Questo valore è sempre 1.0. |
ce-subject |
Indica la risorsa a cui è correlato l'evento. Per gli eventi Object Storage, questo è il nome dell'oggetto (o chiave) su cui è stata eseguita l'azione. |
ce-time |
L'ora in cui l'evento è stato generato. |
ce-type |
Il tipo di evento. Per gli eventi Object Storage, questo è com.ibm.cloud.cos.document.[ACTION] dove [ACTION] è write o delete. Quando si verifica una creazione o un aggiornamento
per un evento, viene utilizzata un'azione write per ce-type. |
Esempio
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
Corpo HTTP
Il corpo di HTTP per un evento IBM Cloud Object Storage ha il seguente formato,
{
"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 seguente tabella descrive il campo del corpo.
| Campo corpo | Descrizione |
|---|---|
bucket |
Il nome del bucket associato all'oggetto correlato all'evento. |
endpoint |
Questo valore è sempre una stringa vuota. |
key |
Il nome dell'oggetto contenuto nel bucket. |
operation |
Il tipo di evento o l'operazione, tipo Object:Write o Object:Delete. Gli eventi di creazione o caricamento sono contrassegnati come operazioni Object:Write. |
Notification.bucket_name |
Il nome del bucket associato all'oggetto correlato all'evento. |
Notification.content_type |
Il tipo MIME dell'oggetto, ad esempio text/html. |
Notification.event_type |
Il tipo di evento o l'operazione, tipo Object:Write o Object:Delete. Gli eventi di creazione o caricamento sono contrassegnati come operazioni Object:Write. |
Notification.format |
Questo valore è sempre 2.0. |
Notification.object_etag |
Un valore univoco che cambia ogni volta che l'oggetto viene modificato. Questo valore non viene visualizzato per un'operazione Object:Delete. |
Notification.object_length |
La dimensione dell'oggetto, in byte. |
Notification.request_id |
L'ID univoco correlato alla modifica dell'oggetto. |
Notification.request_time |
L'ora in cui si è verificata la modifica dell'oggetto. |
Sottoscrizione degli eventi IBM Cloud Object Storage per un lavoro
È possibile lavorare con le sottoscrizioni di IBM Cloud Object Storage dalla console o con la CLI, in modo che gli eventi vengano inviati a un lavoro Code Engine.
Quando si crea una sottoscrizione evento per un lavoro, viene creata un'esecuzione lavoro per ogni evento attivato e questa esecuzione lavoro ha le variabili di ambiente correlate al lavoro. Per ulteriori informazioni relative alle variabili di ambiente inviate da IBM Cloud Object Storage, vedi Variabili di ambiente per gli eventi.
Sottoscrizione agli eventi IBM Cloud Object Storage per un lavoro dalla console
È possibile creare e aggiornare le sottoscrizioni agli eventi di IBM Cloud Object Storage per un lavoro dalla console.
Prima di iniziare
- Creare un progetto.
- Creare un lavoro. Ad esempio, crea un lavoro denominato
myjobche utilizza l'immagineicr.io/codeengine/codeengine. Questa immagine viene creata dacodeengine.go, disponibile da Esempi per il repository IBM Cloud Code Engine GitHub.
Completare le seguenti operazioni per creare o aggiornare una sottoscrizione agli eventi IBM Cloud Object Storage per un lavoro dalla console:
-
Dalla pagina ProgettiCode Engine, vai al tuo progetto.
-
Dalla pagina Panoramica, fare clic su Sottoscrizioni eventi.
-
Dalla pagina Sottoscrizioni evento, fare clic su Crea per creare la sottoscrizione.
-
Dalla pagina Creare un abbonamento a un evento, completare i seguenti passaggi:
-
Per Tipo di eventi, seleziona il tile Cloud Object Storage. Fai clic su Next.
-
Per Generale, fornisci un nome per la sottoscrizione Object Storage, ad esempio
mycos-job. Facoltativamente, è possibile fornire attributi evento. Quando il destinatario dell'evento è un processo, gli attributi dell'evento sono disponibili come variabili d'ambiente. Fai clic su " Avanti " per continuare. -
Per i dettagli dell'evento Bucket, selezionare o digitare il nome di un bucket Object Storage esistente e specificare i tipi di modifiche per l'oggetto in cui si desidera attivare gli eventi.
Per Tipo di modifica dell'oggetto, specificare quando ricevere gli eventi per le azioni sull'oggetto Object Storage ; è possibile selezionare uno o entrambi i tipi di modifica dell'oggetto:
- Utilizzare Crea e aggiorna per ricevere un evento ogni volta che viene creato un nuovo oggetto o viene aggiornato un oggetto esistente.
- Utilizzare Delete per ricevere un evento ogni volta che un oggetto esistente viene rimosso dal bucket.
Si può anche fornire facoltativamente un prefisso o un suffisso del nome dell'oggetto per filtrare gli oggetti nel bucket e attivare gli eventi per la sottoscrizione. Specificare i valori Prefisso nome oggetto o Suffisso nome oggetto, per indicare le stringhe che corrispondono all'inizio (prefisso) o alla fine (suffisso) dei nomi degli oggetti per i quali si desidera ricevere gli eventi. Il valore limita gli oggetti del bucket Object Storage che attivano gli eventi ai nomi di file che iniziano o finiscono con il prefisso o il suffisso specificato. Non utilizzare caratteri jolly o espressioni regolari; specificare solo testo semplice per il prefisso e il suffisso (ad esempio, specificare
abc, non*abcper indicare tutti gli oggetti che iniziano conabc). Inoltre, i nomi dei file includono l'estensione del file (ad esempio, se si specificajsoncome suffisso, l'evento verrà gestito per file comeabc.json, ma non perabcjson.txt).Fai clic su " Avanti " per continuare.
-
Per Event consumer, specificare il lavoro per ricevere gli eventi. Notare che è possibile scegliere da un elenco di lavori definiti. Per questo esempio, utilizzare il lavoro
myjobche fa riferimento all'immagineicr.io/codeengine/codeengine. Se il tuo lavoro non esiste, puoi specificarne il nome e crearlo dopo aver creato la sottoscrizione Object Storage. Fai clic su " Avanti " per continuare. -
Per Riepilogo, controlla le impostazioni per la tua sottoscrizione evento Object Storage e apporta le modifiche se necessario. Quando sei pronto, fai clic su Crea per creare la sottoscrizione Object Storage.
-
-
Ora che la tua sottoscrizione Object Storage è stata creata, vai alla pagina Sottoscrizioni evento per visualizzare un elenco di sottoscrizioni definite.
-
Per aggiornare una sottoscrizione, vai alla tua pagina di sottoscrizione Object Storage. Dalla pagina Sottoscrizioni evento, fare clic sul nome della sottoscrizione che si desidera aggiornare.
-
Dalla tua pagina di sottoscrizione Object Storage, modifichi il tipo di modifica dell'oggetto in solo
deletemodifiche dell'oggetto. Nella scheda Dettagli evento bucket, selezionare solo ildeletetipo di modifica oggetto. Fai clic su Save per salvare le modifiche. -
Poiché il job
myjobfa riferimento al jobicr.io/codeengine/codeenginedi esempio, che stampa le informazioni nei file di log, è possibile visualizzare i log. Dopo che un oggetto è stato eliminato dal bucket, puoi visualizzare un evento per l'eliminazione nei log per l'esecuzione del lavoro. Consultare Visualizzazione dei log dei lavori dalla console.
Le esecuzioni di lavori create dalle sottoscrizioni vengono eliminate dopo 10 minuti.
Dopo aver definito una sottoscrizione a un evento IBM Cloud Object Storage che fa riferimento a un bucket specifico, non è possibile aggiornare questa sottoscrizione per utilizzare un bucket diverso. Devi creare una nuova sottoscrizione per fare riferimento al bucket che desideri.
Sottoscrizione di eventi IBM Cloud Object Storage per un lavoro con la CLI
Prima di iniziare
-
Creare un lavoro. Ad esempio, crea un lavoro denominato
myjobche utilizza l'immagineicr.io/codeengine/codeengine. Questa immagine viene creata dacodeengine.go, disponibile da Esempi per il repository IBM Cloud Code Engine GitHub.ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine
-
Connetti il tuo lavoro al produttore di evento IBM Cloud Object Storage utilizzando il comando
ibmcloud ce subscription cos create.ibmcloud ce subscription cos create --name mycosevent --destination-type job --destination myjob --bucket mybucket -
Dopo la creazione della sottoscrizione, eseguire il comando
subscription cos getper dettagli sulla sottoscrizione.ibmcloud ce subscription cos get --name mycoseventOutput di esempio
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
Ora, ogni volta che modifichi il tuo bucket, il tuo lavoro riceve una notifica.
Le esecuzioni di lavori create dalle sottoscrizioni vengono eliminate dopo 10 minuti.
Vuoi provare un tutorial? Vedere Sottoscrizione agli eventi di Object Storage. Cerchi altri esempi di codice? Consultate la repo Samples for IBM Cloud Code Engine GitHub.
Visualizzazione delle informazioni sugli eventi per un lavoro dalla console
Per visualizzare le informazioni sulle sottoscrizioni degli eventi,
- Dalla pagina ProgettiCode Engine, vai al tuo progetto.
- Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
Se il proprio lavoro stampa le informazioni nei file di log, come fa il lavoro codeengine di esempio, visualizzare i file di log per l'applicazione event consumer. Consultare Visualizzazione dei log dei lavori dalla console.
Visualizzazione delle informazioni sull'evento per un lavoro con la CLI
Se il tuo lavoro stampa le informazioni nei file di log, come fa il lavoro codeengine, utilizza il comando CLI ibmcloud ce jobrun logs per visualizzare le informazioni che sono state inviate.
Prima di poter visualizzare le informazioni sull'evento per il tuo lavoro, devi prima creare un evento Object Storage. Apporta una modifica al tuo secchio.
Per trovare il lavoro eseguito per il lavoro nell'esempio precedente,
ibmcloud ce jobrun list
Output di esempio
Listing job runs...
OK
Name Failed Pending Requested Running Succeeded Unknown Age
myjob-pnz6m 0 0 0 0 1 0 39s
Visualizzare i log per l'esecuzione del lavoro specificando il relativo nome.
ibmcloud ce jobrun logs --jobrun myjob-pnz6m
Output di esempio
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
Tenere presente che le informazioni di log per le esecuzioni del lavoro durano solo un'ora. Per ulteriori informazioni sulla registrazione, vedi Visualizzazione dei log.
Cerchi altri esempi di codice? Consultate la repo Samples for IBM Cloud Code Engine GitHub.
Variabili di ambiente per gli eventi distribuiti ai lavori
Tutti gli eventi consegnati a un lavoro vengono ricevuti come variabili di ambiente. Tali variabili di ambiente includono un prefisso CE_ e si basano sulla CloudEvents spec.
Ogni evento contiene alcune variabili di ambiente comuni che vengono visualizzate ogni volta che l'evento viene consegnato a un lavoro. L'insieme effettivo di variabili in ogni evento può includere più opzioni. Per ulteriori informazioni e
per ulteriori opzioni delle variabili di ambiente, consultare gli Attributi CloudEvent.
La seguente tabella descrive le variabili di ambiente specifiche degli eventi IBM Cloud Object Storage.
| Variabile | Descrizione |
|---|---|
CE_DATA |
I dati (corpo) per l'evento. Vedi CE_DATA per Object Storage. |
CE_ID |
Un identificativo univoco per l'evento, a meno che un evento non venga riprodotto, nel qual caso, viene assegnato lo stesso ID. |
CE_SOURCE |
Un riferimento URI che indica dove questo evento ha avuto origine dal produttore dell'evento. Per gli eventi Object Storage, questo valore è https://cloud.ibm.com/catalog/services/cloud-object-storage/[BUCKET_NAME] dove
[BUCKET_NAME] è il nome del bucket che contiene l'oggetto. |
CE_SPECVERSION |
La versione delle specifiche dell' CloudEvents. Questo valore è sempre 1.0. |
CE_TIME |
L'ora in cui l'evento è stato generato. |
CE_TYPE |
Il tipo di evento. Per gli eventi Object Storage, questo è com.ibm.cloud.cos.document.[ACTION] dove [ACTION] è write o delete. |
CE_DATA variabile di ambiente
Nota che il seguente esempio per CE_DATA è formattato per la leggibilità.
{
"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"}
La seguente tabella descrive l'attributo di ambiente CE_DATA.
| Attributo | Descrizione |
|---|---|
bucket |
Il nome del bucket associato all'oggetto correlato all'evento. |
endpont |
Questo valore è sempre una stringa vuota. |
key |
Il nome dell'oggetto contenuto nel bucket. |
operaton |
Il tipo di evento o l'operazione, tipo Object:Write o Object:Delete. Gli eventi di creazione o caricamento sono contrassegnati come operazioni Object:Write. |
Notification.bucket_name |
Il nome del bucket associato all'oggetto correlato all'evento. |
Notification.content_type |
Il tipo MIME dell'oggetto, ad esempio text/rtf. |
Notification.event_type |
Il tipo di evento o l'operazione, tipo Object:Write o Object:Delete. Gli eventi di creazione o caricamento sono contrassegnati come operazioni Object:Write. |
Notification.format |
Questo valore è sempre 2.0. |
Notification.object_etag |
Un valore univoco che cambia ogni volta che l'oggetto viene modificato. Questo valore non viene visualizzato per un'operazione Object:Delete. |
Notification.object_length |
La dimensione dell'oggetto, in byte. |
Notification.request_id |
L'ID univoco correlato alla modifica dell'oggetto. |
Notification.request_time |
L'ora in cui si è verificata la modifica dell'oggetto. |
Output di esempio
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
Definizione di attributi evento aggiuntivi
Quando si crea una sottoscrizione, è possibile definire ulteriori attributi CloudEvent da includere in qualsiasi evento generato. Questi attributi sono simili a qualsiasi altro attributo CloudEvent nella consegna eventi.
Se si sceglie di specificare il nome di un attributo CloudEvent esistente, sovrascrive il valore originale incluso nell'evento.
Per definire gli attributi di aggiunta, utilizzare le opzioni --extension con il comando CLI ibmcloud ce subscription cos create.
Per ulteriori informazioni, vedi Posso utilizzare altre specifiche CloudEvents ?
Eliminazione di una sottoscrizione
Quando non ti serve più l'abbonamento a IBM Cloud Object Storage, puoi cancellarlo.
Eliminazione di un abbonamento dalla console
- Dalla pagina ProgettiCode Engine, vai al tuo progetto.
- Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
- Dall'elenco di sottoscrizioni, eliminare la sottoscrizione che si desidera rimuovere dall'applicazione o dal lavoro.
Se si elimina un'app o un lavoro associato alla sottoscrizione, la sottoscrizione non viene eliminata. Se si ricrea l'applicazione o il lavoro (o un'altra applicazione o lavoro con lo stesso nome), la sottoscrizione si riconnette con l'applicazione o il lavoro.
Eliminazione di una sottoscrizione con la CLI
Puoi eliminare una sottoscrizione IBM Cloud Object Storage eseguendo il comando ibmcloud ce subscription cos delete.
Ad esempio, utilizza il seguente comando per eliminare una sottoscrizione IBM Cloud Object Storage denominata mycosevent,
ibmcloud ce subscription cos delete --name mycosevent
Se si elimina un'app o un lavoro associato alla sottoscrizione, la sottoscrizione non viene eliminata. Invece, passa allo stato pronto di false perché la sottoscrizione dipende dalla disponibilità dell'applicazione o del lavoro.
Se crei di nuovo l'applicazione o il lavoro (o un'altra applicazione o lavoro con lo stesso nome), la tua sottoscrizione si riconnette e lo stato Pronto è true.