Utilities to connect with Amazon Elasticsearch Service (using AWS signed request)
npm install aws-es-utils




createESConnectorClass creates a new class that can be used as a drop-in replacement for Elasticsearch default class. For example:javascript
var elasticsearch = require('elasticsearch');
var esHttpConnector = require('elasticsearch/src/lib/connectors/http');
var AWS = require('aws-sdk');
var awsEs = require('aws-es-utils');
var let client = new elasticsearch.Client({
host: 'https://xxxx.ap-southeast-2.es.amazonaws.com',
connectionClass: awsEs.createESConnectorClass({
AWS: AWS,
superClass: esHttpConnector
}),
awsRequestSigning: true
});
`
Extra config to Elasticsearch client constructor
- awsRequestSigning (boolean): enable AWS request signing
- awsRegion (string | optional): AWS region. If this property is missing, the class will try to parse the region from the host name.
- awsCredential (object | optional): optional AWS credentials. If this property is missing, the class will try to use AWS.CredentialProviderChain to retrieve the default credential. This property could be either an AWS.Credentials object or a normal object with the following properties:
- accessKeyId (string): the AWS access key ID
- secretAccessKey (string): the AWS secret access key
- sessionToken (string): the optional AWS session token (the string you received from AWS STS when you obtained temporary security credentials))
- headers` (object): extra headers to send to ElasticSearch # License
This project is licensed under the terms of the Apache license.