Skip to content
Add-on to Elasticsearch.Net & NEST for using AWS's elasticsearch service.
Branch: master
Clone or download
Latest commit 9c7c500 Jul 1, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/Elasticsearch.Net.Aws Release 7.0.0 Jul 1, 2019
.gitattributes Initial implementation Oct 19, 2015
.gitignore Fixed assembly signing May 2, 2017
LICENSE Initial commit Oct 19, 2015
README.md Update README.md Apr 4, 2019

README.md

Elasticsearch Net for Amazon AWS

Add-on to elasticsearch-net / NEST for using AWS's elasticsearch service.

Install Package

On Nuget

# For ElasticSearch.Net >= 5.0.0
Install-Package Elasticsearch.Net.Aws
# or for dotnet core
dotnet add package Elasticsearch.Net.Aws

# For ElasticSearch.Net 2.X
Install-Package bcuff.Elasticsearch.Net.Aws-v2
# or for dotnet core
dotnet add package bcuff.Elasticsearch.Net.Aws-v2

# For ElasticSearch.Net 1.X
Install-Package Elasticsearch.Net.Aws-v1
# or for dotnet core
dotnet add package Elasticsearch.Net.Aws-v1

Setup

Elasticsearch.Net Version >= 2.0.2

Use Package Elasticsearch.Net.Aws

// for NEST

// if using app.config, environment variables, or roles
// This constructor will look up AWS credentials in the
// same way that the AWSSDK does automatically.
var httpConnection = new AwsHttpConnection("us-east-1");

var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
var config = new ConnectionSettings(pool, httpConnection);
var client = new ElasticClient(config);

Elasticsearch.Net Version 1.7.1

Use Package Elasticsearch.Net.Aws-v1

Source for this version is maintained on the version-1 branch

// for NEST
var client = new ElasticClient(settings, connection: new AwsHttpConnection(settings, new AwsSettings
{
	AccessKey = "My AWS access key",
	SecretKey = "My AWS secret key",
	Region = "us-east-1",
}));

The AwsHttpConnection class is an implemenation of IConnection that will sign the HTTP requests according to the Version 4 Signing Process.

Serilog Sink Setup

  const string esUrl = "https://aws-es-thinger.us-west-1.es.amazonaws.com";
  Log.Logger = new LoggerConfiguration()
                .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(esUrl))
                {
                    ModifyConnectionSettings = conn =>
                    {
                        var httpConnection = new AwsHttpConnection("us-east-1");
                        var pool = new SingleNodeConnectionPool(new Uri(esUrl));
                        return new ConnectionConfiguration(pool, httpConnection);
                    }
                })
                .CreateLogger();
You can’t perform that action at this time.