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

时间:2018-02-23 16:44:03

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

来自:https://github.com/serverless/examples/blob/master/aws-node-rest-api-with-dynamodb/serverless.yml

LEFT JOIN
    `connections` `Connections` ON (
        `Connections`.`port_from_id` = (`Ports`.`id`) OR
        `Connections`.`port_to_id` = (`Ports`.`id`)
    )

DynamoDB不应该是无模式的吗?为什么吞吐量配置在这里完成?这个配置应该是承诺的,对吧?包含特定配置详细信息背后的想法是什么?

1 个答案:

答案 0 :(得分:4)

  

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

那个AWS'要求不是无服务器'。

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

  

不是DynamoDB应该是无模式的吗?

是的。就像所有无架构数据库一样,它需要一个密钥才能工作。其他数据库(例如MongoDB)只是为您提供密钥,如果您不提供密钥。 DynamoDB只要求您明确设置密钥(以换取速度和可伸缩性),但其余的值都取决于您和它的无模式"。

  

为什么在这里完成吞吐量配置?这个配置应该是承诺的,对吧?包含特定配置详细信息背后的想法是什么?

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

我认为任何人都不会喜欢通过AWS DynamoDB Web控制台手动更改10个不同区域中的五个DynamoDB表的基础架构更改(例如,增加预配置吞吐量)。 : - )

  

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

当需求和需求发生变化时,您可以在serverless.yml中更改它。同样,基础架构作为代码的整个目的是您永远不必触及AWS控制台本身。

  

devs通常如何将其输入serverless.yml?此外,每次部署时都不会重置?

它会重置。这就是您必须在serverless.yml而不是AWS控制台进行更改的原因。

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