Skip to content

Latest commit

 

History

History
90 lines (66 loc) · 1.8 KB

README.md

File metadata and controls

90 lines (66 loc) · 1.8 KB

awsElasticSearch

Deploy an AWS ElasticSearch domain using Serverless Component

 

  1. Install
  2. Create
  3. Configure
  4. Deploy

 

1. Install

$ npm install -g @serverless/components

2. Create

$ touch serverless.yml .env .env.prod

The directory should look something like this:

|- serverless.yml
|- .env         # your development AWS api keys
|- .env.prod    # your production AWS api keys

the .env files are not required if you have the aws keys set globally and you want to use a single stage, but they should look like this.

AWS_ACCESS_KEY_ID=XXX
AWS_SECRET_ACCESS_KEY=XXX

3. Configure

# serverless.yml

name: my-component
stage: dev

elasticSearch:
  component: "@bboure/aws-elasticsearch"
  inputs:
    name: my-es-domain
    elasticsearchVersion: '6.7'
    elasticsearchClusterConfig:
      InstanceCount: 1
      InstanceType: t2.small.elasticsearch
    ebsOptions:
      EBSEnabled: true
      VolumeSize: 20
      VolumeType: 'gp2'
    accessPolicies:
      Version: "2012-10-17"
      Statement:
        - Effect: Allow
          Principal:
            AWS: "*"
          Action: es:*
          Resource: "*"

4. Deploy

  $ components

  awsElasticsearch › outputs:
  arn:  'arn:aws:es:eu-west-1:123456789123:domain/sls-es-demo2'
  name:  'sls-es-demo'
  endpoint:  'search-sls-es-demo-225yp5riq4z3uhc7d4p2mn2ntu.eu-west-1.es.amazonaws.com'

  569s › dev › sls-es-demo › done

Note: Deployment can take several minutes as it waits for the domain to be completely created.

 

New to Components?

Checkout the Serverless Components repo for more information.