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.
- La propriété EngineVersion pour AWS::RDS::DBCluster ou AWS::RDS::DBInstance
-ou- - La propriété Family pour DBClusterParameterGroup ou DBParameterGroup
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.
- 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.
- 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. - 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 la LogicalResourceID de la ressource ParameterGroup.
- 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 ?