Introdução 
  Funções sem servidor são pedaços de código do lado do servidor executados em servidores em nuvem sem a necessidade de um back-end real como parte da  computação sem servidor arquitetura . Essas funções são executadas sob demanda e requerem a ajuda de plataformas de nuvem como AWS, Azure ou Vercel para ajudar a gerenciar as complexidades de orquestrar e manter servidores dedicados.   As funções sem servidor (também conhecidas como funções de nuvem ou funções como serviço (FaaS)) podem ser usadas para enviar e-mails, realizar consultas de banco de dados, lidar com autenticação de usuário, gerenciar envios de formulários e muito mais. Para desenvolvedores de front-end, há muitos  benefícios e compensações em deixar de usar o servidor .   Para executar com sucesso uma função sem servidor, é necessário trabalhar dentro dos limites técnicos da plataforma em nuvem que será usada para implantação. Para este tutorial, vamos nos concentrar no Vercel. As funções sem servidor do Vercel são escritas com  idiomas de back-end compatíveis , como  Node.js , em  frameworks front-end compatíveis , como  React . Essas funções recebem uma solicitação HTTP, atuam sobre ela e fornecem uma resposta dentro de um tempo limite estipulado, dependendo do plano do projeto.    Vercel  é uma plataforma em nuvem para front-ends estáticos e funções sem servidor. Com ele, você pode hospedar sites e aplicativos da web que são implantados instantaneamente e escalonados automaticamente.   O tratamento de funções sem servidor da Vercel é top de linha por muitos motivos, o primeiro deles sendo a facilidade de uso. Há uma linha de base padrão familiar e sensata para suas funções que torna a curva de aprendizado mínima. Vercel também usa um   O Vercel também permite que você personalize coisas como versões de tempo de execução, memória e execução e monitore suas funções e solicitações nos logs de monitoramento que vêm com o painel do Vercel. Caso um tempo de execução não seja compatível, o Vercel permite que você use  tempos de execução da comunidade  ou  crie um você mesmo .   Finalmente, o  Vercel CLI  replica o ambiente de produção para você localmente, para que você possa trabalhar com suas funções sem servidor sem a necessidade de reimplante cada vez que uma mudança for feita.   Sem qualquer configuração, implantar suas funções sem servidor no Vercel é tão fácil quanto criar um diretório   Uma função Node.js sem servidor básica pode ser semelhante a:   Digamos que você criou um arquivo   Aqui estão mais alguns exemplos de como seu arquivo e endpoint HTTP gerado ficarão, assumindo que sua   Neste ponto, você já pode acessar funções sem servidor por nome de arquivo. Se você tinha um arquivo   Para tornar as coisas ainda mais simples, as funções sem servidor podem ser nomeadas dinamicamente e acessadas por meio de  segmentos de caminho . Isso é feito envolvendo o nome do arquivo entre colchetes, como em   Os argumentos   Para obter uma explicação completa de todos os auxiliares disponíveis, verifique a  documentação de auxiliares do Node.js .   Normalmente, você precisa implantar suas funções sem servidor no Vercel cada vez que uma alteração é feita. O Vercel atende às suas necessidades de desenvolvimento local, replicando o ambiente de produção no Vercel com seu host local usando a CLI do Vercel.   Para instalar o Vercel CLI, execute o comando:   O Vercel CLI expõe uma lista de  comandos , incluindo   Frameworks como  Next.js  têm suporte nativo para funções sem servidor, então você não precisa usar o comando   Além disso, a execução de seu aplicativo Next.js escuta automaticamente suas funções sem servidor. Para fazer isso manualmente, use a opção   Como você deve saber, Next.js tem um  sistema de roteamento baseado em arquivo , o que significa que cada novo diretório e/ou arquivo no diretório   Embora tenhamos mencionado anteriormente que os diretórios   Para estruturas que não incluem suporte nativo, incluindo Gatsby e Vue,   Para começar, crie um diretório   Quando você concluir o processo com sucesso, Vercel fará algumas coisas automaticamente, incluindo:   Para obter uma lista de aplicativos de exemplo de funções sem servidor que você pode implantar no Vercel, verifique este  repositório GitHub .   Você pode configurar variáveis ambientais diretamente das configurações do seu projeto no painel do Vercel por meio de uma GUI ou por meio da CLI do Vercel.   Fazer isso por meio de uma GUI é bastante simples:   Com Vercel CLI, você pode usar o comando   Independentemente do caminho que você decidir seguir, a adição de variáveis ambientais se resume a três recursos básicos: o tipo de variável ambiental (texto simples, secreto, fornecido pelo sistema); o nome e o valor da variável ambiental; e os ambientes nos quais você deseja disponibilizar a variável (produção, visualização, desenvolvimento ou todos os anteriores).   Consulte a  documentação de variáveis ambientais  para uma explicação completa.   As funções sem servidor são executadas na nuvem com a ajuda de plataformas em nuvem. Embora seguir a sintaxe estabelecida de uma função sem servidor seja uma necessidade absoluta, também existem outras advertências e detalhes técnicos que você precisa saber. E embora o Vercel forneça um bom ponto de partida e padrões razoáveis para suas funções sem servidor, é sempre bom saber como fazer o ajuste fino de acordo com suas necessidades.   Oficialmente, o Vercel oferece suporte a quatro idiomas de back-end ou tempos de execução oficiais:   Também há suporte para  tempos de execução da comunidade  como  Deno ,  PHP  e Ferrugem , etc. Como alternativa, você também pode  desenvolver seu próprio tempo de execução .   As funções sem servidor têm um  tempo limite de execução padrão  dentro do qual devem responder a uma solicitação HTTP de entrada. Para funções sem servidor de longa execução que não respondem à solicitação HTTP dentro do tempo limite de execução padrão, um código de status de erro de resposta HTTP 502 (Gateway inválido) é retornado com o código de erro   Alguns nomes de variáveis de ambiente são reservados para que você não possa reutilizá-los. Veja a lista completa na  documentação de variáveis ambientais reservadas .   Existe uma lista finita de  limites  a serem considerados. Isso inclui o  limite de tamanho de carga útil de função sem servidor,  que concede o tamanho máximo de carga útil de 5 MB para a solicitação HTTP ou corpo de resposta e a  implantação de funções sem servidor em várias regiões , que é limitado com base no seu plano.   Rotas de API são rotas geradas para funções sem servidor. Eles são  mesma origem  por padrão porque não especificam  cabeçalhosCORS . Existem várias maneiras de  ativar o CORS no Vercel .   Diana Lepilkina tem uma postagem fantástica sobre  como enviar e-mails com Nodemailer.  Nodemailer  é um módulo que permite enviar e-mails de Node.js. Instale-o com o comando   Em vez de replicar a explicação de Lepilkina, esta seção explica como você pode obter os mesmos resultados com funções sem servidor. Para manter as coisas simples e diretas, o exemplo usa Next.js.   Os pré-requisitos para continuar são ter uma conta MailTrap e um aplicativo Next.js com Nodemailer instalado.  MailTrap  é um serviço sandbox de e-mail que intercepta seu e-mail e permite que você inspecione e depure suas amostras de e-mail antes de enviá-las formalmente.   Supondo que você já tenha um aplicativo Next.js criado, crie um arquivo de função sem servidor   O método Nodemailer   Você pode reutilizar as caixas de entrada ou adicionar uma nova com “Adicionar caixa de entrada”. Em seguida, selecione Nodemailer em “Integrações” e copie as opções do transportador.     Salve as opções de host, usuário e senha como variáveis ambientais:   Anexe a função   A função de exportação padrão,   Se desejar, você pode testar usando o Postman, como na imagem abaixo. Veja como você pode usar uma única função para responder com base no método HTTP?   Você também pode obter o  link para uma demonstração simples  em Next.js conectado a um formulário.   Nesse ponto, sua caixa de entrada MailTrap deve começar a receber e-mails.   Quando integradas com plataformas de computação em nuvem, as funções sem servidor eliminam a necessidade de trabalhar no back-end, mesmo ao resolver tarefas tradicionalmente orientadas para o backend. Com o Vercel, implantar suas funções sem servidor ou trabalhar localmente por meio da CLI do Vercel pode ajudá-lo a implantar suas funções sem servidor com mais rapidez e devolver o tempo.   Para recursos adicionais, verifique  esta lista  de guias úteis e documentação.   A postagem  Serverless deployments via Vercel usando Node.js  apareceu primeiro no  LogRocket Blog .  Por que implantar sua função sem servidor no Vercel? 
 package.json  para governar todos eles. Você pode usar um único  package.json  para seu aplicativo e o Vercel encontrará e aplicará automaticamente os pacotes usados com base na importação.  Implementando suas funções sem servidor no Vercel 
/api  na raiz do seu projeto que hospeda suas funções como arquivos com extensões correspondentes como .js  e .ts . Com esta configuração, o Vercel irá verificar automaticamente o diretório /api  e executar suas funções de acordo. //`/api/hello.js`
exportar função padrão hello (req, res) { res.statusCode=200; res.json ({mensagem:'Funciona'});
}
/api/hello.js  na raiz do diretório do seu projeto com a exportação de função padrão acima. A partir daqui, o Vercel irá executar a função como uma função sem servidor e expô-la como um endpoint HTTP por trás do subdiretório /api  (por exemplo,  baseURL/api/function-name ).  baseURL  seja   http://localhost: 3000  : 
/api/hello.js  →   http://localhost: 3000/api/hello   /api/index.js  →   http://localhost: 3000/api   /api/profile.ts  →   http://localhost: 3000/profile    Acessando suas funções sem servidor por meio de segmentos de caminho 
/api/user/id.js , um endpoint /api/user/id  é gerado automaticamente. /api/user/[id].js ; o  id  é o caminho dinâmico e acessível no objeto  req.query . //`/api/user/[id].js
exportar função padrão fetchUser (req, res) { res.statusCode=200; const {id}=req.query; res.send (`Obter perfil do usuário: $ {id}`);
}
 request  e  response  de sua função sem servidor são instâncias de   http.incomingMessage   e   http.ServerResponse  , respectivamente. Ambos têm vários auxiliares Node.js disponíveis como propriedades e métodos com os quais você pode trabalhar, incluindo  request.body ,  request.query ,  response.json ()  e  response.send () .  Desenvolvimento local com Vercel CLI 
//npm
npm i-g vercel //fio
yarn global add vercel
 vercel dev  para replicar o Vercel ambiente de produção localmente,  vercel login  para fazer login em sua conta Vercel e  vercel env add  para adicionar variáveis ambientais aos seus projetos.  vercel dev -na verdade, a  documentação  recomenda não usá-lo. No entanto, embora você possa não precisar do  vercel dev , pode querer usar o  vercel env pull  se precisar baixar as variáveis ambientais do seu projeto localmente. --listen  no comando  vercel dev . Por exemplo,  vercel dev--listen 3000  para escutar na porta 3000.  Desenvolvimento local com Next.js 
 pages  se torna uma nova rota (exceto para diretórios e/ou arquivos no diretório  pages/api , que se tornam  Rotas de API ). /api  devem ser criados na raiz do seu projeto, ao usar Next.js, o diretório /api  que hospeda suas funções sem servidor deve ser criado em seu diretório  pages . Depois de fazer isso, você pode criar funções normalmente.  Desenvolvimento local com outras estruturas de front-end estáticas compatíveis 
 vercel dev  pode ser útil. Observe, entretanto, que antes de executar o  vercel dev , você precisa ter uma conta Vercel e deve estar logado via CLI com o comando  vercel login .  api  e execute o comando  vercel dev  na raiz do seu projeto. Em seguida, siga as instruções e responda às perguntas fornecidas (observe que esses comandos podem variar de acordo com o seu status de autenticação): 
.vercel  ao seu projeto para sua leitura. Este conterá um arquivo README explicando basicamente porque a pasta .vercel  existe  package.json   Configuração de variáveis ambientais 
 vercel env add  para adicionar variáveis ambientais e  vercel env pull  para baixá-las localmente em seu projeto, que cria ou acrescenta novos variáveis no arquivo .env  na raiz do seu projeto.  Advertências e detalhes técnicos 
 Idiomas suportados 
.js  ou .ts  .go  .py  .rb   Tempo limite de execução 
  NO_RESPONSE_FROM_FUNCTION  .  Variáveis ambientais reservadas 
 Limites 
 Cabeçalhos CORS 
 Envio de e-mails com Nodemailer e Mailtrap 
 npm install nodemailer  ou  yarn add nodemailer . /api/send-email.js  em seu aplicativo Next.js com o seguinte código: //1. Importe o módulo `nodemailer`
importar nodemailer de'nodemailer'; //2. Crie um transportador `nodemailer`-conecte o Nodemailer ao MailTrap (transportador)
const transporter=nodemailer.createTransport ({ host: process.env.MAIL_HOST, porta: 25, auth: { usuário: process.env.MAIL_USER, passar: process.env.MAIL_PASS, },
});
 createTransport  é usado para conectar o Nodemailer a um transportador como MailTrap ou  Postmark . As opções passadas- host ,  porta  e  auth -pertencem ao MailTrap. Você precisará buscá-los em sua  caixa de entrada do MailTrap .  
 MAIL_HOST ,  MAIL_USER ,  MAIL_PASS .  sendEmail  a /api/send-email.js .  função assíncrona sendEmail ({nome, email}) { const emailOptions={ de:'Vercel Serverless Functions Demo 
 E-mail enviado de uma função sem servidor 
`, }; //3. Isso enviará o e-mail com `emailOptions` acima. return transporter.sendMail (emailOptions);
}
 handler , lida com a solicitação de entrada, tenta  sendEmail  e responde apropriadamente:  exportar manipulador de função assíncrona padrão (req, res) { if (req.method==='POST') { const emailRes=espera sendEmail (req.body); if (emailRes.messageId) { return res.status (200).json ({mensagem: `Email enviado com sucesso`}); } return res.status (400).json ({mensagem:'Erro ao enviar e-mail'}); } return res.status (400).json ({mensagem: `Método incorreto: $ {req.method}. Você quis dizer POST?`});
}
 Conclusão 
Categories:						UncategorizedWordpress