Ir para o conteúdo

Como resolvo o erro “pg module not found” na alternância da função do Lambda no meu Secrets Manager

2 minuto de leitura
0

Quero resolver o erro “pg module not found” nos meus logs de função do Lambda do AWS Secrets Manager quando o AWS Lambda falha ao alternar segredos.

Breve descrição

Se a função do Lambda for atualizada automaticamente do Python 3.7 para uma versão mais recente, você poderá receber o erro “pg module not found”. Versões mais recentes, como o Python 3.9, podem não oferecer suporte aos módulos necessários. Para obter mais informações sobre módulos e bibliotecas compatíveis em todas as versões do Python no Lambda, consulte Runtimes suportados.

Resolução

Verifique a versão Python da função do Lambda

Conclua as seguintes etapas:

  1. Abra o console do Lambda.

  2. No painel de navegação, escolha Funções e, em seguida, selecione o nome do Lambda que não realizou a alternância.

  3. Escolha a guia Código.

  4. Nas configurações de Runtime, observe a versão do Python.

  5. Escolha Ações, escolha Exportar função e depois Baixar pacote de implantação.

  6. Execute o seguinte comando do Linux find no diretório do arquivo .zip descompactado:

    find ./ -name “*cpython-*-x86_64-linux-gnu.so”
  7. Verifique se a versão do runtime do Python está no nome do arquivo .so.
    Por exemplo, _cffi_backend.cpython-37m-x86_64-linux-gnu.so.
    Observação: se você encontrar os arquivos so do Python 3.7, mas seu runtime do Lambda mostra uma versão mais recente, isso confirma uma incompatibilidade de versão. Você deve resolver essa incompatibilidade por meio do processo de atualização do modelo do CloudFormation.

Atualize o modelo do AWS CloudFormation

Para resolver a falha da função do Lambda, conclua as seguintes etapas:

  1. Atualize seu modelo de pilha que você usou para criar a função do Lambda.
  2. Adicione a propriedade do Runtime ao objeto HostedRotationLambda em AWS::SecretsManager::RotationSchedule HostedRotationLambda.
  3. Reimplante a pilha do CloudFormation para aplicar as alterações.
    O CloudFormation muda a função de alternância do Lambda de volta para o Python 3.7.
    Observação: para o Python 3.7, o valor da chave Runtime deve ser python3.7.

Informações relacionadas

Atualizar uma função de alternância existente do Python 3.7 para 3.9

AWS OFICIALAtualizada há 5 meses