【问题标题】:How to deploy AWS elasticsearch using serverless.yml如何使用 serverless.yml 部署 AWS elasticsearch
【发布时间】:2017-11-21 10:02:59
【问题描述】:

我需要使用 AWS 弹性搜索服务,但也想自动化它。我们有无服务器配置。我们如何使用 serverless.yml 创建 AWS 弹性搜索服务?

【问题讨论】:

    标签: amazon-web-services elasticsearch serverless-framework


    【解决方案1】:

    您可以将 CloudFormation 资源添加到“资源”部分。对于 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
    

    【讨论】:

    • 完美。这就是我需要的。谢谢:-)
    • 这如何与访问策略一起使用?我们可以动态引用 lambda 函数角色吗?
    • 这完美运行并创建了一个弹性搜索实例,但我如何创建弹性搜索客户端并使用它在我的处理程序中插入/获取数据?
    • 我使用了类似的方法,但我遵循了无服务器 GitHub 中的示例。可能对其他人有帮助github.com/serverless/examples/blob/master/…
    【解决方案2】:

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

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

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

    【讨论】:

    • 我迷失了这个对 mySecurityGroup 的引用,我需要在哪里配置它?
    猜你喜欢
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 2019-12-28
    • 2017-12-20
    • 2018-08-15
    • 2020-09-06
    • 1970-01-01
    • 2020-12-04
    相关资源
    最近更新 更多