Migração das Lambdas de Customização

Prezado cliente da plataforma senior X

Este comunicado é direcionado a todos os clientes que possuem ambientes de customização e contém customizações ativas (regras implementadas em funções lambda) em seus tenants. O intuito é informar que há uma alteração necessária sobre o runtime de execução das implementações destas customizações. Esta atualização é necessária devido a correções de bugs e, principalmente, atualizações de segurança que resolvem exploits conhecidos.

As customizações são implementações adicionais, em Node.js, feitas antes ou depois da execução de um serviço da plataform senior X mais detalhes neste link.

Algumas destas customizações estão utilizando versões anteriores ao nodejs20.x.

Para consultar a lista de customizações na plataforma que a sua conta possui, acesse: Tecnologia > Customização > Ambiente de Customização > Funções. Esta tela irá listar todas as customizações com suas respectivas versões do Node.js.

A versão atual suportada pela plataforma é a nodejs20.x. Solicitamos que os clientes façam a validação necessária e, utilizando esta mesma listagem, façam a atualização do runtime de suas respectivas customizações, avaliando possíveis impactos.

Estamos solicitando esta verificação diretamente aos nossos clientes, pois por se tratar de uma implementação exclusiva de cada cliente, não temos condições de identificar eventuais incompatibilidades que esta atualização de runtime poderá trazer para a customização.

Esta atualização é mandatória.

Por questões de segurança (eliminação de vulnerabilidades conhecidas), a atualização de runtime será feita para todos os clientes após a data de 17/02/2024.

Desta forma, para evitar possíveis problemas nas customizações, estamos antecipando a comunicação para permitir a avaliação de possíveis impactos e efetuar a adequação do código-fonte de sua customização (caso necessário).

A probabilidade de incompatibilidades advindas desta alteração de versão é baixa, mas como não sabemos dos detalhes das implementações e/ou bibliotecas adicionais utilizadas pelas customizações de nossos clientes, é prudente efetuar esta validação e, assim, evitar instabilidades com o sistema e/ou integrações em execução.

Caso necessário, orientamos nosso cliente a entrar em contato com o suporte da Senior. Lembramos que os canais da Senior, o setor de serviços ao cliente e a fábrica de software também estarão à disposição para auxiliá-los nesta empreitada.

Procedimentos para atualização manual:

Para consultar a lista de customizações acesse a tela Tecnologia > Customização > Regras > Funcionalidades (API)

DICA: Sugerimos desabilitar as customizações durante o processo de alteração do runtime.

Após desabilitar as customizações, acesse: Tecnologia > Customização > Ambiente de Customização > Funções. Esta tela irá listar todas as customizações com suas respectivas versões do Node.js.

Escolha a customização desejada e clique no botão Atualizar runtime.

Na sequência, abra o ambiente de customização: Tecnologia > Customização > Ambiente de Customização > Gerenciar ambiente.
Neste momento, o runtime da função lambda estará atualizada na AWS, mas não na cópia do ambiente Cloud 9. Para isso, abra o arquivo template.yaml da sua customização e ajuste a propriedade Runtime para nodejs20.x e salve o arquivo na sequência.

Caso você também possua configurações para depuração/testes locais, clique no combobox ao lado do botão Run e escolha a opção Edit Launch Configuration.

Procure pela mesma propriedade

runtime
e atualize para nodejs20.x, salvando o arquivo na sequência.

Após este procedimento, sua customização estará em sincronia com a versão constante na nuvem da AWS.

Sugerimos que efetue um teste local para garantir o funcionamento da customização antes de habilitá-la novamente na tela de “Funcionalidades (API)”. Para instruções de como efetuar um teste/depuração de uma lambda, consulte esta documentação.

Importante: Os passos anteriormente descritos precisam ser feitos manualmente pelo cliente (dono do ambiente Cloud 9). A Senior não possui as permissões necessárias para efetuar alterações devido a mecanismos de segurança do ambiente de customização.

Re-enfatizamos que, em caso de necessidade, busque auxílio com o suporte, canais credenciados ou setor de serviços da Senior.

Informações adicionais

Caso a sua lambda utiliza-se de algum serviço da AWS, note que ocorreram mudanças no formato de importar os pacotes da AWS.

Até nodejs16.x era assim

const AWS = require('aws-sdk');
const apigateway = new AWS.APIGateway();

A partir do nodejs20.x ficou assim:

const { APIGateway } = require("@aws-sdk/client-api-gateway")
const apigateway = new APIGateway();

Referências:
https://aws.amazon.com/pt/blogs/developer/modular-packages-in-aws-sdk-for-javascript/
https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/api-gateway/

Equipe de arquitetura da plataforma senior X