【问题标题】:Why does serverless require you to be very specific with your dynamodb settings?为什么无服务器要求您对 dynamodb 设置非常具体?
【发布时间】:2018-08-03 18:55:00
【问题描述】:

发件人:https://github.com/serverless/examples/blob/master/aws-node-rest-api-with-dynamodb/serverless.yml

resources:
  Resources:
    TodosDynamoDbTable:
      Type: 'AWS::DynamoDB::Table'
      DeletionPolicy: Retain
      Properties:
        AttributeDefinitions:
          -
            AttributeName: id
            AttributeType: S
        KeySchema:
          -
            AttributeName: id
            KeyType: HASH
        ProvisionedThroughput:
          ReadCapacityUnits: 1
          WriteCapacityUnits: 1
        TableName: ${self:provider.environment.DYNAMODB_TABLE}

DynamoDB 不应该是无模式的吗?为什么要在这里完成吞吐量配置?这个配置应该被提交,对吧?包含特定配置细节的想法是什么?

【问题讨论】:

  • "Schemaless" 不包括不需要为表定义主键。不知道你在期待什么。

标签: aws-lambda amazon-dynamodb serverless-framework


【解决方案1】:

为什么无服务器要求您对 dynamodb 设置非常具体?

这是 AWS 的要求,不是无服务器的。

resources 部分由 serverless 直接传递给 AWS CloudFormation,因此它应该遵循 CloudFormation 的语法/规则。

DynamoDB 不应该是无模式的吗?

是的。就像 ALL 无模式数据库一样,它需要一个密钥才能工作。如果您不提供其他数据库(例如 MongoDB),则只需为您创建密钥。 DynamoDB 只要求您显式设置密钥(以换取速度和可扩展性),但其余值完全取决于您,而且它是“无模式的”。

为什么在这里进行吞吐量配置?这个配置应该被提交,对吧?包含特定配置细节的想法是什么?

使用serverless.yml 文件的resources 部分的全部意义在于通过代码管理您的基础架构。通过在代码中定义应用程序/Web 服务所需的基础架构,可以更轻松地创建、更新或删除这些资源。

我认为没有人会喜欢通过 AWS DynamoDB Web 控制台手动对 10 个不同区域中的每个区域中的 5 个 DynamoDB 表进行任何基础设施更改(例如增加预置吞吐量)。 :-)

但与其他变量不同,吞吐量配置取决于需求,并且需求可能会发生变化。

当需求和要求发生变化时,您可以在 serverless.yml 中进行更改。同样,基础设施即代码的全部目的是您永远不必接触 AWS 控制台本身。

开发人员通常如何将其输入到 serverless.yml 中?还有,不是每次部署都会重置吗?

它将重置。这就是为什么您必须在 serverless.yml 而不是 AWS 控制台中进行更改。

如果您指的是具有不同需求和要求的不同环境,您可以为每个环境设置不同的值。

【讨论】:

  • 谢谢!但与其他变量不同,吞吐量配置取决于需求,并且需求可能会发生变化。开发人员通常如何将其输入到 serverless.yml 中?还有,不是每次部署都会重置吗?
  • 当需求和要求发生变化时,您可以在serverless.yml 中进行更改。同样,基础设施即代码的全部目的是您永远不必接触 AWS 控制台本身。
  • 不是每次部署都会重置吗?是的,这就是您使用 serverless.yml 而不是 AWS 控制台更改它的原因。
猜你喜欢
  • 1970-01-01
  • 2019-06-30
  • 1970-01-01
  • 2019-04-20
  • 2010-09-07
  • 2015-03-29
  • 2013-06-11
  • 2010-09-15
  • 1970-01-01
相关资源
最近更新 更多