您请求的引擎模式无服务器当前在 5.7 (2.07.1) 中不可用

尝试使用 MySQL 2.07.1 创建 RDS aurora serverless 报错 “您请求的引擎模式 serverless 当前不可用。(服务:AmazonRDS;状态代码:400;错误代码:InvalidParameterValue;请求 ID:xxxx;代理:空)“

任何建议都会对我有很大帮助

这是示例代码

{
  "AWSTemplateFormatVersion" : "2010-09-09",

  "Description" : "AWS CloudFormation Sample Template AuroraServerlessDBCluster: Sample template showing how to create an Amazon Aurora Serverless DB cluster. **WARNING** This template creates an Amazon Aurora DB cluster. You will be billed for the AWS resources used if you create a stack from this template.",

  "Parameters" : {
      "DBUsername" : {
        "NoEcho" : "true",
        "Description" : "Username for MySQL database access",

        "Type" : "String",
        "MinLength" : "1",
        "MaxLength" : "16",
        "AllowedPattern" : "[a-zA-Z][a-zA-Z0-9]*",
        "ConstraintDescription" : "must begin with a letter and contain only alphanumeric characters."
      },
      "DBPassword" : {
        "NoEcho" : "true",
        "Description" : "Password MySQL database access",

        "Type" : "String",
        "MinLength" : "8",

        "MaxLength" : "41",
        "AllowedPattern" : "[a-zA-Z0-9]*",
        "ConstraintDescription" : "must contain only alphanumeric characters."
      }
  },

  "Resources" : {
      "RDSCluster" : {
          "Type": "AWS::RDS::DBCluster",
          "Properties" : {
              "MasterUsername" : {
                  "Ref": "DBUsername"
              },
              "MasterUserPassword" : {
                  "Ref": "DBPassword"
              },
              "DBClusterIdentifier" : "my-serverless-cluster",
              "Engine" : "aurora",
              "EngineVersion" : "2.07.1",
              "EngineMode" : "serverless",
              "ScalingConfiguration" : {
                  "AutoPause" : true,
                  "MinCapacity" : 4,
                  "MaxCapacity" : 32,
                  "SecondsUntilAutoPause" : 1000
              }
          }
      }
  }
}
stack overflow The engine mode serverless you requested is currently unavailable with 5.7 (2.07.1)
原文答案

答案:

作者头像

您正在尝试使用 Aurora MySQL 2.07.1(即 MySQL 5.7 版本 [+] a link )创建 RDS aurora serverless。查看上面的代码和模板参数,我可以看到你的“引擎”参数是“aurora”,对于 MySQL 5.7 版本 [+] (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engine ) 它应该是“aurora-mysql”。

作者头像

我想我使用了相同的 example from the docs ,我在尝试使用 MySQL 5.7 而不是示例中的 5.6 时犯了同样的错误,并且不可避免地遇到了同样的问题。

解决方案是设置:

    "Engine": "aurora-mysql",
    "EngineVersion": "5.7.mysql_aurora.2.07.1"

我是怎么弄明白的?

从同一文档的更上一层楼:

发动机

要用于此数据库集群的数据库引擎的名称。

有效值:aurora(适用于 MySQL 5.6 兼容的 Aurora)、aurora-mysql(适用于 MySQL 5.7 兼容的 Aurora)和 aurora-postgresql

同样来自同一个文档:

引擎版本

要使用的数据库引擎的版本号。

...

要列出 aurora-mysql 的所有可用引擎版本(对于与 MySQL 5.7 兼容的 Aurora),请使用以下命令:

aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"

使用 AWS CLI 运行该命令会产生如下内容:

[
    ...
    "5.7.mysql_aurora.2.06.0",
    "5.7.mysql_aurora.2.07.0",
    "5.7.mysql_aurora.2.07.1",
    "5.7.mysql_aurora.2.07.1",
    "5.7.mysql_aurora.2.07.2",
    "5.7.mysql_aurora.2.07.3",
    ...
]

这让我相信我们需要使用 full Aurora MySQL version number

作者头像

要查看哪些版本在 serverless 模式下可用,请运行:

aws rds describe-db-engine-versions --engine aurora-mysql --filters Name=engine-mode,Values=serverless

如果您想根据引擎模式了解哪些数据库版本可用,只需删除过滤器:

aws rds describe-db-engine-versions --engine aurora-mysql

通过这种方式,您将看到在 serverlessprovisioned 模式下可能发生的情况,以及每种模式支持的数据库版本。

特别是通常看起来像的 SupportedEngineModes 块:

"SupportedEngineModes": [
   "serverless"
]

或者

"SupportedEngineModes": [
   "provisioned"
]