Come posso risolvere l'errore: "The following parameters are not defined for the specified group” quando aggiorno la versione del motore del cluster RDS utilizzando CloudFormation?

2 minuti di lettura
0

Quando provo ad aggiornare la versione del motore del cluster Amazon Relational Database Service (Amazon RDS) utilizzando AWS CloudFormation, ricevo il seguente errore: "The following parameters are not defined for the specified group."

Breve descrizione

Quando aggiorni un cluster o un'istanza 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 un errore durante l'aggiornamento dello stack. L'aggiornamento dello stack genera un errore 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 della seguente sezione Risoluzione si applicano solo allo scenario precedente.

Soluzione

Le seguenti serie di passaggi rappresentano due modi per risolvere l'errore: “The following parameters are not defined for the specified group.”

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

  1. Aggiungi una nuova risorsaParameterGroup al modello di stack con il nuovo valore Family e mantieni la precedente risorsa ParameterGroup nel modello.
  2. Fai riferimento alla nuova risorsa ParameterGroup in AWS::RDS::DBCluster o AWS::RDS::DBInstance, quindi aggiorna la proprietà EngineVersion alla nuova versione.
    Nota: se stai eseguendo un aggiornamento della versione principale, 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 di stack.

-oppure-

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