Como implantar uma API Node.js sem servidor com AWS API Gateway?

Como Implantar Uma Api Node Js Sem Servidor Com Aws Api Gateway



AWS é uma plataforma de computação em nuvem com um vasto portfólio de serviços. Do armazenamento à manipulação e análise de dados, esses serviços cobrem diferentes aspectos da indústria de TI. Hoje, a AWS também oferece suporte a diversas linguagens de desenvolvimento e ambientes de tempo de execução. Um dos exemplos mais comuns de tais serviços é AWS Lambda

AWS Lambda é um serviço de computação orientado a eventos da AWS que permite que seus usuários executem seu código sem fornecer ou gerenciar os servidores. Lambda lida com eficiência com toda a infraestrutura computacional e administração dos recursos. Existem várias linguagens de desenvolvimento que são suportadas pelo serviço Lambda, por exemplo, Go, Ruby, Python, etc. Lambda também é considerado um serviço econômico, pois só incorre em cobranças pelo tempo de computação consumido pelo usuário. Não há cobranças adicionais quando o código fornecido à função Lambda não está no estado de execução.

Consulte Mais informação : Primeiros passos com AWS Lambda







Esboço rápido



Este artigo ilustra os seguintes aspectos:



O que é uma estrutura sem servidor?

O termo “Sem servidor” refere-se à terminologia em que o fornecimento e a manutenção dos servidores são gerenciados por software de terceiros ou por provedores de nuvem. Essas estruturas permitem que os usuários se concentrem na lógica central do negócio, em vez de manter os servidores. Hoje, os Serverless Frameworks atraíram a atenção dos gigantes da tecnologia e oferecem enormes benefícios.





Além disso, esta é também uma solução económica porque os servidores são fornecidos e geridos pelos prestadores de serviços. Na AWS, o Lambda é considerado um serviço sem servidor, pois requer apenas o código do usuário para operar. Com o AWS Lambda, os usuários podem criar e dimensionar facilmente os aplicativos em diferentes ambientes de execução de maneira econômica.

O que é uma API?

API é um acrônimo para “Interface de Programação de Aplicativo”. A introdução formal da API inclui que ela é um conjunto de definições e protocolos que permitem que dois componentes de software ou aplicativo troquem informações úteis para comunicação.



Uma aplicação de API em tempo real é feita usando um navegador da web. Sempre que um usuário pesquisa um site, a solicitação é entregue ao servidor onde o site reside. Essa comunicação entre o servidor e o navegador ocorre através da API.

O que é gateway de API?

API Gateway é um serviço totalmente gerenciado da AWS que é semelhante a uma ferramenta de gerenciamento de API. Ao usar o gateway de API, os desenvolvedores podem criar, gerenciar, publicar e dimensionar facilmente diferentes APIs. Da mesma forma, o gateway de API permite que os usuários se comuniquem com outros microsserviços em execução no lado do servidor. Ele recebe a entrada do usuário, processa-a e depois a direciona para os microsserviços apropriados. Esses microsserviços processarão então essa entrada para geração de saída.

Quais são os diferentes tipos de API no API Gateway?

O gateway de API fornece serviços de gerenciamento para três tipos diferentes de APIs, conforme mencionado abaixo:

APIHTTP: Esta API é amplamente utilizada no desenvolvimento web e é limitada apenas ao lado do cliente. Essas APIs podem ser classificadas como privadas ou públicas.

API de descanso: O termo REST significa “API de transferência de estado de representação”. É uma das abordagens mais comumente usadas que separa o frontend e o backend do aplicativo. As APIs REST são sem estado por natureza e flexíveis para desenvolvimento e implementação.

API WebSocket: Essas APIs são usadas quando a comunicação por soquete está envolvida. A API WebSocket permite aos usuários criar soquetes para comunicação full duplex bidirecional no desenvolvimento Web. Essas APIs são escritas em JavaScript.

Como implantar uma API Node.js sem servidor com API Gateway?

Para a implantação de uma API Serverless Node.js com API Gateway, usaremos o bucket S3, função Lambda e gateway de API. O bucket S3 conterá o código do aplicativo. O URI exclusivo do bucket será fornecido à função Lambda como um manipulador. O gateway de API será adicionado como gatilho para a função Lambda que processará a entrada do usuário e fornecerá a saída apropriada.

Abaixo estão as etapas para implantar uma API Serverless Node.js com o gateway de API:

Etapa 1: crie uma função Lambda

Para criar uma função Lambda, acesse o “Lambda” serviço do Console de gerenciamento da AWS :

Saber mais: “Como criar uma função Lambda com tempo de execução Python” .

Na interface da Função Lambda, clique no botão “Criar função” botão:

Na interface Criar Função, selecione o “Autor do zero” opção:

Em seguida vem o 'Informação básica' seção. Nesta seção, forneça o nome da função Lambda no arquivo “Nome da função” :

Clique no “Criar função” botão localizado na parte inferior da interface:

Aqui o função foi criado com sucesso :

Etapa 2: criar gateway de API

A próxima etapa é criar um API Gateway. Para isso, acesse o “Gateway API” serviço do Console de gerenciamento da AWS :

Role para baixo na interface do API Gateway e clique no botão 'Construir' opção do API REST bloquear:

No “Criar API” interface, selecione a seguir opção destacada . Como estamos construindo um API Rest do zero, escolhemos as seguintes opções:

No Configurações seção na mesma interface, forneça o nome da API no “Nome da API” campo de texto:

Clique no “Criar API” botão:

Após criar a API com sucesso, clique no botão 'Ações' e selecione as seguintes opções destacadas para configurar os recursos e métodos da API:

Em seguida, forneça o nome da API no campo 'Nome do recurso' campo de texto. No Caminho do recurso, os usuários podem especificar o caminho dos recursos. Este caminho especificado será então combinado com os métodos originais para lidar com solicitações. Clique no “Criar recurso” botão:

Após criar o Recurso, clique no botão 'Ações' aba novamente e escolha o “Criar recurso” método para definir métodos e recursos dentro da API:

Forneça o nome do 'Nome do recurso' campo e clique no “Criar recurso” botão:

Depois de configurar os recursos aninhados, toque no botão 'Ações' botão e clique no “Criar Método” botão do menu suspenso :

Queremos testar o funcionamento de nossa API usando o OBTER solicitação em Node.js. Portanto, na interface Métodos, selecionaremos o 'PEGAR' solicitar:

Depois de selecionar o OBTER solicitação , Clique no 'verificar' botão para confirmar as alterações:

No 'PEGAR' interface de método, forneça o nome da função Lambda que criamos anteriormente e faça as configurações a seguir. Depois disso, acerte o 'Salvar' botão para confirmar as alterações:

Depois de clicar no 'Salvar' botão, a seguinte caixa de diálogo aparecerá. Clique no 'OK' botão:

Da mesma forma, crie mais um método seguindo etapas semelhantes às que seguimos para o primeiro método. Os usuários podem criar vários métodos em uma API com base em seus requisitos. Após configurar todos os Métodos, clique no botão 'Ações' guia e selecione o “Implantar API” opção:

Isso exibirá a seguinte caixa de diálogo. No “Estágio de implantação” forneça os detalhes. Em seguida vem o 'Nome artístico' campo para especificar o nome do palco. Clique no 'Implantar' botão:

O API foi criado com sucesso :

Rolar para baixo a interface e clique no “Salvar alterações” botão:

Etapa 3: crie o intervalo S3

Nesta etapa, criaremos um bucket para armazenar o código. Este código será associado à função Lambda e a API será utilizada para recuperar os atributos configurados dentro do código.

Para criar um bucket S3, pesquise o 'S3' serviço na barra de pesquisa do Console de gerenciamento da AWS. Toque no nome do serviço nos resultados exibidos:

No console S3, clique no botão “Criar balde” opção para iniciar o processo:

No Configuração geral seção, forneça um identificador globalmente exclusivo para o bucket na seção campo de texto destacado :

Ao manter o configurações como padrão , Clique no “Criar balde” botão na parte inferior da interface:

Isso criará o balde. Agora, para fazer upload do código para o bucket S3, fornecemos um código Node JS simples em GitHub repositório. Baixe o código no Formato zip :

Depois de baixar o Arquivo zip , Vá para Painel S3 e escolha o balde. Na próxima interface, clique no botão 'Carregar' botão e carregar o Arquivo zip para o balde:

Saber mais: Como fazer upload de objetos no Amazon Simple Storage Service?

Toque em 'Adicionar arquivos' botão localizado à direita da interface, vizinho ao 'Adicionar pasta' botão. Depois de adicionar o Arquivo zip para o balde, bata no 'Carregar' botão na parte inferior da interface:

O arquivo foi carregado com sucesso :

Depois Enviando o arquivo para o bucket, clique no botão Objeto para visualizar propriedades:

Clique no “Copiar URI S3” botão. Isso será adicionado à função Lambda:

Vou ao Painel Lambda e escolha a função Lambda:

Role para baixo até 'Código' seção e toque no “Carregar de” botão. De menu suspenso, Clique no “Localização do Amazon S3” opção:

Cole o “URI S3” na caixa de diálogo exibida e clique no botão 'Salvar' botão:

No Interface de função Lambda , role para baixo até “Configurações de tempo de execução” e clique no 'Editar' botão:

No “Manipulador” campo, edite as seguintes configurações. O “nodeapi” é o nome da pasta carregada no bucket S3 e index.js é o ponto de entrada. Depois disso clique no 'Salvar' botão:

Etapa 4: verificação

Vou ao Gateway de API console de serviço e clique no “API” nome:

Após selecionar a API, clique no botão 'Estágios' na barra lateral e clique no estágio de implantação, por exemplo, primeiro estágio:

Copie o URL e lançar o Carteiro ferramenta na máquina local:

Criar uma OBTER solicitação no Carteiro e cole o URL nele. Depois de clicar no 'Enviar' botão, obtemos os seguintes resultados:

Isso é tudo deste guia.

Conclusão

Para implantar a API Node.js com o gateway de API, carregue o código no bucket S3, adicione-o como um manipulador e o gateway de API como um gatilho para a função Lambda. A solicitação iniciada usando o Postman será entregue à Função Lambda por meio da API. Para criar a API, use o serviço API gateway da AWS. O bucket S3 que foi adicionado como manipulador à Função Lambda fornecerá o código para o processamento da solicitação. A saída será mostrada no console do Postman. Este artigo é um tutorial passo a passo para implementar a API Node.js com o gateway API da AWS.