Triggers determine how the app functions pipeline begins execution. The trigger is determined by the
configuration.toml file located in the
/res directory under a section called
[Binding]. Check out the Configuration Section for more information about the toml file.
Message Bus Trigger
A message bus trigger will execute the pipeline every time data is received off of the configured topic.
Type and Topic configuration
Here's an example:
Type="messagebus" SubscribeTopic="events" PublishTopic=""
Type=is set to "messagebus". EdgeX Core Data is publishing data to the
eventstopic. So to receive data from core data, you can set your
"events". You may also designate a
PublishTopic=if you wish to publish data back to the message bus.
edgexcontext.Complete(byte outputData)- Will send data back to back to the message bus with the topic specified in the
Message bus connection configuration
The other piece of configuration required are the connection settings:
[MessageBus] Type = 'zero' #specifies of message bus (i.e zero for ZMQ) [MessageBus.PublishHost] Host = '*' Port = 5564 Protocol = 'tcp' [MessageBus.SubscribeHost] Host = 'localhost' Port = 5563 Protocol = 'tcp'
EdgeX Core Datapublishes data to the
eventstopic using ZMQ on port 5563. The publish host is used if publishing data back to the message bus.
When using ZMQ for the message bus, the Publish Host MUST be different for every topic you wish to publish to since the SDK will bind to the specific port. 5563 for example cannot be used to publish since
EdgeX Core Data has bound to that port. Similarly, you cannot have two separate instances of the app functions SDK running publishing to the same port.
Designating an HTTP trigger will allow the pipeline to be triggered by a RESTful
POST call to
http://[host]:[port]/api/v1/trigger/. The body of the POST must be an EdgeX event.
edgexcontext.Complete(byte outputData) - Will send the specified data as the response to the request that originally triggered the HTTP Request.