There are a number of third party services you can use with Buildkite webhooks. Some services (such as RequestBin and Zapier) are designed specifically with webhooks in mind, and others (such as AWS Lambda, Google Cloud Functions, IronWorker and Webtask) are general purpose programming platforms which can be triggered with webhook HTTP requests.
AWS SNS with AWS Lambda
There are many ways to integrate webhooks with SNS. The following examples show a variety of ways to use Lambda to process SNS messages:
- AWS's GitHub webhook guide provides an example of publishing webhook events as SNS topics and then processing them using AWS Lambda
- Rivet's buildkite-webhook-aws-terraform uses API Gateway to publish Buildkite webhook events to SNS
- Rivet's buildkite-bitbucket-aws-terraform demonstrates a more complex setup, using SNS and webhooks to send build statuses to Atlassian Bitbucket Server
Google Cloud Functions
Iron.io’s IronWorker is a service for hosted code execution using Docker containers. You can follow their webhook worker documentation and sample code for an example of how to create an endpoint to use with Buildkite webhooks.
Zapier is a system for connecting APIs together, and has built in support for hundreds of services. For example, you could use Zapier to send an email when a build has finished, save a build artifact into a Dropbox folder, or post to a Slack room substituting values such as the build URL and number into the message body.
To use Buildkite webhooks with Zapier create a new Zap and select Webhook.
Webtask makes it easy to write Node.js powered backend code without having to run a server, and it supports cron (scheduled runs) and secure token storage (for things like API keys). You can use our LIFX webtask example to get started with processing webhooks using Webtask: