Lorsque j’essaie de mettre à niveau la version du moteur de mon cluster Amazon Relational Database Service (Amazon RDS) à l’aide d’AWS CloudFormation, le message d’erreur suivant s’affiche : « Les paramètres suivants ne sont pas définis pour le groupe spécifié. »
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 un message d’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é Famille de MySQL5.7 vers 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 décrites dans la section Résolution suivante s’appliquent uniquement au scénario précédent.
Résolution
Les étapes suivantes vous permettent de résoudre l’erreur de deux manières : « Les paramètres suivants ne sont pas définis pour le groupe spécifié. »
**Remarque :**L’application d’un groupe de paramètres à une instance de base de données peut déclencher un redémarrage de l’instance. Lors du redémarrage, une panne de base de données se produit.
- Ajoutez une nouvelle ressource ParameterGroup au modèle de pile avec la nouvelle valeur Famille et conservez l’ancienne ressource ParameterGroup dans le modèle.
- Faites référence à la nouvelle ressource ParameterGroup dans AWS::RDS::DBCluster ou AWS::RDS::DBInstance, et mettez à jour la propriété EngineVersion vers la nouvelle version.
Remarque : Si vous effectuez une mise à niveau de version majeure, vous devez définir la propriété AllowMajorVersionUpgrade sur true.
- Mettez à jour la pile avec le modèle mis à jour.
- Une fois la pile mise à jour, supprimez la ressource ParameterGroup précédente du modèle de pile.
-ou-
- Modifiez le LogicalResourceID de la ressource ParameterGroup.
- Faites référence au nouveau LogicalResourceID dans AWS::RDS::DBCluster ou AWS::RDS::DBInstance.