Wenn ich versuche, die Engine-Version meines Amazon Relational Database Service (Amazon RDS)-Clusters mithilfe von AWS CloudFormation zu aktualisieren, erhalte ich die folgende Fehlermeldung: „Die folgenden Parameter sind für die angegebene Gruppe nicht definiert.“
Kurzbeschreibung
Wenn Sie ein Upgrade eines Amazon RDS-DB-Clusters oder einer Instance durchführen, die eine benutzerdefinierte Parametergruppe verwendet, erhalten Sie eine Fehlermeldung bei der Aktualisierung
In der folgenden Vorlage führt beispielsweise das Aktualisieren der EngineVersion-Eigenschaft von 5.7.37 auf 8.0.28 in der DBInstance-Ressource dazu, dass das Stack-Update fehlschlägt. Das Stack-Update schlägt auch fehl, wenn Sie die Family-Eigenschaft in der DBParameterGroup-Ressource von MySQL5.7 auf MySQL8.0 aktualisieren.
Parameters:
DBName:
Default: MyDatabase
Description: The database name
Type: String
DBUser:
NoEcho: 'true'
Description: The database admin account username
Type: String
DBPassword:
NoEcho: 'true'
Description: The database admin account password
Type: String
Resources:
MyDB:
Type: 'AWS::RDS::DBInstance'
Properties:
DBName: !Ref DBName
AllocatedStorage: '5'
DBInstanceClass: db.t2.small
Engine: MySQL
EngineVersion: 5.7.37
MasterUsername: !Ref DBUser
MasterUserPassword: !Ref DBPassword
DBParameterGroupName: !Ref MyRDSParamGroup
AllowMajorVersionUpgrade: true
MyRDSParamGroup:
Type: 'AWS::RDS::DBParameterGroup'
Properties:
Family: MySQL5.7
Description: CloudFormation Sample Database Parameter Group
Parameters:
autocommit: '1'
general_log: '1'
old_passwords: '0'
**Hinweis:**Es gibt andere Szenarien, die zu dieser Fehlermeldung führen können. Die Schritte im folgenden Behebungsabschnitt gelten nur für das vorhergehende Szenario.
Behebung
Mit den folgenden Schritten können Sie den Fehler auf zwei Arten beheben: „Die folgenden Parameter sind für die angegebene Gruppe nicht definiert."
**Hinweis:**Das Anwenden einer Parametergruppe auf eine DB-Instance kann einen Instance-Neustart auslösen. Während des Neustarts kommt es zu einem Datenbankausfall.
- Fügen Sie der Stack-Vorlage eine neue ParameterGroup-Ressource mit dem neuen Family-Wert hinzu und behalten Sie die alte ParameterGroup-Ressource in der Vorlage bei.
- Verweisen Sie auf die neue ParameterGroup-Ressource in AWS::RDS::DBCluster oder AWS::RDS::DBInstance und aktualisieren Sie die EngineVersion-Eigenschaft auf die neue Version.
**Hinweis:**Wenn Sie ein Upgrade der Hauptversion durchführen, müssen Sie die Eigenschaft AllowMajorVersionUpgrade auf true setzen.
- Aktualisieren Sie den Stack mit der aktualisierten Vorlage.
- Nachdem der Stack aktualisiert wurde, entfernen Sie die vorherige ParameterGroup-Ressource aus der Stack-Vorlage.
-oder-
- Ändern Sie die LogicalResourceID der ParameterGroup-Ressource.
- Verweisen Sie in AWS::RDS::DBCluster oder AWS::RDS::DBInstance auf die neue LogicalResourceID.