Comment puis-je résoudre l'erreur : « The following parameters are not defined for the specified group: xxx, xxx » (Les paramètres suivants ne sont pas définis pour le groupe spécifié : xxx, xxx) lorsque je mets à niveau la version du moteur de mon cluster RDS à l'aide de CloudFormation ?

Date de la dernière mise à jour : 06/05/2022

Lorsque j'essaie de mettre à niveau la version du moteur de mon cluster Amazon Relational Database Service (Amazon RDS) à l'aide de AWS CloudFormation, je reçois l'erreur suivante : « The following parameters are not defined for the specified group: xxx, xxx » (Les paramètres suivants ne sont pas définis pour le groupe spécifié : xxx, xxx)

Brève description

Lorsque vous mettez à niveau un cluster ou une instance de base de données Amazon RDS qui utilise un groupe de paramètres personnalisé, vous recevez une erreur si vous mettez à jour.

Par exemple, dans le modèle suivant, la mise à jour de la propriété EngineVersion de 5.7.37 à 8.0.28 dans la ressource DBInstance entraîne l'échec de la mise à jour de la pile. La mise à jour de la pile échoue également lorsque vous mettez à jour la propriété Family de MySQL5.7 à MySQL8.0 dans la ressource DBParameterGroup.

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'

Remarque : d'autres scénarios peuvent provoquer ce message d'erreur. Les étapes de la section Solution suivante s'appliquent uniquement au scénario précédent.

Solution

Les séries d'étapes suivantes sont deux façons de résoudre l'erreur : « The following parameters are not defined for the specified group: xxx, xxx » (Les paramètres suivants ne sont pas définis pour le groupe spécifié : xxx, xxx).

Remarque : l'application d'un groupe de paramètres à une instance de base de données peut entraîner un redémarrage de l'instance. Pendant le redémarrage, il y a une interruption de la base de données.

  1. Ajoutez une nouvelle ressource ParameterGroup au modèle de pile avec la nouvelle valeur Family et conservez l'ancienne ressource ParameterGroup dans le modèle.
  2. Référencez la nouvelle ressource ParameterGroup dans AWS::RDS::DBCluster ou AWS::RDS::DBInstance, et mettez à jour la propriété EngineVersion avec la nouvelle version.
    Remarque : si vous effectuez une mise à niveau de version majeure, vous devez définir la propriété AllowMajorVersionUpgrade sur true.
  3. Mettez à jour la pile avec le modèle mis à jour.
  4. Une fois la pile mise à jour, supprimez la ressource ParameterGroup précédente du modèle de pile.

-ou-

  1. Modifiez la LogicalResourceID de la ressource ParameterGroup.
  2. Référencez la nouvelle LogicalResourceID dans le AWS::RDS::DBCluster ou AWS::RDS::DBInstance.

Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?