Minha função de rotação do AWS Lambda falhou no AWS Secrets Manager com o erro “O mecanismo de banco de dados deve ser definido como 'postgres'/'mysql'”.
Breve descrição
Você pode receber esse erro se estiver usando uma função de rotação multiusuário do AWS Lambda para credenciais de usuário.
Observação: esse erro se aplica somente a dois tipos de banco de dados do Amazon Relational Database Service (Amazon RDS), que são a edição compatível com o Amazon Aurora PostgreSQL e a edição compatível com o Amazon Aurora MySQL.
O erro ocorre na etapa setSecret da função de rotação do Lambda para as credenciais do banco de dados do Amazon RDS.
Resolução
Edite a função de rotação Lambda se você fez alterações no código da função ou crie uma nova rotação se não tiver feito alterações.
Opção 1: Edite o código da função de rotação
-
Abra o console do Lambda.
-
No painel de navegação, escolha Funções e, em seguida, escolha o nome da função do Lambda.
-
Escolha a lista suspensa Ações, escolha a função Exportar e escolha Baixar pacote de implantação.
-
Extraia os arquivos do arquivo .zip baixado.
-
No IDE do Visual Studio Code, abra o arquivo lambda_function.py.
-
Na função auxiliar get\ _secret\ _dict(), substitua if secret_dict['engine'] != 'mysql': pelo seguinte código:
supported_engines = ["mysql", "aurora-mysql"]
if secret_dict['engine'] not in supported_engines:
-
Compacte o conteúdo da pasta .zip pelo arquivo lambda\ _function.py atualizado.
-
No console do Lambda, na guia Código, escolha a lista suspensa Carregar de, escolha o arquivo .zip e, em seguida, escolha a nova pasta .zip da etapa 7.
Opção 2: Crie uma nova função de rotação
- Abra o console do Secrets Manager.
- Na página Segredos, escolha seu nome secreto.
- Na página Detalhes do segredo, na seção Configuração de rotação, escolha Editar rotação.
- Na caixa de diálogo Editar configuração de rotação, siga as instruções na **etapa 3e.**para configurar o segredo da rotação.
- Em Usar credenciais separadas para alternar esse segredo, escolha Sim.
- Em Segredos, escolha o segredo para as credenciais do banco de dados principal do Amazon RDS ou do Amazon Aurora.
- Escolha Salvar.
- (Opcional) Se a função de rotação Lambda anterior estiver anexada a vários segredos, você poderá usar a nova função para esses segredos.
Para cada segredo, abra a página de Detalhes do segredo e, na seção Configuração de rotação, escolha Editar rotação. Na caixa de diálogo Editar configuração de rotação, para a função de rotação Lambda, escolha a nova função de rotação e escolha Salvar.
- Depois de mudar todos os segredos para a nova função de rotação do Lambda, no console do Lambda, exclua a função Lambda de rotação anterior.
Informações relacionadas
Como crio uma função de rotação com um segredo do AWS Secrets Manager para um banco de dados sem suporte?
Melhore a segurança das credenciais do banco de dados primário do Amazon RDS usando o AWS Secrets Manager