- Use Webhook to subscribe events- Webhook usage process- The first step: Configure Webhook related information in EventMesh and start
- The second step: Add Webhook configuration information
- The third step: Check if the configuration is successful
- The fourth step: Configure the consumer of cloudevent
- The fifth step: Configure Webhook related information in the manufacturer
 
- Manufacturer’s Webhook operation instructions
 
- Webhook usage process
Use Webhook to subscribe events
Webhook usage process
The first step: Configure Webhook related information in EventMesh and start
Configuration:
# Webhook HTTP payload listening port
eventMesh.server.http.port=10105
# Webhook config admin port
eventMesh.server.admin.http.port=10106
# Whether to start the Webhook admin service
eventMesh.webHook.admin.start=true
# Webhook event configuration storage mode. But currently only supports file and nacos
eventMesh.webHook.operationMode=file
# The file path of fileMode. If you write #{eventMeshHome}, in the eventMesh root directory
eventMesh.webHook.fileMode.filePath= #{eventMeshHome}/webhook
# The nacos storage mode. The configuration naming rule is eventMesh.webHook.nacosMode.{nacos native configuration key} For the specific configuration, please see [nacos github api](https://github.com/alibaba/nacos/blob/develop/api/src/main/java /com/alibaba/nacos/api/SystemPropertyKeyConst.java)
## address of nacos
eventMesh.webHook.nacosMode.serverAddr=127.0.0.1:8848
# Webhook CloudEvent sending mode. This property is the same as the eventMesh.storage.plugin.type configuration.
eventMesh.webHook.producer.connector=standalone
The second step: Add Webhook configuration information
Configuration information description:
/**
* The path called by the manufacturer. Manufacturer event call address, [http or https]://[domain or IP]:[port]/webhook/[callbackPath]
* for example: http://127.0.0.1:10105/webhook/test/event , The full url needs to be filled in the manufacturer call input
* callbackPath is the only
*/
private String callbackPath;
/**
* manufacturer name, like github
*/
private String manufacturerName;
/**
* manufacturer domain name, like www.github.com
*/
private String manufacturerDomain;
/**
* Webhook event name, like rep-push
*/
private String manufacturerEventName;
/**
* http header content type
*/
private String contentType = "application/json";
/**
* description of this WebHookConfig
*/
private String description;
/**
* secret key, for authentication
*/
private String secret;
/**
* userName, for HTTP authentication
*/
private String userName;
/**
* password, for HTTP authentication
*/
private String password;
/**
* roll out event name, like topic to mq
*/
private String cloudEventName;
/**
* roll out data format -> CloudEvent serialization mode
* If HTTP protocol is used, the request header contentType needs to be marked
*/
private String dataContentType = "application/json";
/**
* id of cloudEvent, like uuid/manufacturerEventId
*/
private String cloudEventIdGenerateMode;
Add WebHook config
path: /webhook/insertWebHookConfig
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default | 
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null | 
| manufacturerName | manufacturer name | string | Y | null | 
| manufacturerDomain | manufacturer domain name | string | Y | null | 
| manufacturerEventName | manufacturer event name | string | Y | null | 
| contentType | http connettype | string | N | application/json | 
| description | configuration instructions | string | N | null | 
| secret | signature string | string | N | null | 
| userName | username | string | N | null | 
| password | password | string | N | null | 
| cloudEventName | cloudEvent name | string | Y | null | 
| cloudEventIdGenerateMode | cloudEvent event object identification method, uuid or event id | string | N | manufacturerEventId | 
E.g:
{
"callbackPath":"/webhook/github/eventmesh/all",
"manufacturerName":"github",
"manufacturerDomain":"www.github.com",
"manufacturerEventName":"all",
"cloudEventName":"github-eventmesh"
}
Output params: 1 for success, 0 for failure
Query WebHook config by callback path
path: /webhook/queryWebHookConfigById
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default | 
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null | 
| manufacturerName | the caller of this callbackPath belongs to | string | Y | null | 
E.g:
{
"callbackPath":"/webhook/github/eventmesh/all",
"manufacturerName":"github"
}
Output params:
| field | desc | type | necessary | default | 
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null | 
| manufacturerName | manufacturer name | string | Y | null | 
| manufacturerDomain | manufacturer domain name | string | Y | null | 
| manufacturerEventName | manufacturer event name | string | Y | null | 
| contentType | http connettype | string | N | application/json | 
| description | configuration instructions | string | N | null | 
| secret | signature key | string | N | null | 
| userName | user name | string | N | null | 
| password | password | string | N | null | 
| cloudEventName | cloudEvent name | string | Y | null | 
| cloudEventIdGenerateMode | cloudEvent event object identification method, uuid or event id | string | N | manufacturerEventId | 
Query WebHook config by manufacturer
path: /webhook/queryWebHookConfigByManufacturer
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default | 
|---|---|---|---|---|
| manufacturerName | manufacturer name | string | Y | null | 
| pageNum | page number of paging query | string | Y | null | 
| pageSize | page size of each page | string | Y | null | 
E.g:
{
"manufacturerName":"github",
"pageNum":1,
"pageSize":2
}
Output params:
| field | desc | type | necessary | default | 
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null | 
| manufacturerName | manufacturer name | string | Y | null | 
| manufacturerDomain | manufacturer domain name | string | Y | null | 
| manufacturerEventName | manufacturer event name | string | Y | null | 
| contentType | http connettype | string | N | application/json | 
| description | configuration instructions | string | N | null | 
| secret | signature key | string | N | null | 
| userName | user name | string | N | null | 
| password | password | string | N | null | 
| cloudEventName | cloudEvent name | string | Y | null | 
| cloudEventIdGenerateMode | cloudEvent event object identification method, uuid or event id | string | N | manufacturerEventId | 
Update WebHook config
path: /webhook/updateWebHookConfig
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default | 
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null | 
| manufacturerName | manufacturer name | string | Y | null | 
| manufacturerDomain | manufacturer domain name | string | Y | null | 
| manufacturerEventName | manufacturer event name | string | Y | null | 
| contentType | http connettype | string | N | application/json | 
| description | configuration instructions | string | N | null | 
| secret | signature string | string | N | null | 
| userName | username | string | N | null | 
| password | password | string | N | null | 
| cloudEventName | cloudEvent name | string | Y | null | 
| cloudEventIdGenerateMode | cloudEvent event object identification method, uuid or event id | string | N | manufacturerEventId | 
E.g:
{
"callbackPath":"/webhook/github/eventmesh/all",
"manufacturerName":"github",
"manufacturerDomain":"www.github.com",
"manufacturerEventName":"all",
"cloudEventName":"github-eventmesh"
}
Output params: 1 for success, 0 for failure
Delete WebHook config
path: /webhook/deleteWebHookConfig
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default | 
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null | 
| manufacturerName | the caller of this callbackPath belongs to | string | Y | null | 
E.g:
{
"callbackPath":"/webhook/github/eventmesh/all",
"manufacturerName":"github"
}
Output params: 1 for success, 0 for failure
The third step: Check if the configuration is successful
- file storage mode. Please go to the eventMesh.webHook.fileMode.filePath directory to view. The Filename is callbackPath.
- nacos storage mode. Please go to the nacos service configured by eventMesh.webHook.nacosMode.serverAddr to see this.
The fourth step: Configure the consumer of cloudevent
The fifth step: Configure Webhook related information in the manufacturer
For manufacturer’s operation, please refer to Manufacturer’s Webhook operation instructions.
Manufacturer’s Webhook operation instructions
GitHub sign up
The first step: Enter the corresponding project
The second step: click setting

The third step: click Webhooks

The fourth step: Click on Add Webhook

The fifth step: Fill in the Webhook information

Payload URL: EventMesh service address and callbackPath, which must include the protocol header. For example, when the callback address callbackPath is /webhook/github/eventmesh/all, the Payload URL is http://www.example.com:10105/webhook/github/eventmesh/all.
[http or https]://[domain or IP]:[port]/webhook/[callbackPath]
Content type: http header content type
Secret: signature string
 我的书签
 我的书签
                                 添加书签
 添加书签 移除书签
 移除书签