使用 IBM Cloud Object Storage 事件生產者

IBM Cloud Object Storage 訂閱監聽 Object Storage 桶的變更。 當您建立儲存區的訂閱時,您的應用程式或工作會收到該儲存區每一個成功變更的個別事件。 您可以訂閱不同的事件,例如 write 事件、delete 事件或 all 事件。 每個專案最多可以建立 100 個 Object Storage 訂閱。

設定 IBM Cloud Object Storage 事件生產者

若要開始使用,您必須 建立 IBM Cloud Object Storage 服務實例,並在 Code Engine的其中一個受支援地區中 建立地區儲存區

您的 Object Storage 儲存區必須是與 Code Engine 專案位於相同地區的區域儲存區。 不支援跨地區和單一站台儲存區。 如需設定 IBM Cloud Object Storage 事件生產者的相關資訊,請參閱 開始使用 Object Storage

如果您接收事件的應用程式或工作希望透過使用私有網路與服務交談,而該服務有 privatedirect 兩個端點 (例如 IBM Cloud Object Storage ),則必須使用 direct 端點。

將通知管理員角色指派給 Code Engine

在建立 Object Storage 訂閱之前,您必須先將「通知管理員」角色指派給 Code Engine。 作為通知管理員,Code Engine 可以檢視、修改和刪除 Object Storage 桶的通知。

只有帳戶管理者才能指派通知管理員角色。

當您將通知管理員角色指定給專案時,您就可以為 Object Storage 範例中與專案位於相同區域的任何區域桶建立事件訂閱。

  1. 導覽到 IAM 面板中的授予服務授權頁面。
  2. 來源服務中,選取 程式碼引擎
  3. 選取 根據所選取屬性的資源來源服務實例。 然後,選取 Code Engine 專案。
  4. 目標服務中,選取 Cloud Object Storage
  5. 選取 基於所選取屬性的資源服務實例。 然後,選取 IBM Cloud Object Storage 實例。
  6. 指派通知管理員角色,然後按一下授權

您也可以使用 ibmcloud iam authorization-policy-create 指令,將通知管理員角色指派給專案。

訂閱應用程式的 IBM Cloud Object Storage 事件

您可以從主控台或 CLI 處理 IBM Cloud Object Storage 訂閱,讓事件傳送至 Code Engine 應用程式。

預設情況下,事件會路由到目的地應用程式的根 URL。 您可以使用 --path 選項,將事件傳送至應用程式內的不同目的地。 例如,如果您的訂閱指定 --path /event,則事件會傳送至 https://<base application URL>/events

事件會以 HTTP POST 請求的方式傳送給應用程式。 如需詳細資訊,請參閱 HTTP 事件的標頭和正文資訊

從主控台訂閱應用程式的 IBM Cloud Object Storage 事件

您可以從主控台為應用程式建立和更新 IBM Cloud Object Storage 事件訂閱。

開始之前

請完成下列步驟,從主控台建立並更新應用程式的 IBM Cloud Object Storage 事件訂閱。

  1. Code Engine 專案頁面,移至您的專案。

  2. 從「概觀」頁面中,按一下 事件訂閱

  3. 從「事件訂閱」頁面中,按一下 建立 以建立訂閱。

  4. 從「建立事件訂閱」頁面中,完成下列步驟。

    1. 針對 事件類型,選取 Cloud Object Storage 磚。 按下一步
    2. 對於 一般,請提供 Object Storage 訂閱的名稱,例如 mycos。 您可以選擇性地提供事件屬性。 請注意,如果 Object Storage 事件消費者是應用程式,則事件屬性可作為 HTTP 標頭。 如果事件消費者是工作,則事件屬性可作為環境變數使用。 按一下下一步繼續。
    3. 儲存區事件詳細資料中,選取或鍵入現有 Object Storage 儲存區的名稱。 指定物件的變更類型,並選擇性地提供物件名稱字首或字尾,以過濾儲存區中觸發訂閱事件的物件。 按一下下一步繼續。
    4. 對於 事件消費者,指定要接收事件的應用程式。 請注意,您可以從已定義的應用程式及工作清單中選擇。 在此範例中,請使用參照 icr.io/codeengine/cos-listen 影像的 myapp 應用程式。 如果您的應用程式不存在,則可以在建立 Object Storage 訂閱之後,提供應用程式的名稱並 建立應用程式。 僅限應用程式,您可以選擇性地指定路徑。 預設情況下,事件會路由到目的地應用程式的根 URL。 您可以透過指定路徑,將事件傳送至應用程式內的不同目的地。 例如,如果訂閱路徑指定 /events,則事件會傳送至 https://<base application URL>/events。 按一下下一步繼續。
    5. 對於 摘要,請檢閱 Object Storage 事件訂閱的設定,並在必要時進行變更。 備妥時,按一下 建立 以建立 Object Storage 訂閱。
  5. 既然已建立您的 Object Storage 訂閱,請移至「事件訂閱」頁面,以 檢視已定義的訂閱清單

  6. 若要更新訂閱,請導覽至 Object Storage 訂閱頁面。 從「事件訂閱」頁面中,按一下您要更新的訂閱名稱。

  7. 從 Object Storage 訂閱頁面中,讓我們只將物件變更類型變更為 delete 物件變更。 從 儲存區事件詳細資料 標籤中,僅選取 delete 類型的物件變更。 按一下儲存,以儲存您的變更。

  8. 因為 myapp 應用程式會參照範例 cos-listen 應用程式 (將資訊列印至日誌檔),所以您可以檢視日誌。 從儲存區刪除物件之後,您可以在應用程式日誌中看到刪除事件。 請參閱 從主控台檢視應用程式日誌

在您定義 IBM Cloud Object Storage 事件訂閱以引用特定水桶後,就無法更新此訂閱以使用不同的水桶。 您必須建立新的訂閱,以參照您想要的儲存區。

使用 CLI 訂閱應用程式的 IBM Cloud Object Storage 事件

開始之前

  1. 使用 ibmcloud ce subscription cos create 指令,將應用程式連接至 IBM Cloud Object Storage 事件生產者。 例如,

    ibmcloud ce subscription cos create --name mycosevent --destination-type app --destination myapp --bucket mybucket
    
  2. 在訂閱建立之後,請執行 subscription cos get 指令,以取得訂閱的詳細資料。

    ibmcloud ce subscription cos get --name mycosevent
    

    輸出範例

    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
    

現在,每次您變更儲存區時,您的應用程式都會收到通知。

想要嘗試指導教學嗎? 請參閱 訂閱 Object Storage 事件。 尋找更多程式碼範例? 查看 Samples for IBM Cloud Code Engine GitHub repo

從主控台檢視應用程式的事件資訊

若要檢視事件訂閱的相關資訊,請執行下列動作:

  1. Code Engine 專案頁面,移至您的專案。
  2. 從「概觀」頁面中,按一下 事件訂閱 以檢視已定義訂閱的清單。

如果您的應用程式像範例 cos-listen 應用程式一樣將資訊列印至日誌檔,則請檢視事件消費者應用程式的日誌檔。 請參閱 從主控台檢視應用程式日誌

使用 CLI 檢視應用程式的事件資訊

如果您的應用程式像 cos-listen 應用程式一樣將資訊列印至日誌檔,則請使用 ibmcloud ce app logs CLI 指令來檢視已傳送的資訊。

您必須先建立 Object Storage 事件,然後才能檢視應用程式的事件資訊。 更改您的水桶。

若要檢視您在前一個範例中建立之應用程式的日誌,

ibmcloud ce application logs --application myapp

輸出範例

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

請注意,應用程式的日誌資訊只會持續一小時。 如需記載的相關資訊,請參閱 檢視日誌

尋找更多程式碼範例? 查看 Samples for IBM Cloud Code Engine GitHub repo

IBM Cloud Object Storage 標頭及遞送至應用程式之事件的內文資訊

所有傳送至應用程式的事件都是以 HTTP 訊息的方式接收。 事件包含某些 HTTP 標頭,可協助您快速判斷事件的關鍵資訊,而無需查看事件的正文(業務邏輯)。 如需相關資訊,請參閱 CloudEvents 規格

標頭

下表說明 Object Storage 事件的標頭。

事件的頭文件
標頭 說明
ce-id 事件的唯一 ID,除非重播事件,在此情況下,會指派相同的 ID 給事件。
ce-source 指出此事件源自事件生產者內的 URI 參照。 對於 Object Storage 事件,此值為 https://cloud.ibm.com/catalog/services/cloud-object-storage/[BUCKET_NAME],其中 [BUCKET_NAME] 是包含物件的儲存區名稱。
ce-specversion CloudEvents 規格的版本。 此值永遠是 1.0
ce-subject 指出與事件相關的資源。 對於 Object Storage 事件,這是所處理物件 (或索引鍵) 的名稱。
ce-time 事件產生的時間。
ce-type 事件的類型。 對於 Object Storage 事件,這是 com.ibm.cloud.cos.document.[ACTION],其中 [ACTION]writedelete。 發生事件的建立或更新時,write 動作會用於 ce-type

範例

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

HTTP 主體

HTTP IBM Cloud Object Storage 事件的正文格式如下、

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

下表說明內文欄位。

IBM Cloud Object Storage的正文字段
內文欄位 說明
bucket 與事件相關的物件的水桶名稱。
endpoint 此值一律是空字串。
key 水桶中物件的名稱。
operation 事件類型或作業,類型為 Object:WriteObject:Delete。 建立或上傳事件會標記為 Object:Write 作業。
Notification.bucket_name 與事件相關的物件的水桶名稱。
Notification.content_type 物件的 MIME 類型,例如 text/html
Notification.event_type 事件類型或作業,類型為 Object:WriteObject:Delete。 建立或上傳事件會標記為 Object:Write 作業。
Notification.format 此值永遠是 2.0
Notification.object_etag 每次修改物件時都會變更的唯一值。 Object:Delete 作業不會顯示此值。
Notification.object_length 物件的大小,以位元組為單位。
Notification.request_id 與物件變更相關的唯一 ID。
Notification.request_time 發生物件變更的時間。

訂閱工作的 IBM Cloud Object Storage 事件

您可以從主控台或 CLI 處理 IBM Cloud Object Storage 訂閱,讓事件傳送至 Code Engine 工作。

當您建立工作的事件訂閱時,會針對所觸發的每一個事件建立工作執行,且此工作執行具有與工作相關的環境變數。 如需 IBM Cloud Object Storage所傳送環境變數的相關資訊,請參閱 事件的環境變數

從主控台訂閱工作的 IBM Cloud Object Storage 事件

您可以從主控台為工作建立和更新 IBM Cloud Object Storage 事件訂閱。

開始之前

完成下列步驟,從主控台建立或更新工作的 IBM Cloud Object Storage 事件訂閱:

  1. Code Engine 專案頁面,移至您的專案。

  2. 從「概觀」頁面中,按一下 事件訂閱

  3. 從「事件訂閱」頁面中,按一下 建立 以建立訂閱。

  4. 從「建立事件訂閱」頁面,完成下列步驟:

    1. 針對 事件類型,選取 Cloud Object Storage 磚。 按下一步

    2. 對於 一般,請提供 Object Storage 訂閱的名稱,例如 mycos-job。 您可以選擇性地提供事件屬性。 當事件消費者是工作時,事件屬性可作為環境變數使用。 按一下下一步繼續。

    3. 針對水桶事件詳細資訊,請選擇或輸入現有 Object Storage 水桶的名稱,並指定您要觸發事件的物件變更類型。

      對於物件變更類型,指定何時接收對 Object Storage 物件執行操作的事件;您可以選擇任意一種或兩種類型的物件變更:

      • 每當建立新物件或更新現有物件時,使用建立更新可接收事件。
      • 每當一個現有物件從您的水桶中移除時,使用 Delete 來接收事件。

      您也可以選擇提供物件名稱前綴或後綴,以過濾儲存桶中的物件,從而觸發訂閱的事件。 指定物件名稱前綴物件名稱後綴值,表示符合要接收事件的物件名稱開頭 (前綴) 或結束 (後綴) 的字串。 該值會限制 Object Storage 桶中觸發事件的物件為以指定前綴或後綴開頭或結束的檔案名稱。 請勿使用通配符或正則表 達式;請僅指定純文字為前綴和後綴 (例如,指定 abc, 而非 *abc 表示所有以 abc 開頭的物件)。 此外,檔案名稱包含檔案副檔名 (例如,若指定 json 為後綴,則會處理 abc.json 等檔案的事件,但不會處理 abcjson.txt)。

      一下下一步繼續。

    4. 對於 事件消費者,指定接收事件的工作。 請注意,您可以從已定義工作的清單中選擇。 在此範例中,請使用參照 icr.io/codeengine/codeengine 映像檔的 myjob 工作。 如果您的工作不存在,則可以在建立 Object Storage 訂閱之後,指定工作的名稱並 建立工作。 按一下下一步繼續。

    5. 對於 摘要,請檢閱 Object Storage 事件訂閱的設定,並在必要時進行變更。 備妥時,按一下 建立 以建立 Object Storage 訂閱。

  5. 既然已建立您的 Object Storage 訂閱,請移至「事件訂閱」頁面,以 檢視已定義的訂閱清單

  6. 若要更新訂閱,請導覽至 Object Storage 訂閱頁面。 從「事件訂閱」頁面中,按一下您要更新的訂閱名稱。

  7. 從 Object Storage 訂閱頁面中,讓我們只將物件變更類型變更為 delete 物件變更。 從 儲存區事件詳細資料 標籤中,只選取 delete 類型的物件變更。 按一下儲存,以儲存您的變更。

  8. 因為 myjob 工作參照範例 icr.io/codeengine/codeengine 工作 (將資訊列印至日誌檔),您可以檢視日誌。 從儲存區刪除物件之後,您可以在工作執行的日誌中看到刪除事件。 請參閱 從主控台檢視工作日誌

訂閱所建立的工作執行會在 10 分鐘之後刪除。

在您定義 IBM Cloud Object Storage 事件訂閱以引用特定水桶後,就無法更新此訂閱以使用不同的水桶。 您必須建立新的訂閱,以參照您想要的儲存區。

使用 CLI 訂閱工作的 IBM Cloud Object Storage 事件

開始之前

  1. 使用 ibmcloud ce subscription cos create 指令,將工作連接至 IBM Cloud Object Storage 事件生產者。

    ibmcloud ce subscription cos create --name mycosevent --destination-type job --destination myjob --bucket mybucket
    
  2. 在訂閱建立之後,請執行 subscription cos get 指令,以取得訂閱的詳細資料。

    ibmcloud ce subscription cos get --name mycosevent
    

    輸出範例

    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
    

現在,每次您變更儲存區時,您的工作都會收到通知。

訂閱所建立的工作執行會在 10 分鐘之後刪除。

想要嘗試指導教學嗎? 請參閱 訂閱 Object Storage 事件。 尋找更多程式碼範例? 查看 Samples for IBM Cloud Code Engine GitHub repo

從主控台檢視工作的事件資訊

若要檢視事件訂閱的相關資訊,請執行下列動作:

  1. Code Engine 專案頁面,移至您的專案。
  2. 從「概觀」頁面中,按一下 事件訂閱 以檢視已定義訂閱的清單。

如果您的工作會像範例 codeengine 工作一樣將資訊列印至日誌檔,則請檢視事件消費者應用程式的日誌檔。 請參閱 從主控台檢視工作日誌

使用 CLI 檢視工作的事件資訊

如果您的工作會像 codeengine 工作一樣將資訊列印至日誌檔,則請使用 ibmcloud ce jobrun logs CLI 指令來檢視已傳送的資訊。

您必須先建立 Object Storage 事件,然後才能檢視工作的事件資訊。 更改您的水桶。

若要在前一個範例中尋找工作的工作執行,

ibmcloud ce jobrun list

輸出範例

Listing job runs...
OK

Name         Failed  Pending  Requested  Running  Succeeded  Unknown  Age
myjob-pnz6m  0       0        0          0        1          0        39s

透過指定工作執行名稱,檢視工作執行的日誌。

ibmcloud ce jobrun logs --jobrun myjob-pnz6m

輸出範例

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

請注意,工作執行的日誌資訊只會持續一小時。 如需記載的相關資訊,請參閱 檢視日誌

尋找更多程式碼範例? 查看 Samples for IBM Cloud Code Engine GitHub repo

遞送至工作之事件的環境變數

遞送至工作的所有事件都會作為環境變數接收。 這些環境變數包含 CE_ 字首,並以 CloudEvents spec為基礎。

每一個事件都包含一些一般環境變數,每次將事件遞送至工作時都會出現這些變數。 每一個事件中的實際變數集可以包括更多選項。 如需相關資訊及其他環境變數選項,請參閱 CloudEvent 屬性

下表說明特定於 IBM Cloud Object Storage 事件的環境變數。

事件的環境變數
變數 說明
CE_DATA 事件的資料 (內文)。 請參閱 CE_DATA for Object Storage 事件
CE_ID 事件的唯一 ID,除非重播事件,在此情況下,會指派相同的 ID 給事件。
CE_SOURCE 指出此事件源自事件生產者內的 URI 參照。 對於 Object Storage 事件,此值為 https://cloud.ibm.com/catalog/services/cloud-object-storage/[BUCKET_NAME],其中 [BUCKET_NAME] 是包含物件的儲存區名稱。
CE_SPECVERSION CloudEvents 規格的版本。 此值永遠是 1.0
CE_TIME 事件產生的時間。
CE_TYPE 事件的類型。 對於 Object Storage 事件,這是 com.ibm.cloud.cos.document.[ACTION],其中 [ACTION]writedelete

CE_DATA 環境變數 (environment variable)

請注意,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_DATA 環境屬性。

IBM Cloud Object Storage的環境變數
屬性 說明
bucket 與事件相關的物件的水桶名稱。
endpont 此值一律是空字串。
key 水桶中物件的名稱。
operaton 事件類型或作業,類型為 Object:WriteObject:Delete。 建立或上傳事件會標記為 Object:Write 作業。
Notification.bucket_name 與事件相關的物件的水桶名稱。
Notification.content_type 物件的 MIME 類型,例如 text/rtf
Notification.event_type 事件類型或作業,類型為 Object:WriteObject:Delete。 建立或上傳事件會標記為 Object:Write 作業。
Notification.format 此值永遠是 2.0
Notification.object_etag 每次修改物件時都會變更的唯一值。 Object:Delete 作業不會顯示此值。
Notification.object_length 物件的大小,以位元組為單位。
Notification.request_id 與物件變更相關的唯一 ID。
Notification.request_time 發生物件變更的時間。

輸出範例

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

定義其他事件屬性

建立訂閱時,您可以定義要併入所產生任何事件中的其他 CloudEvent 屬性。 這些屬性似乎類似於事件遞送中的任何其他 CloudEvent 屬性。 如果您選擇指定現有 CloudEvent 屬性的名稱,則它會置換事件中包含的原始值。

若要定義其他屬性,請搭配使用 --extension 選項與 ibmcloud ce subscription cos create CLI 指令。

如需相關資訊,請參閱 我可以使用其他 CloudEvents 規格嗎?

刪除訂閱

當您不再需要 IBM Cloud Object Storage 訂閱時,您可以刪除它。

從主控台刪除訂閱

  1. Code Engine 專案頁面,移至您的專案。
  2. 從「概觀」頁面中,按一下 事件訂閱 以檢視已定義訂閱的清單。
  3. 從訂閱清單中,刪除您要從應用程式或工作中移除的訂閱。

如果您刪除與訂閱相關聯的應用程式或工作,則不會刪除訂閱。 如果您重建應用程式或工作 (或具有相同名稱的另一個應用程式或工作),則您的訂閱會與應用程式或工作重新連接。

使用 CLI 刪除訂閱

您可以執行 ibmcloud ce subscription cos delete 指令來刪除 IBM Cloud Object Storage 訂閱。

例如,使用下列指令來刪除稱為 mycosevent 的 IBM Cloud Object Storage 訂閱,

ibmcloud ce subscription cos delete --name mycosevent

如果您刪除與訂閱相關聯的應用程式或工作,則不會刪除訂閱。 相反地,它會移至 false 的備妥狀態,因為訂閱取決於應用程式或工作的可用性。 如果您重建應用程式或工作 (或另一個同名應用程式或工作),則您的訂閱會重新連接,且「備妥」狀態為 true