serverless-plugin-kong
v1.0.3
Published
Plugin to register lambda functions with Kong
Downloads
44
Maintainers
Keywords
Readme
serverless-plugin-kong
Serverless framework Plugin to register lambda functions with Kong
Installation
Install the plugin from npm
$ npm install --save-dev serverless-plugin-kong
Without npm
Copy the source to the .serverless_plugins directory at the root of your service(serverless project)
Usage
Add the plugin to your serverless.yml
# serverless.yml
plugins:
- serverless-plugin-kong
Add the config to your custom tag of serverless.yml,
# serverless.yml
"custom":
"kong": {
"admin_credentials": {
"file": "~/.kong/credentials.json",
"profile": "qa"
},
"service": {
"name": "example-service",
"plugins": [
{
"name": "cors",
"config": {
"origins": "*",
"methods": "GET, POST",
"headers": "Accept, Authorization, Accept-Version, Content-Length, Content-Type, Date, X-Auth-Token",
"exposed_headers": "X-Auth-Token",
"credentials": true,
"max_age": 3600
}
}
]
}
}
"functions": {
"example-function-1": {
"handler": "functions/example/function1.entry",
"events": [
{
"kong": {
"service": "test-service",
"path": "/news",
"method": "get"
}
}
],
If you are using "lambda-meta" to configure events, you can configure kong as given below
const lm = require('lambda-meta');
const iopipe = require('@iopipe/iopipe')({ token: process.env.IOPIPE_TOKEN });
module.exports = {
name: 'example-service',
description: 'Example service',
timeout: 3,
warmup: true,
responseHeaders: {
'Cache-Control': 'public, max-age=10',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*'
},
kong: {
service: 'example-service',
host: 'exmaple.com',
path: '/users'
method: 'post',
},
inputs: {
apiKey: {
required: true,
type: 'String'
}
},
entry: iopipe((event, context, callback) => lm.processRequest(module.exports, event, context, callback)),
process: async (event, context) => {
const { apiKey } = context.params;
return true;
}
};
~/.kong/credentials.json
{ "default": { "url": "http://localhost:8001", "headers": {} }, "qa": { "url": "http://localhost:8001" } }
Command to register lambda functions
sls kong create-service
sls kong update-service
sls kong create-routes --function-name example-function-1
sls kong update-route --function-name example-function-1
sls kong delete-route -s prod --function-name example-function-1
Contributing
We welcome pull requests! Please fork the repo and submit your PR.