You can configure the webhook sink to perform an HTTP action per message (default) or
code created that controls the frequency (for instance, every N messages). When developing
webhook sinks, it is recommended to check your webhook before pointing at your true
destination.
Go to your cluster in Cloudera Manager.
Click on SQL Stream Builder from the list of
Services.
Click on SQLStreamBuilder Console.
The Streaming SQL Console opens up in a new window.
Select Console from the main menu.
Select the Virtual Tables tab.
Select the Virtual Table Sink sub-tab.
Select Add Sink > Webhook.
The Webhook Sink window appears.
Provide a name to the Virtual Table.
Enter an HTTP EndPoint. The endpoint must start with http://
or https://.
Add a Description about the webhook sink.
Select POST or PUT in the HTTP Method select box.
Choose to Disable SSL Validation, if needed.
Enable Request Template, if needed.
If you selected Yes, then the template defined in the Request Template
tab is used for output.
This is useful if the service you are posting requires a particular
data output format. The data format must be valid JSON, and use
"${columnname}" to represent fields. For example, a
template for use with Pagerduty looks like
this:
{
"incident":{
"type":"incident",
"title":"${icao} is too high!",
"body":{
"type":"incident_body",
"details":"Airplane with id ${icao} has reached an altitude of ${altitude} meters."
}
}
}
In the Code editor, you can specify a code block that controls how the webhook
outputs the data.
For a webhook that is called for each message the following code would be
used:
// Boolean function that takes entire row from query as Json Object
function onCondition(rowAsJson)
{return true; // return false here for no-op, or plug in custom
logic}
onCondition($p0)
Add HTTP headers via the HTTP Headers tab, if needed.
Headers are name:value header elements. For instance,
Content-Type:application/json, etc.
Click Save Changes.
The Webhook Virtual Table Sink is ready for queries to be
run. You can add the created sink on the Compose tab by selecting its name from the list
of sinks.