超出无服务器订阅者限制

时间:2021-06-13 14:03:34

标签: amazon-web-services amazon-dynamodb amazon-cloudformation serverless-framework

我正在使用 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

1 个答案:

答案 0 :(得分:0)

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

如果再次失败,请提供详细说明、无服务器版本、插件信息以及可能有助于团队追踪的任何其他信息 - 然后打开错误票in the project