Wie behebe ich den Fehler: „The following parameters are not defined for the specified group: xxx, xxx“ (Die folgenden Parameter sind nicht für die angegebene Gruppe definiert: xxx, xxx), wenn ich die Engine-Version meines RDS-Clusters mithilfe von CloudFormation aktualisiere?

Lesedauer: 3 Minute
0

Wenn ich versuche, die Engine-Version meines Clusters im Amazon Relational Database Service (Amazon RDS) mithilfe von AWS CloudFormation zu aktualisieren, erhalte ich die folgende Fehlermeldung: „The following parameters are not defined for the specified group: xxx, xxx“ (Die folgenden Parameter sind für die angegebene Gruppe nicht definiert: xxx, xxx).

Kurzbeschreibung

Wenn Sie einen Amazon-RDS-DB-Cluster oder eine Instance mit benutzerdefinierter Parametergruppe aktualisieren, wird beim Aktualisieren eine Fehlermeldung angezeigt

In der folgenden Vorlage zum Beispiel führt das Aktualisieren der Eigenschaft EngineVersion von 5.7.37 auf 8.0.28 in der Ressource DBInstance dazu, dass das Stack-Update fehlschlägt. Das Stack-Update schlägt auch fehl, wenn Sie die Eigenschaft Family in der Ressource DBParameterGroup 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 auch andere Szenarien, die diese Fehlermeldung verursachen können. Die Schritte im folgenden Lösungsabschnitt gelten nur für das vorhergehende Szenario.

Lösung

Die folgenden Schritte umfassen zwei Arten zum Beheben des Fehlers: „The following parameters are not defined for the specified group: xxx, xxx“ (Die folgenden Parameter sind für die angegebene Gruppe nicht definiert: xxx, xxx).

Hinweis: Das Anwenden einer Parametergruppe auf eine DB-Instance könnte einen Instance-Neustart auslösen. Während des Neustarts kommt es zu einem Datenbankausfall.

  1. Fügen Sie der Stack-Vorlage eine neue Ressource ParameterGroup mit dem neuen Wert für Family hinzu und behalten Sie die alte Ressource ParameterGroup in der Vorlage bei.
  2. Verweisen Sie in AWS::RDS::DBCluster oder AWS::RDS::DBInstance auf die neue Ressource ParameterGroup und aktualisieren Sie die Eigenschaft EngineVersion auf die neue Version.
    Hinweis: Wenn Sie ein Upgrade auf eine Hauptversion durchführen, müssen Sie die Eigenschaft AllowMajorVersionUpgrade auf true setzen.
  3. Aktualisieren Sie den Stack mit der aktualisierten Vorlage.
  4. Nachdem der Stack aktualisiert wurde, entfernen Sie die vorherige Ressource ParameterGroup aus der Stack-Vorlage.

-oder-

  1. Ändern Sie die LogicalResourceID der Ressource ParameterGroup.
  2. Verweisen Sie in AWS::RDS::DBCluster oder AWS::RDS::DBInstance auf die neue LogicalResourceID.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr