Updated on 2024-09-06 GMT+08:00

Events

Events are data that complies with specific specifications. Events that event sources publish to EG must comply with the CloudEvents specification.

EG supports the following events:

  • Huawei Cloud service: events produced by Huawei Cloud service event sources
  • Custom: events produced by custom event sources connected to EG with SDKs

Example Event

The following is an example of an event published to EG:

{
    "events":[{
	"id": "4b26115b-778e-11ec-833e-cf74******",
        "specversion": "1.0",
	"source": "HC.OBS",
	"type": "object:put",
	"datacontenttype": "application/json",
	"subject": "xxx.jpg",
	"time": "2022-01-17T12:07:48.955Z",
	"data": {
		"name": "test01",
		"state": "enable"
	}
    }]
}

Table 1 describes the parameters in this example.

Table 1 Event parameters

Parameter

Type

Required

Example Value

Description

id

String

Yes

4b26115b-778e-*******-833e-cf74af

Event ID, which identifies an event

specversion

String

Yes

1.0

Version of the CloudEvents specification

source

String

Yes

HC.OBS

Event source that produces the event

type

String

Yes

object:put

Event type related to the event source

datacontenttype

String

No

application/json

Content format of the data parameter

Only application/json is supported.

subject

String

No

xxx.jpg

Event subject

time

Timestamp

No

2022-01-17T12:07:48.955Z

Time when the event was produced

data

Struct

No

{
    "name": "test01",
    "state": "enable"
}

Content of the event in JSON format

Sending Events in Batches

The following is an example of the request body for sending events in batches:

{
    "events":[{
	"id": "eg-test-001",
    "specversion": "1.0",
	"source": "HC.OBS",
	"type": "object:put",
	"datacontenttype": "application/json",
	"subject": "xxx.jpg",
	"time": "2022-01-17T12:07:48.955Z",
	"data": {
		"name": "test01",
		"state": "enable"
	}
    },
	{
	"id": "eg-test-002",
	"specversion": "1.0",
	"source": "HC.OBS",
	"type": "object:put",
	"datacontenttype": "application/json",
	"subject": "xxx.jpg",
	"time": "2022-01-17T12:07:48.955Z",
	"data": {
		"name": "test01",
		"state": "enable"
	}
    },
	{
	"id": "eg-test-003",
	"specversion": "1.0",
	"source": "HC.OBS",
	"type": "object:put",
	"datacontenttype": "application/json",
	"subject": "xxx.jpg",
	"time": "2022-01-17T12:07:48.955Z",
	"data": {
		"name": "test01",
		"state": "enable"
	}
    },...]
}
  • Max. size per event: 64 KB
  • Max. size of all events per request: 256 KB
  • Max. events per request: 20

Response body returned when all events are successfully sent:

{"failed_count":0,"events":[{"error_code":null,"error_msg":null,"event_id":"eg-test-003"},{"error_code":null,"error_msg":null,"event_id":"eg-test-003"},{"error_code":null,"error_msg":null,"event_id":"eg-test-002"}]}

Status code: 200

Response body returned when the number of events per request exceeds the upper limit:

{"failed_count":1,"events":[{"error_code":"00533013","error_msg":"Too many events for a request.","event_id":"eg-test-003"},{"error_code":null,"error_msg":null,"event_id":"eg-test-003"},{"error_code":null,"error_msg":null,"event_id":"eg-test-002"}]} 

Status code: 400

Response body returned when the size of an event exceeds the upper limit:

{"failed_count":3,"events":[{"error_code":00533012,"error_msg":An event is too large."event_id":"eg-test-003"},{"error_code":00533012,"error_msg":the number of events exceeds the limit,"event_id":"eg-test-003"},{"error_code":00533012,"error_msg":the number of events exceeds the limit,"event_id":"eg-test-002"}]}  

Status code: 400

Response body returned when the total size of all events per request exceeds the upper limit:

{"error_code":"00533007","error_msg":"The total size of a request's all events is too large.","error_detail":"The total size of a request's all events is too large."}
{"error_code":"00533012","error_msg":"An event is too large.","error_detail":"An event is too large."}
{"error_code":"00533013","error_msg":"Too many events for a request.","error_detail":"Too many events for a request."} 

Status code: 400

If the status code is 400:

  • The total size of all events per request exceeds the upper limit. (Error code: EG.00533007; error message: The total size of a request's all events is too large)
  • The number of events per request exceeds the upper limit. (Error code: EG.00533013; error message: Too many events for a request)