top of page
Foto do escritorRan Isenberg

AWS Lambda Smart Feature Flags - Agora com condições baseadas em tempo


AWS Lambda Smart Feature Flags - Agora com condições baseadas em tempo
Condições de tempo

Os sinalizadores de recurso alteram o comportamento do serviço em tempo de execução sem reimplantar o código do serviço. Os sinalizadores de recurso podem melhorar seu processo de CI/CD ao habilitar recursos que de outra forma não seriam possíveis, tornando-os um facilitador do DevOps e uma parte crucial da integração contínua. No entanto, isso requer uma implementação de sinalizadores de recurso flexível e fácil de usar, como o utilitário de sinalizadores de recurso do AWS Lambda Powertools e o AWS AppConfig.


Este blog aborda as condições de tempo recém-adicionadas ao utilitário de sinalizadores de recursos do AWS Lambda Powertools, de código aberto que contribuí e que utiliza o AWS AppConfig.

Você aprenderá a definir sinalizadores de recursos baseados em tempo que mudarão o comportamento do seu serviço em diferentes horários, horas e dias da semana.

 

Re: boné

Na minha postagem anterior, apresentei o valor agregado do uso de sinalizadores de recursos como parte do seu processo de CI/CD e mostrei um SDK de código aberto baseado em regras de sinalizadores de recursos que contribuí para o AWS Lambda Powertools que utiliza o AWS AppConfig.

Esta postagem pressupõe que você esteja familiarizado com o utilitário de sinalizadores de recursos do AWS Lambda Powertools e saiba implantar a configuração JSON no AWS AppConfig.


Caso você não esteja, fique à vontade para assistir minha palestra na conferência Conf42 DesSecOps 2022 no vídeo abaixo:



 

Caso de uso de sinalizadores de recursos baseados em tempo

Antes desse recurso, você podia definir regras com 12 opções de condições possíveis.

Você pode habilitar recursos para usuários que fazem parte de um nível, cliente, região e qualquer condição de comparação de strings ou numérica específica.

Entretanto, nenhuma delas incluiu quaisquer condições de tempo.

Tenho trabalhado com o AWS Lambda Powertools neste recurso há algum tempo para deixá-lo correto e de acordo com os padrões, e ele finalmente foi lançado na v2.7.0 e documentado aqui !


Existem três condições baseadas em tempo, e cada uma tem seu caso de uso:

  1. Condição de intervalo de data e hora

  2. Condição de dias úteis

  3. Condição de intervalos de horas


Você também pode misturá-las e combiná-las e usar qualquer outra condição das 12 condições anteriores para criar regras e casos de uso ainda mais complexos.

 

Intervalo de data e hora Condição Caso de uso

Vamos supor que você queira habilitar um sinalizador de recurso iniciando em uma data precisa e desligá-lo automaticamente em uma data precisa; por exemplo, você deseja habilitar um recurso de desconto de Natal somente durante a liquidação de Natal.

A configuração a seguir fornece esse comportamento:


Se você não especificar o fuso horário, o UTC será assumido. Se desejar especificar um fuso horário, você pode usar qualquer fuso horário IANA (conforme especificado originalmente no PEP 615 ) como parte da sua definição de regras. O Powertools cuida da conversão e calcula os timestamps corretos para você.

O código do manipulador da função Lambda se parece com isto:

Os sinalizadores de recursos do AWS Lambda Powertools verificarão o tempo atual da função Lambda em relação às condições START e END que você definiu para avaliar a regra.

 

Dias da semana Condição Caso de uso

Vamos supor que você queira habilitar um sinalizador de recurso durante dias úteis específicos; por exemplo, você deseja fornecer um desconto de fim de semana para um evento recorrente. Você pode definir dias específicos (não intervalos) para habilitar o recurso, neste caso, somente durante sábado e domingo.

A configuração a seguir fornece esse comportamento:



O código do manipulador da função Lambda se parece com isto:

Os sinalizadores de recursos do AWS Lambda Powertools verificarão o dia atual da função Lambda em relação às condições START e END que você definiu para avaliar a regra.

O mesmo formato de fuso horário IANA se aplica aqui também.

 

Intervalos de horas Condição Caso de uso


Vamos supor que você queira habilitar um sinalizador de recurso durante horários específicos todos os dias. Por exemplo, você deseja habilitar um recurso de happy hour entre 17:00 e 19:00 todos os dias como um evento recorrente.

A configuração a seguir fornece esse comportamento:

Vamos supor que você queira habilitar um sinalizador de recurso durante horas específicas todos os dias; por exemplo, você deseja habilitar um recurso de happy hour entre 17:00 e 19:00 todos os dias como um evento recorrente. Você pode adicionar outra condição, para os dias de fim de semana. A regra corresponderá somente se ambas as condições forem correspondidas, ou seja, somente quando em um sábado ou domingo E a hora for 17:00 a 19:00, horário de Nova York. A ordem das condições não importa.


A configuração a seguir fornece esse comportamento:


E em ambos os casos, o código do manipulador da função Lambda se parece com isto:


O mesmo formato de fuso horário da IANA também se aplica aqui.

bottom of page