O AWS Lambda é uma plataforma de computação sem servidor, orientada para eventos, fornecida pela Amazon como parte dos Amazon Web Services. Este serviço executa código em resposta a eventos e gere automaticamente quaisquer recursos de computação necessários. Foi introduzido em novembro de 2014.
Soa bem? Não para Rubi Desenvolvedores. Até 29 de novembro de 2018, Ruby não era suportado para iniciar a revolução serverless. Mas então, Jets veio, e tudo mudou.
Como o site oficial do Ruby on Jets diz com orgulho:
"O Ruby on Jets permite-lhe criar e implementar serviços sem servidor com facilidade, e para colar perfeitamente AWS em conjunto com a mais bela linguagem dinâmica: Ruby. Ele inclui tudo o que é necessário para criar uma API e implantá-la no AWS Lambda. O Jets aproveita o poder do Ruby para tornar o serverless agradável para todos"
De facto, trabalhar com Jets, especialmente para alguém que tem alguma experiência em Carris ou Sinatra, torna-se relativamente fácil e agradável.
Para provar isso, neste artigo vamos construir uma aplicação serverless simples.
Preparado?
Aplicação do edifício
O que vamos fazer é criar uma aplicação Jets muito simples. Isto irá fornecer nós com algumas informações básicas de como criar rotas, controladores e ações, e como fazer o deploy no AWS Lambda. Para manter as coisas simples e fáceis, vamos usar apenas um endpoint, que retornará uma piada aleatória do Chuck Norris.
Instalação
Antes de mais, vamos instalar a gem Jets globalmente. No seu console, digite:

Em seguida, crie novos Jets projeto com:

(As opções -mode api e -no-database não são necessárias, apenas vão acelerar um pouco a instalação, uma vez que não precisamos de nenhuma base de dados ou vistas aqui).
Agora, no seu diretório de piadas de chuck-norris corra:

Entrada localhost:8888 no seu browser, deverá ver algo como isto:

Se é isto que vê - parabéns, fez tudo corretamente!
Controlador e rotas
O que estamos prestes a fazer agora é criar o nosso primeiro controlador Jets.
Na consola, digite:

Isso criará nosso JokesController com uma ação dentro - create. Por defeito, os Jets criam a rota do tipo "get" para a ação, pelo que temos de a modificar.
Em rotas.rb alteração de ficheiro obter "piadas/criar" para enviar "piadas", para: "piadas#create".

Obtenção do pedido
Para ir buscar algumas coisas do Chuck Norris, precisamos de fazer uma chamada para a Api John Doe. Depois, vamos responder com json contendo a piada buscada.

Testes a nível local
Podemos executar isso localmente para testar se estamos obtendo a resposta esperada. O que vamos fazer é fazer uma solicitação POST para nosso servidor local usando enrolar.
(Atenção: certifique-se de que o seu servidor ainda está a funcionar).

Implantar
Desde que tenha uma conta AWS com as políticas adequadas (pode encontrá-las na documentação oficial do Jets), a última coisa que precisa de fazer é simplesmente executar:

Isto irá carregar a nossa aplicação para o AWS.
Quando a implementação estiver concluída, ser-lhe-á fornecido o seu ponto de extremidade do gateway da API (provavelmente a última linha na consola).
Teste a sua aplicação AWS Lambda
Agora, finalmente, está na altura de testar a nossa aplicação implementada!
Podemos fazer isso usando curl novamente, mas agora substituindo localhost pelo endpoint do gateway da API, que nos foi fornecido.

Resumo
Isso é tudo, pessoal! Espero que tenham gostado deste breve olhar sobre Ruby on Jets e o mundo serverless.
Ler mais: