使用 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 入门。
如果接收事件的应用程序或作业想要使用专用网络与服务进行通信,并且该服务同时具有 private
和 direct
端点 (例如 IBM Cloud Object Storage),那么必须使用 direct
端点。
将通知管理员角色分配给 Code Engine
必须先将通知管理器角色分配给 Code Engine,然后才能创建 Object Storage 预订。 作为通知管理器,Code Engine 可以查看,修改和删除 Object Storage 存储区的通知。
只有帐户管理员才能分配通知管理器角色。
当您为项目分配通知管理器角色后,您就可以为与项目在同一区域的 Object Storage 实例中的任何区域存储桶创建事件订阅。
- 在IAM仪表板中导航至 “授予服务授权” 页面。
- 从 源服务中,选择 代码引擎。
- 选择 基于所选属性的资源 和 源服务实例。 然后,选择 Code Engine 项目。
- 在 目标服务中,选择 Cloud Object Storage。
- 选择 基于所选属性的资源 和 服务实例。 然后,选择 IBM Cloud Object Storage 实例。
- 分配通知管理器角色,然后单击授权。
您还可以使用 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 事件预订。
准备工作
- 创建项目。
- 创建应用程序。 例如,创建名为
myapp
的应用程序,该应用程序使用icr.io/codeengine/cos-event
映像。 此映像是根据cos-listen.go
构建的,可从 样本 IBM Cloud Code Engine GitHub 存储库获取。
完成以下步骤以从控制台为应用程序创建和更新 IBM Cloud Object Storage 事件预订。
-
从 Code Engine "项目" 页面,转至您的项目。
-
在“概述”页面中,单击 事件预订。
-
在“事件预订”页面中,单击 创建 以创建预订。
-
从“创建事件预订”页面,完成以下步骤。
- 对于 事件类型,选择 Cloud Object Storage 磁贴。 单击下一步。
- 对于 常规,请提供 Object Storage 预订的名称,例如
mycos
。 您可以选择提供事件属性。 请注意,如果 Object Storage 事件使用者是一个应用程序,则事件属性可用作 HTTP 标头。 如果事件消费者是一个工作,则事件属性可用作环境变量。 点击 “下一步” 继续。 - 对于 存储区事件详细信息,选择或输入现有 Object Storage 存储区的名称。 指定对象的更改类型,并 (可选) 提供对象名称前缀或后缀以过滤存储区中用于触发预订事件的对象。 点击 “下一步” 继续。
- 对于 事件使用者,指定用于接收事件的应用程序。 请注意,您可以从已定义的应用程序和作业的列表中进行选择。 对于此示例,请使用引用
icr.io/codeengine/cos-listen
映像的myapp
应用程序。 如果应用程序不存在,那么可以在创建 Object Storage 预订后提供应用程序的名称并 创建应用程序。 (仅限应用程序) 您可以选择指定路径。 默认情况下,事件将发送至目标应用程序的根目录 URL。 您可以通过指定路径将事件发送到应用程序中的其他目标。 例如,如果预订路径指定/events
,那么会将事件发送到https://<base application URL>/events
。 点击 “下一步” 继续。 - 对于 摘要,请查看 Object Storage 事件预订的设置,并在需要时进行更改。 就绪后,单击 创建 以创建 Object Storage 预订。
-
既然已创建 Object Storage 预订,请转至“事件预订”页面以 查看已定义的预订的列表。
-
要更新预订,请浏览至 Object Storage 预订页面。 在“事件预订”页面中,单击要更新的预订的名称。
-
从 Object Storage 预订页面中,让我们将对象更改类型更改为仅
delete
对象更改。 从 存储区事件详细信息 选项卡中,仅选择delete
类型的对象更改。 单击保存以保存更改。 -
由于
myapp
应用程序引用样本cos-listen
应用程序 (将信息打印到日志文件),因此您可以查看日志。 从存储区中删除对象后,您可以在应用程序日志中看到要删除的事件。 请参阅 从控制台查看应用程序日志。
定义引用特定存储区的 IBM Cloud Object Storage 事件预订后,无法将此预订更新为使用其他存储区。 您必须创建新的预订以引用所需的存储区。
使用 CLI 预订应用程序的 IBM Cloud Object Storage 事件
准备工作
-
创建应用程序。 例如,创建名为
myapp
的应用程序,该应用程序使用icr.io/codeengine/cos-listen
映像。 此映像是根据cos-listen.go
构建的,可从 样本 IBM Cloud Code Engine GitHub 存储库获取。 例如ibmcloud ce application create --name myapp --image icr.io/codeengine/cos-listen
-
使用
ibmcloud ce subscription cos create
命令将应用程序连接到 IBM Cloud Object Storage 事件生产者。 例如ibmcloud ce subscription cos create --name mycosevent --destination-type app --destination myapp --bucket mybucket
-
在创建预订之后,运行
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 事件。 要查找更多代码示例吗? 请查看 IBM Cloud Code Engine GitHub 存储库的样本。
从控制台查看应用程序的事件信息
要查看有关事件预订的信息,
- 从 Code Engine "项目" 页面,转至您的项目。
- 从“概述”页面,单击 事件预订 以查看已定义的预订的列表。
如果应用程序像样本 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"}
请注意,应用程序的日志信息仅持续一个小时。 有关日志记录的更多信息,请参阅 查看日志。
要查找更多代码示例吗? 请查看 IBM Cloud Code Engine GitHub 存储库的样本。
IBM Cloud Object Storage 传递到应用程序的事件的头和主体信息
所有发送到应用程序的事件都以 HTTP 消息的形式接收。 事件包含特定的 HTTP 标头,可帮助您快速确定事件的关键信息,而无需查看事件的主体(业务逻辑)。 有关更多信息,请参阅 CloudEvents
规范。
头
下表描述了 Object Storage 事件的头。
头 | 描述 |
---|---|
ce-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] 是 write 或 delete 。 发生事件的创建或更新时,将对 ce-type 使用 write 操作。 |
示例
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 主体
IBM Cloud Object Storage 活动的 HTTP 正文采用以下格式:
{
"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"
}
下表描述了主体字段。
主体字段 | 描述 |
---|---|
bucket |
与事件相关的对象的桶名称。 |
endpoint |
此值始终为空字符串。 |
key |
桶中物体的名称。 |
operation |
事件类型或操作,类型为 Object:Write 或 Object:Delete 。 创建或上载事件标记为 Object:Write 操作。 |
Notification.bucket_name |
与事件相关的对象的桶名称。 |
Notification.content_type |
对象的 MIME 类型,例如 text/html 。 |
Notification.event_type |
事件类型或操作,类型为 Object:Write 或 Object:Delete 。 创建或上载事件标记为 Object:Write 操作。 |
Notification.format |
这个值始终为 2.0 。 |
Notification.object_etag |
每次修改对象时更改的唯一值。 对于 Object:Delete 操作,不会显示此值。 |
Notification.object_length |
对象的大小,以字节为单位。 |
Notification.request_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 事件预订。
准备工作
- 创建项目。
- 创建作业。 例如,创建名为
myjob
的作业,该作业使用icr.io/codeengine/codeengine
映像。 此映像是根据codeengine.go
构建的,可从 样本 IBM Cloud Code Engine GitHub 存储库获取。
请完成以下步骤,以便在控制台为职位创建或更新 IBM Cloud Object Storage 事件订阅:
-
从 Code Engine "项目" 页面,转至您的项目。
-
在“概述”页面中,单击 事件预订。
-
在“事件预订”页面中,单击 创建 以创建预订。
-
在创建活动订阅页面,完成以下步骤:
-
对于 事件类型,选择 Cloud Object Storage 磁贴。 单击下一步。
-
对于 常规,请提供 Object Storage 预订的名称,例如
mycos-job
。 您可以选择提供事件属性。 当事件消费者是一个工作,事件属性可用作环境变量。 点击 “下一步” 继续。 -
要了解 Bucket 事件的详细信息,请选择或输入现有 Object Storage bucket 的名称,并指定要触发事件的对象的更改类型。
对于对象更改类型,请指定何时接收对 Object Storage 对象的操作事件;您可以选择以下两种对象更改类型之一或全部:
- 使用 “创建和更新” 功能,每当有新对象创建或更新时,您都会收到通知。 对于更新后的对象,所选存储桶中的现有对象将被重新上传。
- 当现有对象从您的存储桶中移除时,使用 “删除” 接收事件。
您还可以选择提供对象名称前缀或后缀,以过滤存储桶中的对象,从而触发订阅事件。 指定对象名称前缀或对象名称后缀值,以指示与要接收事件的对象名称的开头(前缀)或结尾(后缀)匹配的字符串。 该值将触发事件的 Object Storage 存储桶中的对象限制为以指定前缀或后缀开头或结尾的文件名。 不要使用通配符或正则表达式;仅使用纯文本指定前缀和后缀(例如,指定
abc
,而不是*abc
,以表示所有以abc
开头的对象)。 此外,文件名中包含文件扩展名(例如,如果您指定json
作为后缀,则系统将处理abc.json
之类的文件,但不会处理abcjson.txt
)。点击 “下一步” 继续。
-
对于 事件使用者,指定用于接收事件的作业。 请注意,您可以从已定义作业的列表中进行选择。 对于此示例,请使用引用
icr.io/codeengine/codeengine
映像的myjob
作业。 如果作业不存在,那么可以在创建 Object Storage 预订后指定作业的名称并 创建作业。 点击 “下一步” 继续。 -
对于 摘要,请查看 Object Storage 事件预订的设置,并在需要时进行更改。 就绪后,单击 创建 以创建 Object Storage 预订。
-
-
既然已创建 Object Storage 预订,请转至“事件预订”页面以 查看已定义的预订的列表。
-
要更新预订,请浏览至 Object Storage 预订页面。 在“事件预订”页面中,单击要更新的预订的名称。
-
从 Object Storage 预订页面中,让我们将对象更改类型更改为仅
delete
对象更改。 从 存储区事件详细信息 选项卡中,仅选择delete
类型的对象更改。 单击保存以保存更改。 -
由于
myjob
作业引用样本icr.io/codeengine/codeengine
作业 (将信息打印到日志文件),因此您可以查看日志。 从存储区中删除对象后,您可以在作业运行的日志中看到要删除的事件。 请参阅 从控制台查看作业日志。
预订创建的作业运行将在 10 分钟后删除。
定义引用特定存储区的 IBM Cloud Object Storage 事件预订后,无法将此预订更新为使用其他存储区。 您必须创建新的预订以引用所需的存储区。
使用 CLI 预订作业的 IBM Cloud Object Storage 事件
准备工作
-
创建作业。 例如,创建名为
myjob
的作业,该作业使用icr.io/codeengine/codeengine
映像。 此映像是根据codeengine.go
构建的,可从 样本 IBM Cloud Code Engine GitHub 存储库获取。ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine
-
使用
ibmcloud ce subscription cos create
命令将作业连接到 IBM Cloud Object Storage 事件生产者。ibmcloud ce subscription cos create --name mycosevent --destination-type job --destination myjob --bucket mybucket
-
在创建预订之后,运行
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 事件。 要查找更多代码示例吗? 请查看 IBM Cloud Code Engine GitHub 存储库的样本。
从控制台查看作业的事件信息
要查看有关事件预订的信息,
- 从 Code Engine "项目" 页面,转至您的项目。
- 从“概述”页面,单击 事件预订 以查看已定义的预订的列表。
如果作业像样本 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
请注意,作业运行的日志信息仅持续一个小时。 有关日志记录的更多信息,请参阅 查看日志。
要查找更多代码示例吗? 请查看 IBM Cloud Code Engine GitHub 存储库的样本。
传递到作业的事件的环境变量
传递到作业的所有事件都将作为环境变量接收。 这些环境变量包含前缀 CE_
,并且基于 CloudEvents
spec。
每个事件都包含一些公共环境变量,每次将事件传递到作业时都会显示这些变量。 每个事件中的实际变量集可以包含更多选项。 有关更多信息和更多环境变量选项,请参阅 CloudEvent
属性。
下表描述了特定于 IBM Cloud Object Storage 事件的环境变量。
变量 | 描述 |
---|---|
CE_DATA |
事件的数据 (主体)。 请参阅 CE_DATA 以了解 Object Storage 事件。 |
CE_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] 是 write 或 delete 。 |
CE_DATA
环境变量
请注意,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
环境属性。
属性 | 描述 |
---|---|
bucket |
与事件相关的对象的桶名称。 |
endpont |
此值始终为空字符串。 |
key |
桶中物体的名称。 |
operaton |
事件类型或操作,类型为 Object:Write 或 Object:Delete 。 创建或上载事件标记为 Object:Write 操作。 |
Notification.bucket_name |
与事件相关的对象的桶名称。 |
Notification.content_type |
对象的 MIME 类型,例如 text/rtf 。 |
Notification.event_type |
事件类型或操作,类型为 Object:Write 或 Object:Delete 。 创建或上载事件标记为 Object:Write 操作。 |
Notification.format |
这个值始终为 2.0 。 |
Notification.object_etag |
每次修改对象时更改的唯一值。 对于 Object:Delete 操作,不会显示此值。 |
Notification.object_length |
对象的大小,以字节为单位。 |
Notification.request_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 时,可以将其删除。
从控制台删除订阅
- 从 Code Engine "项目" 页面,转至您的项目。
- 从“概述”页面,单击 事件预订 以查看已定义的预订的列表。
- 从预订列表中,删除要从应用程序或作业中除去的预订。
如果删除与预订关联的应用程序或作业,那么不会删除该预订。 如果重新创建应用程序或作业 (或者具有相同名称的另一个应用程序或作业),那么您的预订将与该应用程序或作业重新连接。
使用 CLI 删除预订
您可以通过运行 ibmcloud ce subscription cos delete
命令来删除 IBM Cloud Object Storage 预订。
例如,使用以下命令来删除名为 mycosevent
的 IBM Cloud Object Storage 预订。
ibmcloud ce subscription cos delete --name mycosevent
如果删除与预订关联的应用程序或作业,那么不会删除该预订。 相反,它将进入 false
的就绪状态,因为预订取决于应用程序或作业的可用性。 如果重新创建应用程序或作业 (或具有相同名称的其他应用程序或作业),那么您的预订将重新连接,并且“就绪”状态为 true
。