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 Lambda is a service for running functions, and when combined with AWS API Gateway, can be used to process your Buildkite webhooks.
There are many ways to integrate webhooks with AWS Lambda. The following repositories demonstrate two ways to process Buildkite webhooks using AWS Lambda:
- Rivet's buildkite-webhook-aws-terraform uses AWS Lambda and AWS API Gateway to publish Buildkite webhook events to an AWS SNS topic.
- Rivet's buildkite-bitbucket-aws-terraform demonstrates using AWS Lambda, AWS API Gateway and AWS SNS to send build statuses to an 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 allows you 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:
Webtask.io webhook example application github.com/buildkite/lifx-buildkite-build-light-webtask