Come posso risolvere l'errore: "The following parameters are not defined for the specified group: xxx, xxx" (I seguenti parametri non sono definiti per il gruppo specificato: xxx, xxx) quando aggiorno la versione del motore del cluster RDS utilizzando CloudFormation?

Ultimo aggiornamento: 06/05/2022

Quando provo ad aggiornare la versione del motore del cluster Amazon Relational Database Service (Amazon RDS) utilizzando AWS CloudFormation, viene visualizzato il seguente errore: "The following parameters are not defined for the specified group: xxx, xxx." (I seguenti parametri non sono definiti per il gruppo specificato: xxx, xxx.)

Breve descrizione

Quando esegui l'aggiornamento di un cluster o di un'istanza di database Amazon RDS che utilizza un gruppo di parametri personalizzato, ricevi un errore se aggiorni

Ad esempio, nel modello seguente, l'aggiornamento della proprietà EngineVersion da 5.7.37 a 8.0.28 nella risorsa DBInstance causa l'errore dell'aggiornamento dello stack. L'aggiornamento dello stack non va a buon fine anche quando si aggiorna la proprietà Family da MySQL5.7 a MySQL8.0 nella risorsa 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: esistono altri scenari che possono causare questo messaggio di errore. I passaggi nella seguente sezione "Risoluzione" si applicano solo allo scenario precedente.

Risoluzione

Le seguenti serie di passaggi costituiscono due modi per risolvere l'errore:"The following parameters are not defined for the specified group: xxx, xxx" (I seguenti parametri non sono definiti per il gruppo specificato: xxx, xxx)

Nota: l'applicazione di un gruppo di parametri a un'istanza database potrebbe innescare un riavvio dell'istanza. Durante il riavvio, si verifica un'interruzione del database.

  1. Aggiungi una nuova risorsa ParameterGroup al modello di stack con il nuovo valore Family e mantieni la vecchia risorsa ParameterGroup nel modello.
  2. Fai riferimento alla nuova risorsa ParameterGroup in AWS::RDS::DBCluster o AWS::RDS::DBInstance e aggiorna la proprietà EngineVersion alla nuova versione.
    Nota: se stai eseguendo un importante aggiornamento della versione , devi impostare la proprietà AllowMajorVersionUpgrade su true.
  3. Aggiorna lo stack con il modello aggiornato.
  4. Dopo l'aggiornamento dello stack, rimuovi la precedente risorsa ParameterGroup dal modello dello stack.

-oppure-

  1. Modifica il LogicalResourceID della risorsa ParameterGroup.
  2. Fai riferimento al nuovo LogicalResourceID in AWS::RDS::DBCluster o AWS::RDS::DBInstance.

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?