Skip to content

๐Ÿš€ Elasticsearch client for AWS that plays nicely with serverless-offline and signed requests

License

Notifications You must be signed in to change notification settings

goldcaddy77/serverless-elasticsearch-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

11 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

serverless-elasticsearch-client

serverless npm version CircleCI styled with prettier semantic-release

AWS Elasticsearch Client

Wrapper around elasticsearch-js client that plays nicely with AWS and serverless. Features include:

  • Uses http-aws-es to sign your requests so that they're valid in AWS
  • Plays nicely with serverless-offline's IS_OFFLINE environment variable
  • Uses sane default environment variables for AWS config

Table of Contents

Install

npm install --save serverless-elasticsearch-client

Usage

Use this as you would use the standard elasticsearch-js client.

const createEsClient = require('serverless-elasticsearch-client')
const client = createEsClient({ envPrefix: 'AWS_ES' })

API

Shared [options]

The following options are shared between the two methods below.

  • envPrefix {string} if this is set, DDB will look for config in environment variables prefixed by envPrefix.
  • region {string} if not set, DDB will look in ${envPrefix}_REGION. If envPrefix is not set, it looks at AWS_REGION. If still not found, when in serverless-offline mode, it will fall back to localhost
  • endpoint {string} if in serverless-offline mode, this defaults to http://localhost:8000
  • sslEnabled {boolean} defaults to true, if in serverless-offline mode, it is set to false

getClient([options])

Method: dynamo.getClient

Creates an AWS.DynamoDB with provided options.

var dynamo = require('serverless-elasticsearch-client')

const docClient = dynamo.getClient({
  envPrefix: 'AWS_DDB',
  maxRetries: 3
})

getDocumentClient([options])

Method: dynamo.getDocumentClient

Creates an AWS.DynamoDB.DocumentClient with provided options.

var dynamo = require('serverless-elasticsearch-client')

const docClient = dynamo.getDocumentClient({
  convertEmptyValues: true
})

Contribute

PRs accepted. Note that code uses standard styling.

License

MIT ยฉ Dan Caddigan