@@ -21,38 +21,77 @@ npm install --save aws-elasticsearch-connector @elastic/elasticsearch aws-sdk
21
21
### Using global configuration
22
22
23
23
``` javascript
24
- const { Client } = require (' @elastic/elasticsearch' )
25
- const AWS = require (' aws-sdk' )
26
- const createAwsElasticsearchConnector = require (' aws-elasticsearch-connector' )
24
+ const { Client } = require (" @elastic/elasticsearch" );
25
+ const AWS = require (" aws-sdk" );
26
+ const createAwsElasticsearchConnector = require (" aws-elasticsearch-connector" );
27
27
28
28
// (Optional) load profile credentials from file
29
29
AWS .config .update ({
30
- profile: ' my-profile'
31
- })
30
+ profile: " my-profile" ,
31
+ });
32
32
33
33
const client = new Client ({
34
34
... createAwsElasticsearchConnector (AWS .config ),
35
- node: ' https://my-elasticsearch-cluster.us-east-1.es.amazonaws.com'
36
- })
35
+ node: " https://my-elasticsearch-cluster.us-east-1.es.amazonaws.com" ,
36
+ });
37
37
```
38
38
39
39
### Using specific configuration
40
40
41
41
``` javascript
42
- const { Client } = require (' @elastic/elasticsearch' )
43
- const AWS = require (' aws-sdk' )
44
- const createAwsElasticsearchConnector = require (' aws-elasticsearch-connector' )
42
+ const { Client } = require (" @elastic/elasticsearch" );
43
+ const AWS = require (" aws-sdk" );
44
+ const createAwsElasticsearchConnector = require (" aws-elasticsearch-connector" );
45
45
46
46
const awsConfig = new AWS.Config ({
47
47
// Your credentials and settings here, see
48
48
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html#constructor-property
49
- })
49
+ });
50
50
51
51
const client = new Client ({
52
52
... createAwsElasticsearchConnector (awsConfig),
53
- node: ' https://my-elasticsearch-cluster.us-east-1.es.amazonaws.com'
54
- })
55
- ````
53
+ node: " https://my-elasticsearch-cluster.us-east-1.es.amazonaws.com" ,
54
+ });
55
+ ```
56
+
57
+ ### Using aws-sdk v3
58
+
59
+ ``` javascript
60
+ const { STSClient , AssumeRoleCommand } = require (" @aws-sdk/client-sts" );
61
+ const { Client } = require (" @elastic/elasticsearch" );
62
+ const createAwsElasticsearchConnector = require (" ./src/index.js" );
63
+
64
+ async function ping () {
65
+ const creds = await assumeRole (
66
+ " arn:aws:iam::0123456789012:role/Administrator" ,
67
+ " us-east-1"
68
+ );
69
+ const client = new Client ({
70
+ ... createAwsElasticsearchConnector ({
71
+ region: " us-east-1" ,
72
+ credentials: creds,
73
+ }),
74
+ node: " https://my-elasticsearch-cluster.us-east-1.es.amazonaws.com" ,
75
+ });
76
+ const response = await client .ping ();
77
+ console .log (` Got Response` , response);
78
+ }
79
+
80
+ async function assumeRole (roleArn , region ) {
81
+ const client = new STSClient ({ region });
82
+ const response = await client .send (
83
+ new AssumeRoleCommand ({
84
+ RoleArn: roleArn,
85
+ RoleSessionName: " aws-es-connection" ,
86
+ })
87
+ );
88
+ return {
89
+ accessKeyId: response .Credentials .AccessKeyId ,
90
+ secretAccessKey: response .Credentials .SecretAccessKey ,
91
+ sessionToken: response .Credentials .SessionToken ,
92
+ };
93
+ }
94
+ ```
56
95
57
96
## Test
58
97
0 commit comments