首页 > 解决方案 > 超出无服务器订阅者限制

问题描述

我正在使用该serverless框架为我管理 Lambda、DynamoDB 和 S3 资源的创建。在 中serverless.yml,我最初为我的 DynamoDB 表提供了一些读取和写入容量单位。然后,我改成了BillingMode: PAY_PER_REQUEST,更新成功了。

现在,当我更改了 yaml 文件中的其他一些属性时,该serverless deploy命令会引发以下错误:

An error occurred: UsersTable - Subscriber limit exceeded: Update to PayPerRequest mode are limited to once in 1 day(s). Last update at Sun Jun 13 13:36:16 UTC 2021. Next update can be made at Mon Jun 14 13:36:16 UTC 2021 (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: LimitExceededException; Request ID: S4TQTVVHGVJF66Q9ASJG; Proxy: null).

我的问题,为什么它在没有更新的情况下尝试更新 UsersTable。AFAIK,有变更集,它们检测资源是否有任何更改/更新。我错过了什么吗?

一个后续问题,我如何确保不会再次发生这种情况,因为我正处于设置基础设施的初始阶段,并且每天都会对 yaml 文件进行大量更新。

作为参考,以下是导致问题的 yaml 文件部分。

resources:
  Resources:
    UsersTable:
      Type: AWS::DynamoDB::Table
      Properties:
        TableName: ${self:custom.usersTableName}
        AttributeDefinitions:
          - AttributeName: userId
            AttributeType: S
        KeySchema:
          - AttributeName: userId
            KeyType: HASH
        BillingMode: PAY_PER_REQUEST

标签: amazon-web-servicesamazon-dynamodbamazon-cloudformationserverless-framework

解决方案


请打开 AWS 控制台并检查表设置。如果计费模式设置为按请求付费,请尝试重新部署。

如果再次失败,请提供详细描述、无服务器版本、插件信息以及任何其他可能有助于团队追踪它的信息 - 然后在项目中打开错误票


推荐阅读