Aws lambda 为什么serverless要求您对dynamodb设置非常具体?

Aws lambda 为什么serverless要求您对dynamodb设置非常具体?,aws-lambda,amazon-dynamodb,serverless-framework,Aws Lambda,Amazon Dynamodb,Serverless Framework,发件人: DynamoDB不应该是无模式的吗?为什么在这里进行吞吐量调配?这个配置应该被提交,对吗?包含特定配置细节背后的想法是什么 为什么serverless要求您对dynamodb设置非常具体 这是AWS的“非无服务器要求” resources部分由serverless直接传递给AWS CloudFormation,因此它应该遵循CloudFormation的语法/规则 DynamoDB不应该是无模式的吗 是的。就像所有无模式数据库一样,它需要一个键才能工作。如果您没有提供密钥,其他数据库(

发件人:

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

为什么serverless要求您对dynamodb设置非常具体

这是AWS的“非无服务器要求”

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

DynamoDB不应该是无模式的吗

是的。就像所有无模式数据库一样,它需要一个键才能工作。如果您没有提供密钥,其他数据库(如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控制台来更改它。
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}