<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Eduardo Garcia</title>
    <description>The latest articles on DEV Community by Eduardo Garcia (@eudu4rdo).</description>
    <link>https://dev.to/eudu4rdo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3413166%2F39d0c44d-c8b4-40fd-acd7-685121d7452b.jpg</url>
      <title>DEV Community: Eduardo Garcia</title>
      <link>https://dev.to/eudu4rdo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eudu4rdo"/>
    <language>en</language>
    <item>
      <title>AWS Lambda Durable Functions: primeiras impressões</title>
      <dc:creator>Eduardo Garcia</dc:creator>
      <pubDate>Wed, 04 Mar 2026 02:06:55 +0000</pubDate>
      <link>https://dev.to/eudu4rdo/aws-lambda-durable-functions-primeiras-impressoes-29lj</link>
      <guid>https://dev.to/eudu4rdo/aws-lambda-durable-functions-primeiras-impressoes-29lj</guid>
      <description>&lt;p&gt;Arquitetura serverless é uma pauta que não para de crescer, especialmente quando falamos da &lt;strong&gt;Amazon Web Services&lt;/strong&gt;. Nos últimos anos, a plataforma vem apresentando uma série de inovações pensadas para escalabilidade, resiliência e redução da complexidade operacional, permitindo que equipes foquem cada vez mais na lógica de negócio.&lt;/p&gt;

&lt;p&gt;Durante muito tempo, um dos principais limites do modelo serverless esteve associado ao tempo máximo de execução das funções. No caso do &lt;strong&gt;AWS Lambda&lt;/strong&gt;, esse limite sempre foi de 15 minutos, o que naturalmente restringia o tipo de problema que poderia ser resolvido diretamente com funções.&lt;/p&gt;

&lt;p&gt;Nos últimos meses, a AWS passou a explorar de forma mais madura um conceito já conhecido em outras plataformas: &lt;strong&gt;orquestrações duráveis&lt;/strong&gt;. Neste artigo, utilizo o termo Durable Functions para me referir a um padrão de arquitetura(e não a um serviço específico) que permite a construção de workflows de longa duração sobre o Lambda, capazes de se estender por dias, meses ou até um ano, sem que nenhuma função precise permanecer em execução contínua.&lt;/p&gt;

&lt;h3&gt;
  
  
  O problema que as orquestrações duráveis resolvem
&lt;/h3&gt;

&lt;p&gt;Em fluxos tradicionais, a execução ocorre de forma contínua e está diretamente limitada ao ciclo de vida da função. Isso funciona bem para tarefas curtas, mas se torna um obstáculo em cenários que exigem mais controle e maior tempo de processamento, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pipelines de dados long-running;&lt;/li&gt;
&lt;li&gt;fluxos que envolvem múltiplas integrações externas;&lt;/li&gt;
&lt;li&gt;processos que dependem de interação humana;&lt;/li&gt;
&lt;li&gt;workloads relacionados a IA e machine learning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para atender esse tipo de necessidade, o padrão de Durable Functions introduz o conceito de &lt;strong&gt;execução orquestrada baseada em eventos&lt;/strong&gt; e estado persistente. Na prática, isso significa que um processo pode avançar, pausar, aguardar eventos externos e ser retomado posteriormente, sempre preservando seu contexto.&lt;/p&gt;

&lt;p&gt;Importante destacar: a função Lambda &lt;strong&gt;não fica rodando por todo esse período&lt;/strong&gt;. O que é durável é o &lt;strong&gt;workflow&lt;/strong&gt;, não a execução contínua.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como funciona a orquestração durável na prática
&lt;/h3&gt;

&lt;p&gt;O funcionamento desse padrão se baseia em alguns pilares fundamentais do ecossistema serverless:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Execuções curtas e idempotentes;&lt;/li&gt;
&lt;li&gt;Persistência de estado fora da função;&lt;/li&gt;
&lt;li&gt;Comunicação via eventos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cada passo do fluxo é disparado por eventos e, ao finalizar sua execução, a função persiste o estado necessário para continuidade do processo. Um identificador único da orquestração garante que, ao receber um novo evento, o fluxo seja retomado exatamente do ponto correto.&lt;/p&gt;

&lt;p&gt;Esses eventos podem ser emitidos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pela própria aplicação;&lt;/li&gt;
&lt;li&gt;por outros serviços;&lt;/li&gt;
&lt;li&gt;ou até por usuários externos, como em um cenário de aprovação manual.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essa abordagem permite construir workflows extremamente flexíveis, sem violar as premissas do modelo serverless.&lt;/p&gt;

&lt;h3&gt;
  
  
  Durable Functions vs Step Functions
&lt;/h3&gt;

&lt;p&gt;Nesse ponto, surge naturalmente a comparação com o &lt;strong&gt;AWS Step Functions&lt;/strong&gt;. Embora ambos resolvam problemas de orquestração, a principal diferença está no &lt;strong&gt;nível de controle via código&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Durable Functions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fluxo definido integralmente em código;&lt;/li&gt;
&lt;li&gt;Maior flexibilidade e dinamismo;&lt;/li&gt;
&lt;li&gt;Versionamento do workflow junto à aplicação;&lt;/li&gt;
&lt;li&gt;Ideal para lógicas complexas e altamente customizadas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step Functions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fluxo declarativo, baseado em estados;&lt;/li&gt;
&lt;li&gt;Excelente visualização e observabilidade;&lt;/li&gt;
&lt;li&gt;Menor complexidade operacional;&lt;/li&gt;
&lt;li&gt;Ótima escolha para fluxos previsíveis e bem definidos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ou seja, Durable Functions &lt;strong&gt;não substituem&lt;/strong&gt; o Step Functions. Elas atendem a um conjunto diferente de problemas, onde o controle fino do fluxo diretamente no código é um requisito.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arquitetura baseada em eventos
&lt;/h3&gt;

&lt;p&gt;A execução baseada em eventos é um conceito já bem conhecido por quem trabalha com serverless. Em orquestrações duráveis, ela se torna ainda mais central.&lt;/p&gt;

&lt;p&gt;Serviços como &lt;strong&gt;Amazon EventBridge&lt;/strong&gt; permitem desacoplar completamente os passos do workflow, enquanto bancos como &lt;strong&gt;Amazon DynamoDB&lt;/strong&gt; podem ser usados para persistir estado e metadados da execução.&lt;/p&gt;

&lt;p&gt;Esse modelo garante:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;alta resiliência;&lt;/li&gt;
&lt;li&gt;recuperação automática em caso de falhas;&lt;/li&gt;
&lt;li&gt;escalabilidade praticamente ilimitada.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Evolução do ecossistema e perspectivas futuras
&lt;/h3&gt;

&lt;p&gt;Com a evolução constante dos runtimes suportados pelo Lambda (importante ressaltar que até o momento Durable Functions aceita apenas linguagem Python e Node.js) e os avanços contínuos da biblioteca boto3, é natural que padrões mais avançados de orquestração via código ganhem cada vez mais espaço dentro do ecossistema AWS.&lt;/p&gt;

&lt;p&gt;À medida que aplicações serverless amadurecem, cresce também a necessidade de fluxos mais longos, controlados e resilientes — e é exatamente nesse cenário que o conceito de Durable Functions se encaixa.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;Durable Functions representam um passo importante na evolução da arquitetura serverless na AWS. Elas não surgem como substitutas de soluções já consolidadas, mas como uma alternativa poderosa para cenários que exigem maior controle, flexibilidade e duração de execução.&lt;/p&gt;

&lt;p&gt;Entender quando aplicar esse padrão (e quando optar por soluções mais simples) é fundamental para tirar o máximo proveito do ecossistema serverless.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fontes:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/pt/lambda/lambda-durable-functions/" rel="noopener noreferrer"&gt;Lambda Durable Functions Introducing&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/durable-functions.html" rel="noopener noreferrer"&gt;Docs Lambda&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>serverless</category>
      <category>lambda</category>
    </item>
    <item>
      <title>AWS Lambda + Secrets Manager</title>
      <dc:creator>Eduardo Garcia</dc:creator>
      <pubDate>Tue, 21 Oct 2025 21:29:11 +0000</pubDate>
      <link>https://dev.to/eudu4rdo/aws-lambda-secrets-manager-2o6f</link>
      <guid>https://dev.to/eudu4rdo/aws-lambda-secrets-manager-2o6f</guid>
      <description>&lt;p&gt;Funções &lt;strong&gt;AWS Lambda&lt;/strong&gt; são opções extremamente práticas que simplificam todo o processo de disponibilização de aplicações &lt;em&gt;serverless&lt;/em&gt;.&lt;br&gt;
Ao mesmo tempo que geram praticidade, também podem criar péssimos hábitos em nós, desenvolvedores.&lt;/p&gt;

&lt;p&gt;Um desses maus costumes é a exposição de &lt;strong&gt;chaves de API&lt;/strong&gt; externas ou &lt;strong&gt;conexões de banco de dados&lt;/strong&gt; diretamente dentro do corpo de uma função Lambda. São incontáveis as vezes em que encontrei códigos semelhantes ao mostrado abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpba40w502myql3h3unta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpba40w502myql3h3unta.png" alt="Bad practice" width="510" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nem é preciso dizer o quão ruim é manter suas configurações assim! Essa exposição de chaves é extremamente prejudicial por alguns fatores, dentre eles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerabilidade da aplicação:&lt;/strong&gt; qualquer vazamento de código, seja em um repositório público ou por um ataque, expõe suas credenciais ao mundo externo;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Falta de escalabilidade:&lt;/strong&gt; caso seja necessário trocar de conexão com a base ou atualizar um par de API Keys, será preciso publicar novamente o código para que ele funcione. Em uma única Lambda isso é simples, mas quando falamos de funções críticas com múltiplas conexões, a situação complica.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pensando nesses pontos, a melhor forma de manter suas chaves seguras é &lt;strong&gt;externalizar o armazenamento e o gerenciamento&lt;/strong&gt; delas.&lt;br&gt;
E é exatamente para isso que a AWS disponibiliza o &lt;strong&gt;AWS Secrets Manager&lt;/strong&gt;, um serviço voltado para o controle e a centralização de credenciais de forma segura.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. Configurando um conjunto de chaves na AWS
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Em sua conta da AWS, acesse o serviço &lt;a href="https://us-east-1.console.aws.amazon.com/secretsmanager/landing" rel="noopener noreferrer"&gt;AWS Secrets Manager&lt;/a&gt; e escolha a opção &lt;strong&gt;“Store a new secret”&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;Em &lt;strong&gt;Secret Type&lt;/strong&gt;, selecione &lt;strong&gt;“Other type of secret”&lt;/strong&gt; e preencha todas as chaves necessárias. Para este exemplo, foram criadas apenas duas. Em seguida, pressione &lt;strong&gt;Next&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhusii4h2n8t62b5xfp5b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhusii4h2n8t62b5xfp5b.png" alt="Secret Configuration" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na próxima tela, escolha um nome descritivo para o conjunto de chaves.&lt;br&gt;&lt;br&gt;
Depois, basta confirmar as etapas seguintes. O conjunto de &lt;em&gt;secrets&lt;/em&gt; ficará disponível instantaneamente e pode ser acessado no console em &lt;strong&gt;Overview → Retrieve Secret Value&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cx41aby5sbctdhiubev.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cx41aby5sbctdhiubev.png" alt="Secret Informations" width="800" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Simples assim: suas &lt;em&gt;secrets&lt;/em&gt; estão criadas e já podem ser usadas — seja em aplicações via &lt;strong&gt;SDK&lt;/strong&gt;, seja através do &lt;strong&gt;CLI&lt;/strong&gt;.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2. Buscando as chaves dentro da Lambda
&lt;/h3&gt;

&lt;p&gt;Dentro de uma função Lambda, o uso das chaves é muito simples. No exemplo abaixo, estou utilizando o framework &lt;strong&gt;AWS SAM&lt;/strong&gt;, configurado com &lt;strong&gt;Python 3.10&lt;/strong&gt; — uma versão que já inclui o SDK da AWS.&lt;/p&gt;

&lt;p&gt;Com o pequeno bloco de código a seguir, é possível acessar as chaves configuradas:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyf60q834hv0eckq5d8s0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyf60q834hv0eckq5d8s0.png" alt="Secret Usage on AWS Lambda" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O parâmetro principal da função &lt;code&gt;parameters.get_secret()&lt;/code&gt; é o &lt;strong&gt;nome&lt;/strong&gt; atribuído ao conjunto de chaves. Os outros dois parâmetros são opcionais: um define o formato dos dados retornados e o outro o tempo de cache em segundos.&lt;/p&gt;

&lt;p&gt;Tudo certo, certo? Quase!&lt;br&gt;
Provavelmente, ao rodar sua Lambda — seja no ambiente de desenvolvimento ou em produção — você receberá um erro de &lt;strong&gt;permissão negada&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Isso acontece porque é necessário conceder à função permissão para &lt;strong&gt;ler chaves no Secrets Manager&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Essa permissão pode ser adicionada diretamente no &lt;strong&gt;template.yaml&lt;/strong&gt; (no caso do AWS SAM), ou atribuída ao usuário/role que executa a função localmente via &lt;strong&gt;CLI&lt;/strong&gt;. Na imagem abaixo, temos um exemplo de política que permite à função acessar o Secrets Manager:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3aamy1x0nj2kipq3m74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3aamy1x0nj2kipq3m74.png" alt="Secrets Manager policy" width="660" height="340"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Conclusão
&lt;/h3&gt;

&lt;p&gt;Com esse setup feito, você está pronto para usar suas chaves de forma segura em funções Lambda! O uso do &lt;strong&gt;AWS Secrets Manager&lt;/strong&gt; traz um ganho significativo de &lt;strong&gt;controle e escalabilidade&lt;/strong&gt;, centralizando as credenciais dentro de um ambiente seguro e fácil de manter.  &lt;/p&gt;

&lt;p&gt;Além disso, o serviço permite configurar &lt;strong&gt;rotação automática de chaves&lt;/strong&gt;, reduzindo o risco de vazamentos e simplificando ainda mais o gerenciamento de credenciais sensíveis.  &lt;/p&gt;

&lt;p&gt;Vale lembrar que, como todo serviço da AWS, o Secrets Manager possui um custo.&lt;br&gt;&lt;br&gt;
Antes de implementá-lo em larga escala, consulte os valores &lt;a href="https://aws.amazon.com/pt/secrets-manager/pricing/" rel="noopener noreferrer"&gt;nesta página&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Abaixo está o link para meu repositório no GitHub, onde disponibilizo um projeto de exemplo com o uso do Secrets Manager em uma função Lambda criada com AWS SAM:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/Eudu4rdo/sam-lambda-pipeline" rel="noopener noreferrer"&gt;Eudu4rdo/AWS-SAM-Projects&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Em resumo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ao adotar o Secrets Manager, você não apenas protege suas credenciais, mas também eleva o nível de segurança, profissionalismo e maturidade do seu ambiente &lt;em&gt;serverless&lt;/em&gt;.&lt;/p&gt;

</description>
      <category>lambda</category>
      <category>security</category>
      <category>serverless</category>
      <category>programming</category>
    </item>
    <item>
      <title>Deploy de funções AWS Lambda com GitHub Actions usando Organizations</title>
      <dc:creator>Eduardo Garcia</dc:creator>
      <pubDate>Tue, 05 Aug 2025 00:34:24 +0000</pubDate>
      <link>https://dev.to/eudu4rdo/deploy-de-funcoes-aws-lambda-com-github-actions-usando-organizations-1p8a</link>
      <guid>https://dev.to/eudu4rdo/deploy-de-funcoes-aws-lambda-com-github-actions-usando-organizations-1p8a</guid>
      <description>&lt;p&gt;Nos últimos meses, tenho trabalhado bastante com funções serverless na AWS. Para isso, venho utilizando o framework AWS SAM, que tem tornado o desenvolvimento com Lambda muito mais prático.&lt;/p&gt;

&lt;p&gt;Graças ao modelo já estruturado do SAM, é possível disponibilizar uma API simples em questão de minutos. No entanto, como nada é perfeito, enfrentei uma dificuldade comum: criar um ambiente de testes sem impactar a produção.&lt;/p&gt;

&lt;p&gt;A ideia de manter dois ambientes separados, mas com a capacidade de testar diferentes versões da API de forma segura, me fez buscar alternativas. Conversando com um amigo, ele sugeriu uma abordagem que resolveu meu problema de forma elegante: usar múltiplas contas da AWS com o AWS Organizations, combinadas com automação via GitHub Actions.&lt;/p&gt;

&lt;p&gt;O AWS Organizations é um recurso da própria AWS que permite gerenciar várias contas em uma única estrutura, com controle centralizado de faturamento e permissões. Isso facilita a segmentação de ambientes e aumenta a segurança, mantendo produção e testes bem separados.&lt;/p&gt;

&lt;p&gt;Com as contas criadas, meu primeiro passo foi gerar em cada uma delas um usuário com permissão para realizar deploys de funções Lambda. Em seguida, salvei as credenciais (ACCESS_KEY e SECRET_KEY) e configurei-as como secrets no repositório do GitHub.&lt;/p&gt;

&lt;p&gt;Dessa forma, automatizei todo o processo de deploy com GitHub Actions. A pipeline agora possui um fluxo que ao ser iniciado, solicita o ambiente desejado e realiza o deploy na conta e ambiente apropriados — sem riscos à produção.&lt;/p&gt;

&lt;p&gt;Para quem quiser ver isso funcionando na prática, deixo aqui o link para o repositório com o exemplo completo:&lt;/p&gt;

&lt;p&gt;🔗&lt;a href="https://github.com/Eudu4rdo/sam-lambda-pipeline" rel="noopener noreferrer"&gt;SAM Deploy With Pipeline&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A implementação foi simples, e o ganho de confiabilidade, segurança e agilidade no meu fluxo de trabalho foi enorme. Recomendo fortemente para quem está enfrentando os mesmos desafios!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>githubactions</category>
      <category>lambda</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
