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.

  1. Accedi alla pagina " Concedere un'autorizzazione di servizio " (Gestione delle impostazioni) all'indirizzo Dashboard IAM.
  2. Da Servizio origine, selezionare Motore di codice.
  3. Selezionare Risorse basate sugli attributi selezionati e Istanza del servizio di origine. Seleziona quindi un progetto Code Engine.
  4. In Servizio di destinazione, seleziona Cloud Object Storage.
  5. Seleziona Resources based on selected attributes e Service instance. Seleziona quindi la tua istanza IBM Cloud Object Storage.
  6. 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

Completa la seguente procedura per creare e aggiornare una sottoscrizione di eventi IBM Cloud Object Storage per un'applicazione dalla console.

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

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

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

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

    1. Per Tipo di eventi, seleziona il tile Cloud Object Storage. Fai clic su Next.
    2. 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.
    3. 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.
    4. 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 myapp che fa riferimento all'immagine icr.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 a https://<base application URL>/events. Fai clic su " Avanti " per proseguire.
    5. 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.
  5. Ora che la tua sottoscrizione Object Storage è stata creata, vai alla pagina Sottoscrizioni evento per visualizzare un elenco di sottoscrizioni definite.

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

  7. Dalla tua pagina di sottoscrizione Object Storage, modifichi il tipo di modifica dell'oggetto in solo delete modifiche dell'oggetto. Dalla scheda Dettagli evento bucket, selezionare solo il tipo delete di modifica oggetto. Fai clic su Save per salvare le modifiche.

  8. Poiché l'applicazione myapp fa riferimento all'applicazione cos-listen di 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

  1. 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
    
  2. Dopo la creazione della sottoscrizione, eseguire il comando subscription cos get per dettagli sulla sottoscrizione.

    ibmcloud ce subscription cos get --name mycosevent
    

    Output 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,

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.
  2. Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.

Se l'applicazione stampa le informazioni nei file di log, come fa l'applicazione 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.

File di intestazione per gli eventi
Intestazione Descrizione
ce-id Un identificativo univoco per l'evento, a meno che un evento non venga riprodotto, nel qual caso, viene assegnato lo stesso ID.
ce-source Un riferimento URI che indica dove questo evento ha avuto origine dal produttore dell'evento. Per gli eventi 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.

Campi del corpo per IBM Cloud Object Storage
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

Completare le seguenti operazioni per creare o aggiornare una sottoscrizione agli eventi IBM Cloud Object Storage per un lavoro dalla console:

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

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

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

  4. Dalla pagina Creare un abbonamento a un evento, completare i seguenti passaggi:

    1. Per Tipo di eventi, seleziona il tile Cloud Object Storage. Fai clic su Next.

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

    3. 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 *abc per indicare tutti gli oggetti che iniziano con abc ). Inoltre, i nomi dei file includono l'estensione del file (ad esempio, se si specifica json come suffisso, l'evento verrà gestito per file come abc.json, ma non per abcjson.txt).

      Fai clic su " Avanti " per continuare.

    4. 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 myjob che fa riferimento all'immagine icr.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.

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

  5. Ora che la tua sottoscrizione Object Storage è stata creata, vai alla pagina Sottoscrizioni evento per visualizzare un elenco di sottoscrizioni definite.

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

  7. Dalla tua pagina di sottoscrizione Object Storage, modifichi il tipo di modifica dell'oggetto in solo delete modifiche dell'oggetto. Nella scheda Dettagli evento bucket, selezionare solo il delete tipo di modifica oggetto. Fai clic su Save per salvare le modifiche.

  8. Poiché il job myjob fa riferimento al job icr.io/codeengine/codeengine di 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

  1. 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
    
  2. Dopo la creazione della sottoscrizione, eseguire il comando subscription cos get per dettagli sulla sottoscrizione.

    ibmcloud ce subscription cos get --name mycosevent
    

    Output 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,

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.
  2. Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.

Se il proprio lavoro stampa le informazioni nei file di log, come fa il lavoro codeengine di esempio, visualizzare i file di log per 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.

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

Variabili d'ambiente per IBM Cloud Object Storage
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

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.
  2. Dalla pagina Panoramica, fare clic su Sottoscrizioni evento per visualizzare un elenco di richieste definite.
  3. Dall'elenco di sottoscrizioni, eliminare la sottoscrizione che si desidera rimuovere dall'applicazione o dal lavoro.

Se si elimina un'app o un lavoro 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.