如何使用 serverless.yml 部署 AWS elasticsearch

How to deploy AWS elasticsearch using serverless.yml

我需要使用 AWS elasticsearch 服务,但也想将其自动化。我们有无服务器配置。我们如何使用 serverless.yml 创建 AWS elasticsearch 服务?

您可以将 CloudFormation 资源添加到 "resources" 部分。对于 ElasticSearch,这看起来像这样。

service: aws-nodejs
provider:
  name: aws
  runtime: nodejs6.10
functions:
  hello:
    handler: handler.hello
    environment:
      elasticURL:
        Fn::GetAtt: [ ElasticSearchInstance , DomainEndpoint ]

resources:
  Resources:
    ElasticSearchInstance:
      Type: AWS::Elasticsearch::Domain
      Properties:
        EBSOptions:
          EBSEnabled: true
          VolumeType: gp2
          VolumeSize: 10
        ElasticsearchClusterConfig:
          InstanceType: t2.small.elasticsearch
          InstanceCount: 1
          DedicatedMasterEnabled: false
          ZoneAwarenessEnabled: false
        ElasticsearchVersion: 5.3

要添加到 Jens 的回答中,您可能需要输出

您可以将其添加到您的 serverless.yml 配置中

Outputs:
  DomainArn:
    Value: !GetAtt ElasticsearchDomain.DomainArn
  DomainEndpoint:
    Value: !GetAtt ElasticsearchDomain.DomainEndpoint
  SecurityGroupId:
    Value: !Ref mySecurityGroup
  SubnetId:
    Value: !Ref subnet