https://pulumi.com logo
Title
e

eager-appointment-42460

09/23/2020, 6:16 PM
Hi All, I'm doing some work with the Aurora MySQL global database and I'm having a problem with the engine version. Does anyone know if there is a reference list of the versions that are supported. If I use no version it comes up under MySQL 5.6. I've tried a few of the 5.7 versions that work in the AWS console and I get a failure back.
b

billowy-army-68599

09/23/2020, 6:21 PM
can you share the code you currently have?
e

eager-appointment-42460

09/23/2020, 6:42 PM
Sure -
This works but is MySQL 5.6:
const example = new aws.rds.GlobalCluster("example", {globalClusterIdentifier: "example"}, {
  provider: primary,
});
const primaryCluster = new aws.rds.Cluster("primaryCluster", {
  engineMode: "global",
  globalClusterIdentifier: example.id,
}, {
  provider: primary,
});
const primaryClusterInstance = new aws.rds.ClusterInstance("primaryClusterInstance", {
  instanceClass: "db.r4.large",
  clusterIdentifier: primaryCluster.id
}, {
  provider: primary,
});
//Add engine version -- Snap! Breaks: const example = new aws.rds.GlobalCluster( _  "ocat-gdb-pu-todd",_  {    globalClusterIdentifier: "ocat-gdb-pu-todd"_,_    engine: "aurora-mysql"_,_    engineVersion: "5.7.mysql_aurora.2.07.2"_,_  },  {    provider: primary,  } _)_; const primaryCluster = new aws.rds.Cluster( _  "primaryCluster",_  {    engineMode: "global"_,_    globalClusterIdentifier: example.id,    masterUsername: "clusteradmin"_,_    masterPassword: "clusteradmin"_,_    clusterIdentifier: "ocat-aurora-gdb-cluster-pu"_,_    databaseName: "CALSAWS_OCAT"_,_    engine: "aurora-mysql"_,_    engineVersion: "5.7.mysql_aurora.2.07.2"_,_  }, I've tried versions 5.7 - 2.07 through 2.09 which is pretty new.
e

eager-appointment-42460

09/23/2020, 9:03 PM
Yep. I'll take a look at the doc and do a couple of tests. Thanks.
Here's the pattern I see for the aurora engine files: // No Aurora engineVersion results in // MySQL version 5.6.mysql_aurora.1.22.2 // <mysql-major-version>.mysql_aurora.<aurora-mysql-version> // Versions: // 5.7.mysql_aurora.2.03.2 // 5.6.mysql_aurora.1.19.0 And, code like this fails: const example = new aws.rds.GlobalCluster( "ocat-gdb-7", { globalClusterIdentifier: "ocat-gdb-7" }, { provider: primary, } ); const primaryCluster = new aws.rds.Cluster( "primaryCluster", { engineMode: "global", globalClusterIdentifier: example.id, masterUsername: "clusteradmin", masterPassword: "clusteradmin", clusterIdentifier: "ocat-gdb-7-aurora", databaseName: "mydb", // engine: "aurora-mysql", engineVersion: "5.7.mysql_aurora.2.08.1", //failed }, { provider: primary, } ); View Live: https://app.pulumi.com/tfeather/global-db-7/dev/updates/4 Type Name Status Info pulumi😛ulumi:Stack global-db-7-dev failed 1 error + └─ aws:rds:Cluster primaryCluster creating failed 1 error Diagnostics: aws:rds:Cluster (primaryCluster): error: 1 error occurred: *
error creating RDS cluster: InvalidParameterValue: The requested engine version was not found or does not support global functionality
status code: 400, request id: 412ad457-29b5-4f2b-ae5e-d0c44d88d7cf
pulumi😛ulumi:Stack (global-db-7-dev): error: update failed Resources: 4 unchanged Duration: 3s And, the AWS Console says this and many other versions are available (and indeed those work from the console): Provisioned with global database global_10a, 2.07.0 (Global compatible), 2.07.1 (Global compatible), 2.07.2 (Global compatible), 2.08.0 (Global compatible), 2.08.1 (Global compatible), 2.08.2 (Global compatible), 2.09.0 (Global compatible), 1.22.0 (Global compatible), 1.22.1 (Global compatible), 1.22.1.3 (Global compatible), 1.22.2 (Global compatible), 1.23.0 (Global compatible)
f

faint-table-42725

09/24/2020, 4:34 PM
The error is coming from the AWS API though. I think you need to specify both engine and engineVersion?
e

eager-appointment-42460

09/24/2020, 7:31 PM
I can try that again. If I just include the engine version to override the default it is using, the aurora cluster says it cannot find the aurora version, so I may do a couple of non-global runs with just the clusters and instances.