Falaaaa pessoaaal! Hoje vou falar um pouco sobre AWS lambda.
O que é AWS?
AWS é um serviço de computação em nuvem feito pela Amazon. Ela foi criada iniciantemente para suprir as necessidades da própria empresa.
O que é AWS Lambda?
AWS Lamba é uma categoria de serverless do tipo FaaS, ele é um tipo de sistema que não precisa se configurar servidor para usá-lo, só precisa da sua regra de negócio.
Além desta facilidade AWS lambda tem algo bem legal, com ela você paga só o tempo de execução, não precisa pagar por algo que não usa. Vamos supor que você tenha um blog pessoal, você faz posts todas as noites. Como seus seguidores sabem disto, o seu blog tem muitos acessos à noite, mas durante o dia tem bem menos. Com AWS lambda você paga só quando eles fazem acesso, sem precisar pagar a parte da manhã o mesmo preço que pagaria na parte da noite. E também com AWS lambda você garante que seu site não ira cair, pois, ela é escalável, quanto mais pessoas acessam, mais lambdas vai sendo levantadas.
Ta… Mas o que eu preciso para usar essa tecnologia?
Para usar AWS lambda vamos precisar de uma conta na AWS, também vamos precisar de usar o AWS CLI, e por fim o SAM CLI (Como não é o foco deste artigo a instalação e configuração vou ter que pular esta parte, mas na própria documentação explica, é super de boa.).
Criando um projeto Lambda
Vamos para onde interessa, a como criar um projeto lambda!
Vamos entender o que o rolou.
Primeiro “sam init” com este comando ele cria um projeto lambda para gente, fazendo algumas perguntinhas.
Segundo, ele pergunta qual modelos queremos usar, se é um customizado ou um da AWS pronto, para este artigo eu selecionei “1” sendo um pronto.
Terceiro, ele pergunta qual modelo queremos usar, eu escolhi o “hello word” sendo o “1”.
Quarto, ele pergunta qual categoria de pacote e a linguagem, eu coloquei “y” porque vamos usar o padrão, mas tem como escolher entre outros também.
Quinto, ele pergunta se queremos usar o X-Ray tracing em nosso app, eu coloquei “n” para nosso projeto.
E por último ele nos pergunta qual sera o nome de nosso app.
Com isso ele cria uma base parecida com esta:
Como rodar o app?
Legal eu sei criar o app! Mas quero ver meu app rodando, para de enrolar ai neh!
Para rodarmos nosso app precisamos de apenas mais dois comandos!
O primeiro é o sam build, com esse comando o sam vai criar um arquivo que ele consegue ler depois para ser executado.
E por último o “sam local start-api”
Boaaaa! Agora nosso projeto já está rodando na máquina local! Podemos testar a aplicação e desenvolver ela.
Se abrirmos o endereço http://localhost:3000/hello já da para ver nosso hello world!
Subindo na AWS!
Mas beleza, isso aí eu consigo fazer na minha máquina usando flask de boa… Qual a novidade de usar o AWS Lambda?
Agora que vamos ver a magia! Vamos subir para nuvem! Para fazermos isto precisamos de apenas um comando e seguir o passo a passo do sam!
Vamos passar por cada passo do sam deploy.
O comando “sam deploy -g” quer dizer que vamos fazer um deploy guiado.
“Stack Name” Aqui ele esta perguntando o nome da sua stack que vai estar registrado na aws.
“AWS Region” aqui ele esta pedindo para digitar a região da aws que você quer que fique suas aplicação.
“Confirm changes before deploy” aqui ele quer saber se você vai querer que ele te peça uma confirmação de deploy quando aparecer as alteração. Caso coloque não ele vai pular a confirmação da linha 65.
“Allow SAM CLI IAM role creation” aqui ele pede permissão para criar uma função do SAM CLI IAM.
“Disable rollback” aqui ele esta perguntado que se você quer desativar o rollback, se você não desativar ele vai voltar para a aplicação anterior caso de erro.
“HelloWorldFunction may not have authorization defined, Is this okay” aqui ele esta perguntando se esta tudo bem se a sua função não tiver authorization definido.
“Save arguments to configuration file” aqui ele esta perguntando se você quer salvar um arquivo de configuração.
“Deploy this changeset?” como definimos na linha 14 que queria ter a confirmação antes do deploy, agora ele esta perguntando se pode fazer o deploy.
E pronto! Agora você tem uma aplicação funcionando sem muito custo e sem precisar criar um servidor, mexer com apache, SO… Agora você pode focar somente na sua regra de negócio!
Espero que esse artigo tenha te ajudado a entender mais sobre aws lambda. Obrigado!