UNPKG

aws-opensearch-connection

Version:

AWS Opensearch connection for the @opensearch-project/opensearch ES client

56 lines (42 loc) 1.77 kB
# AWS ES Connection This is a form from the acuris-aws-es-connection modified to work with the AWS Opensearch Service AWS ES connection for the new opensearch client (@opensearch-project/opensearch) ## Usage Javascript: ```js const { Client } = require('@opensearch-project/opensearch') const { createAWSConnection, awsGetCredentials } = require('aws-opensearch-connection') const awsCredentials = await awsGetCredentials() const AWSConnection = createAWSConnection(awsCredentials) const client = new Client({ ...AWSConnection, node: 'https://node-name.eu-west-1.es.amazonaws.com' }) // inside async func await client.cat.help() ``` Typescript: ```ts import { createAWSConnection, awsGetCredentials } from 'aws-opensearch-connection' import AWS from 'aws-sdk' import { Client } from '@opensearch-project/opensearch' const awsCredentials = await awsGetCredentials() const AWSConnection = createAWSConnection(awsCredentials) const client = new Client({ ...AWSConnection, node: 'https://node-name.eu-west-1.es.amazonaws.com' }) // inside async func await client.cat.help() ``` ## How does it work? This package creates a Connection class that signs the requests to AWS elasticsearch and a Transport class that checks that the AWS credentials haven't expired before every call, and refreshes them when needed. ## Developer notes ### Running the tests. Make sure that your AWS credentials are available to your env, for example you could set them in your ENV. You need a running AWS ES instance for the tests to run against. Set the endpoint URL as the env `AWS_ES_ENDPOINT`. ``` AWS_ES_ENDPOINT=https://xxxx.es.amazonaws.com npm test ``` ### Tested versions This package has been tested on versions of the official elasticsearch client up to 7.13.0.