O AWS Lambda é uma plataforma sem servidor para executar código sem gerenciar o hardware subjacente. É muito flexível e pode executar muitas cargas de trabalho diferentes, incluindo APIs C# completas por meio do ASP.NET Core.
índice
- Espere, você pode fazer isso em Lambda?
- Configuração ASP.NET
- Usando sua API
Espere, você pode fazer isso em Lambda?
Sim! Ele não apenas pode executar funções baseadas no runtime do .NET, mas também pode responder a solicitações usando todas as ferramentas fornecidas pelo ASP.NET. Você pode criar APIs que se comunicam com bancos de dados, como o AWS Managed RDS Database, tudo perfeitamente escalável executando funções sem servidor.
Embora as versões mais antigas do ASP.NET em execução no .NET Framework (o antigo tempo de execução somente do Windows) sejam conhecidas por serem complicadas, a nova pilha ASP.NET Core em execução no .NET Core 3.1 e o Novo .NET 5 fizeram melhorias significativas em desempenho e uso de memória.
Normalmente, isso não seria possível, pois o ASP.NET usa seu próprio servidor Web HTTP chamado Kestrel para responder às solicitações, o que não funcionaria, pois é tratado pelo tempo de execução do Lambda. No entanto, a AWS forneceu uma solução engenhosa para isso; Tradicionalmente, uma configuração ASP.NET normalmente envolve seu servidor web Kestrel por trás do IIS ou NGINX. Isso está falando sobre a estrutura ASP.NET para lidar com solicitações.
A AWS criou uma classe de proxy, Amazon.Lambda.AspNetCoreServer
, que cuida de tudo na frente do ASP.NET. Isso permite que você reutilize a maior parte do seu código fazendo uma ponte entre sua API e o Lambda.
Isso significa que você terá que usar o API Gateway, mas isso não é ruim, pois o API Gateway é muito útil para gerenciar sua API. Permite definir rigorosamente todas as regras que fazem sua API funcionar; obviamente, você precisará ter seu aplicativo ASP.NET configurado para lidar com todas as solicitações do API Gateway.
No entanto, esta pode não ser a melhor experiência de inicialização. Em comparação com linguagens de script leves como JavaScript e Python, os pacotes .NET têm uma sobrecarga muito maior. Existem alguns truques que você pode fazer para acelerar o desempenho e pode até pagar por eles com sua capacidade alocada. Caso contrário, você deve estar preparado para tempos de partida a frio de 1-2 segundos.
Isso não significa que cada execução leve 2 segundos para carregar a página. Uma vez feito o primeiro upload, tudo é inicializado e mantido "quente" no Lambda por 5 minutos. Se outra pessoa solicitar, a função tratará a solicitação como faria normalmente em um servidor real.
Configuração ASP.NET
A AWS inclui um construtor para projetos ASP.NET Lambda pré-configurados com código padrão e implementados no CloudFormation. Recomendamos começar aqui, experimentar e mover seu código de API, mas se você quiser incluí-lo em um projeto existente, a AWS também tem um guia para isso.
Você precisará ter a extensão AWS Toolkit for Visual Studio instalada, que pode ser gerenciada em "Extensões" na barra de menus. É isso que os modelos de projeto para aplicativos da AWS contêm.
Na tela inicial do Visual Studio, crie um novo projeto:
Você provavelmente deseja incluí-lo em sua solução, portanto, selecione "Solução em branco" em "Outro".
Você pode clicar com o botão direito do mouse no painel de arquivos para adicionar um novo projeto e selecionar "Aplicativo sem servidor da AWS" ou "Aplicativo sem servidor da AWS com testes" conforme desejado.
Certifique-se de que está em C#, a menos que queira usar F# por algum motivo.
Observe também que este é um projeto de "Aplicativo sem servidor", que gerencia todos os recursos por meio do serviço de infraestrutura como código da AWS, CloudFormation. Se você deseja apenas criar algumas funções do Lambda, há um projeto para isso também.
Você será levado a um submenu onde poderá escolher o tipo de projeto que deseja construir. Selecione "ASP.NET Core Web API" e crie o projeto.
Na maior parte, isso é configurado como um projeto ASP.NET padrão. A principal diferença é que o Program.cs
tradicional é substituído por LambdaEntryPoint.cs
como o ponto de entrada principal e contém a classe de correção que vincula o código ASP.NET AWS ao código ASP.NET AWS IWebHostBuilder
, que é usado para iniciar o aplicativo . .
Assim que estiver funcionando, você precisará copiar os drivers, modelos e serviços e substituir Startup.cs
por sua configuração.
Usando sua API
Para implementar este projeto, a AWS inclui opções de publicação integradas por meio da extensão AWS Toolkit. Clique com o botão direito do mouse no projeto e selecione "Publicar no AWS Lambda…"
Você deve fornecer um bucket para fazer upload e definir um nome para a distribuição do CloudFormation.
Levará um segundo para carregar e publicar, mas você poderá acessar o AWS Lambda Management Console para ver sua função. Ele terá um nome gerado automaticamente usando o nome da pilha do CloudFormation como prefixo.
Em Configurações > Acionadores, você pode ver todos os acionadores do API Gateway que chamam essa função e testá-la você mesmo usando o endpoint.
Você também pode ver a pilha completa do CloudFormation que é criada automaticamente usando sua configuração.
Se quiser alterá-lo, você precisará alterar o serverless.template
em seu projeto. Para obter mais informações, consulte nosso guia sobre como usar o AWS CloudFormation.
RELACIONADO: Criptografe sua infraestrutura da AWS com o CloudFormation
- O que são solicitações pull do Git e como você as usa?
- Como adicionar incorporações de mídia social a postagens do WordPress
descubra mais conteúdo
O que é um amplificador integrado?
Google Pixel Watch também tem detecção de queda, mas não até o próximo ano
As melhores xícaras de café aquecidas de 2022
Como automatizar seu iPhone com base na hora, atividade ou localização
"Isso deve ter sido antes do meu tempo"
Por que a NASA enviou Snoopy para a Lua? – Revisão geek
Deixe uma resposta Cancelar resposta
O que significa Lambda na AWS?
O AWS Lambda é um serviço de computação sem servidor que executa código em resposta a eventos e gerencia automaticamente os recursos de computação subjacentes.
Quais idiomas são compatíveis com o AWS Lambda?
P: Quais idiomas são compatíveis com o AWS Lambda ? O AWS Lambda oferece suporte nativo a Java, Go, PowerShell, Node. js, C#, Python e código Ruby. Além disso, ele fornece uma API de tempo de execução que permite que qualquer linguagem de programação adicional seja usada para criar as funções.
Como fazer um lambda na AWS?
Faça login no Console de gerenciamento da AWS e abra o console do AWS Lambda em https://console. aws.amazon.com/lambda/ .
- Escolha Criar função.
- Na página Criar função, escolha Autor do zero.
- Na página de função, faça o seguinte:
- Selecione Salvar.
Como acessar o Lambda?
Para acessar as funções do AWS Lambda , a Genesys Cloud deve ter permissão para usar recursos em sua conta da Amazon Web Services (AWS). Este procedimento explica como criar uma política, criar uma função do IAM na AWS e anexar essa função à política.