O que são funções Lambda e como você as utiliza?
As funções do AWS Lambda são uma maneira de executar código sem provisionar ou gerenciar seus próprios servidores. Em vez de executar um aplicativo sempre on-line, eles executam uma única função na nuvem, que pode ser acionada em resposta a eventos da API ou outros eventos em sua conta da AWS.
Como você usa as funções do Lambda?
O Lambda é um serviço de computação, simples e simples, e provavelmente é o mais simples de todos. Em vez de alugar um servidor com um número específico de núcleos e quantidade de RAM, basta fazer o upload do seu código e executar a função. Normalmente, você não o executa manualmente; em vez disso, você o configurará para ser executado com base em ações de outros serviços da AWS. Por exemplo, executando uma função para redimensionar imagens sempre que um novo arquivo é colocado no S3 (um método usado pelo Seattle Times com grande efeito) ou consultando um banco de dados sempre que uma solicitação é enviada ao API Gateway.
Os recursos do computador são automaticamente atribuídos à função em execução e ela usará a quantidade de memória necessária enquanto a tarefa continuar. Você é simplesmente cobrado com base no número de chamadas de função e na quantidade de memória que cada chamada usa.
Isso torna o Lambda altamente flexível para uso como back-end. Aplicações tradicionais são principalmente monolíticas; você tem um servidor (ou uma frota deles) executando seu aplicativo. Você pode ter servidores separados para hospedagem na web, bancos de dados e outras coisas, mas muitos aplicativos são criados dessa maneira - um grande executável, muitas partes móveis.
Com tudo tão interconectado, e sem ordem estrita, isso pode ficar confuso muito rápido. Também é mais difícil escalar efetivamente; se você achar que uma parte do seu aplicativo é o gargalo, pode ser difícil eliminá-lo sem redimensionar o aplicativo inteiro e aumentar significativamente sua fatura da AWS no processo.
Em vez disso, você pode eliminar completamente o gargalo e movê-lo para o Lambda. Afinal, o Lambda não se importa se você executa sua função dez vezes por mês, ou dez milhões de vezes por mês.
Isso permite que o Lambda seja altamente eficiente e, quando implementado corretamente, pode economizar muito dinheiro. Adam Pash, da Postlight, conseguiu reduzir sua conta mensal da AWS de mais de US $ 10.000 para apenas US $ 370, apenas mudando para o Lambda e otimizando o uso da memória.
Embora não seja tão drástico ou fácil para todos os aplicativos, o Lambda tem alguns grandes benefícios que o tornam uma parte crucial da linha de serviços de computação da AWS.
Para aplicativos não essenciais, também apresenta uma maneira muito barata de executar um aplicativo que precisa fazer solicitações de API. Por exemplo, você pode servir um aplicativo Web estático sem nenhum servidor, armazenando seu site no S3, servindo-o por meio do CloudFront e conectando-se a um back-end Lambda por meio do API Gateway que se comunica com uma tabela do DynamoDB.
Quanto eles custam?
Como a maioria dos preços da AWS, o preço da Lambda é muito maior do que o pago conforme o uso. modelo. Em vez de pagar um preço fixo por todo o servidor, você pagará apenas a quantidade exata de recursos que seu aplicativo está usando - você nunca está pagando pelo tempo ocioso, nem mesmo um segundo. Obviamente, isso torna o Lambda bastante eficiente, além de poder eliminar gargalos em aplicações monolíticas.
As cobranças deLambda são as seguintes, para us-east-1:
- US $ 0,20 por 1 milhão de solicitações
- US $ 0,000016667 por cada segundo de GB
A primeira cobrança faz mais sentido; se você tiver 100 milhões de solicitações em um mês, estará pagando uma taxa de US $ 20 por isso.
A segunda cobrança é muito mais confusa. Basicamente, você é cobrado com base no uso da memória de suas funções, pois esse geralmente é o fator limitante da AWS. Se sua função inicializar, alocar 1024 MB de RAM e executar por um único segundo, você será cobrado $ 0,000001667 por isso. Esse é um número bastante baixo, mas, em 1 milhão de solicitações, é de US $ 1,666.
Naturalmente, você desejará escolher um tempo de execução que seja eficiente em memória. O NodeJS é comumente usado, pois é bastante leve em comparação com tempos de execução como Java. No entanto, o Java pode ser mais rápido para tarefas que demoram mais para serem concluídas e, como você não paga pelo tempo gasto na inicialização do tempo de execução (ou seja, uma partida a frio), não é sempre tão ruim quanto parece no papel.
É tudo um jogo de equilíbrio, mas você deseja minimizar duas coisas no uso da memória e no tempo gasto executando a função. Não há cobrança explícita para funções em execução mais longas, mas você é cobrado por segundo, por GB, portanto, uma função de 256 MB que é executada por dois segundos custará o mesmo que uma função de 512 MB que é executada por um.
Primeiros passos
Entre na sua conta da AWS e acesse o Lambda Management Console.
Existem duas guias principais aqui. O primeiro é para aplicativos; Os aplicativos Lambda gerenciam várias funções e são implementados especificamente automaticamente usando um modelo SAM. Isso permite que eles sejam rastreados no Git e na versão gerenciada, o que ajuda imensamente ao trabalhar com centenas de funções.
A segunda guia é para funções individuais. Se você está apenas criando uma função Lambda autônoma ou está apenas brincando para sentir a sensação, deve começar aqui e criar uma função a partir do zero, pois é muito mais simples.
Você pode criar uma nova função a partir das “ Funções ” guia:
Você tem algumas opções aqui. Você pode criar a função totalmente do zero, o que inicializará a função com nada mais que um olá mundo. Você também pode optar por usar um modelo pré-construído ou até mesmo baixar uma função do repositório de aplicativos sem servidor Lambda.
Se você estiver criando por conta própria, terá que escolher um tempo de execução. O Lambda tem alguns por onde escolher:
Você também pode trazer seu próprio tempo de execução para executar o idioma desejado.
Depois de criado, você pode editá-lo na página da função. A função NodeJS padrão exporta um manipulador, chamado sempre que a função responde a eventos.
Recomendamos o uso do IDE Cloud9 da AWS para trabalhar com funções Lambda. É um IDE baseado na Web, construído no mesmo editor usado no editor de funções padrão, mas com o benefício adicional de testes e depuração muito mais fáceis.
Se você deseja que sua função responda às solicitações de API, o método mais fácil de configurar isso é com o API Gateway. Você pode criar uma nova API e fazer com que ela direcione determinados pontos de extremidade diretamente para uma função Lambda específica, que manipulará a solicitação e retornará uma resposta.
Caso contrário, você pode especificar um gatilho no “ Designer ” na parte superior, como sempre que um objeto é colocado em um determinado balde S3. Você também pode especificar um destino para o qual os resultados serão enviados, como uma fila SQS, um tópico SNS ou outra função Lambda.
A função Lambda será executada com os privilégios dados pela função de execução que foi criada para ela. Se você estiver acessando outros recursos da AWS, precisará dar permissão para fazê-lo no IAM Management Console.
Via: How to Geek
Nenhum comentário