¿Cómo puedo solucionar el error: «The following parameters are not defined for the specified group» al actualizar la versión del motor de mi clúster de RDS con CloudFormation?

3 minutos de lectura
0

Cuando intento actualizar la versión del motor de mi clúster de Amazon Relational Database Service (Amazon RDS) con AWS CloudFormation, aparece el siguiente error: «The following parameters are not defined for the specified group».

Breve descripción

Al actualizar un clúster o una instancia de base de datos de Amazon RDS que usa un grupo de parámetros personalizado, se muestra un error si actualiza:

Por ejemplo, en la siguiente plantilla, al actualizar la propiedad EngineVersion de 5.7.37 a 8.0.28 en el recurso DBInstance, se produce un error en la actualización de la pila. La actualización de la pila también falla cuando se actualiza la propiedad Family de MySQL5.7 a MySQL8.0 en el recurso 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'

Nota: Hay otros escenarios que pueden provocar este mensaje de error. Los pasos que se describen en el apartado «Solución» que aparece a continuación solo son aplicables al escenario anterior.

Solución

Hay dos maneras de solucionar el error: «The following parameters are not defined for the specified group».

Nota: La aplicación de un grupo de parámetros a una instancia de base de datos puede provocar el reinicio de la instancia. Durante el reinicio, se produce una interrupción de la base de datos.

  1. Añada un nuevo recurso ParameterGroup a la plantilla de la pila con el nuevo valor Family y mantenga el recurso ParameterGroup antiguo en la plantilla.
  2. Haga referencia al nuevo recurso ParameterGroup en AWS::RDS::DBCluster o AWS::RDS::DBInstance y actualice la propiedad EngineVersion a la nueva versión.
    Nota: Si está llevando a cabo una actualización importante de la versión, debe establecer la propiedad AllowMajorVersionUpgrade en true.
  3. Actualice la pila con la plantilla actualizada.
  4. Tras actualizar la pila, elimine el recurso ParameterGroup anterior de la plantilla de la pila.

Alternativa:

  1. Cambie el LogicalResourceID del recurso ParameterGroup.
  2. Haga referencia al nuevo LogicalResourceID en AWS::RDS::DBCluster o AWS::RDS::DBInstance.
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años