# serverless-plugin-kong

> Plugin to register lambda functions with Kong

Latest version **1.0.3** (published 2018-08-06) · ISC license · 0 weekly downloads

## Install

```sh
npm install serverless-plugin-kong
pnpm add serverless-plugin-kong
yarn add serverless-plugin-kong
bun add serverless-plugin-kong
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2018-08-06 |
| First published | 2018-06-25 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 311.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | webteam@peerstream.com |
| Maintainers | peerstream-webteam |
| Keywords | serverless-plugin-kong |

## Links

- npm: https://www.npmjs.com/package/serverless-plugin-kong
- Repository: https://github.com/peerstream/serverless-plugin-kong
- Homepage: https://github.com/peerstream/serverless-plugin-kong#readme
- Issues: https://github.com/peerstream/serverless-plugin-kong/issues
- npm.io page: https://npm.io/package/serverless-plugin-kong

## Recent versions

- 1.0.3 (latest) — 2018-08-06
- 1.0.2 — 2018-08-03
- 1.0.1 — 2018-08-03
- 1.0.0 — 2018-06-25

## README

# serverless-plugin-kong

[Serverless framework](https://www.serverless.com) Plugin to register lambda functions with Kong

## Installation

Install the plugin from npm

```bash
$ 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`

```yaml
# 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.

---
_Source: https://npm.io/package/serverless-plugin-kong · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
