Quando tento atualizar a versão do mecanismo do meu cluster do Amazon Relational Database Service (Amazon RDS) usando o AWS CloudFormation, recebo o seguinte erro: “Os parâmetros a seguir não estão definidos para o grupo especificado.”
Breve descrição
Depois de realizar um upgrade de um cluster ou instância de banco de dados do Amazon RDS que usa um grupo de parâmetros personalizado, você recebe um erro ao atualizar
Por exemplo, no modelo a seguir, atualizar a propriedade EngineVersion de 5.7.37 para 8.0.28 no recurso DBInstance faz com que a atualização da pilha falhe. A atualização da pilha também falha quando você atualiza a propriedade Family do MySQL5.7 para o MySQL8.0 no 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'
Observação: existem outros cenários que podem causar essa mensagem de erro. As etapas a seguir na seção Resolução se aplicam somente ao cenário anterior.
Resolução
Os conjuntos de etapas a seguir são duas maneiras de resolver o erro: “Os parâmetros a seguir não estão definidos para o grupo especificado.”
Observação: aplicar de um grupo de parâmetros em uma instância de banco de dados pode levar à reinicialização da instância. Durante a reinicialização, há uma interrupção do banco de dados.
- Adicione um novo recurso ParameterGroup ao modelo de pilha com o novo valor Family e mantenha o antigo recurso ParameterGroup no modelo.
- Faça referência o novo recurso ParameterGroup em AWS::RDS::DBCluster ou AWS::RDS::DBInstance e atualize a propriedade EngineVersion para a nova versão.
Observação: se você estiver realizando uma atualização de versão principal, deverá definir a propriedade AllowMajorVersionUpgrade como true.
- Atualize a pilha com o modelo atualizado.
- Depois que a pilha for atualizada, remova o recurso ParameterGroup anterior do modelo de pilha.
-ou-
- Altere o LogicalResourceID do recurso ParameterGroup.
- Faça referência ao novo LogicalResourceID em AWS::RDS::DBCluster ou AWS::RDS::DBInstance.