Como construir um aplicativo sem servidor usando o AWS Chalice

Como construir um aplicativo sem servidor usando o AWS Chalice

14 de October, 2020 0 By António César de Andrade


Recentemente, encontrei o AWS Chalice e fiquei fascinado pela simplicidade e usabilidade que ele oferece.

O AWS Chalice é uma estrutura sem servidor que permite criar aplicativos sem servidor usando Python e implantá-los na AWS usando Amazon API Gateway e AWS Lambda.

Decidi brincar com isso e realmente consegui criar e implantar uma API REST de amostra na AWS em alguns minutos.

Neste artigo, vou guiá-lo pelas etapas necessárias para construir e implantar um aplicativo sem servidor que obtém as últimas notícias do Google Notícias usando o Chalice.

Pré-requisitos

Este tutorial requer uma conta AWS. Se você ainda não tem um, vá em frente e crie um. Nosso aplicativo usará apenas os recursos de nível gratuito, portanto, o custo não deve ser um problema.

Você também precisa configurar a segurança e criar usuários e funções para seu acesso.

Como configurar as credenciais da AWS

Chalice usa a AWS Command Line Interface (CLI) nos bastidores para implantar o projeto. Se você não usou o CLI da AWS antes para trabalhar com recursos da AWS, você pode instalá-lo seguindo as diretrizes aqui.

Depois de instalado, você precisa configurar seu AWS CLI para usar as credenciais de sua conta AWS.

Como instalar o Chalice

Em seguida, você precisa instalar o Chalice. Estaremos usando Python 3 neste tutorial, mas você pode usar qualquer versão de Python compatível com AWS Lambda.

Verifique a instalação do Python

Instale o Chalice

Verifique a instalação do Chalice

Como criar um projeto

Em seguida, execute o chalice new-project comando para criar um novo projeto.

Isso criará um daily-news pasta em seu diretório atual. Você pode ver que o Chalice criou vários arquivos nesta pasta. Estaremos trabalhando com o app.py e requirements.txt arquivos apenas neste artigo.

Vamos dar uma olhada no conteúdo de app.py Arquivo:

o new-project comando criou um aplicativo de amostra daily-news. Ele define uma visão única /, que retorna o corpo JSON {"hello": "world"} quando chamado. Agora você pode modificar este modelo e adicionar mais código para ler notícias do Google.

Usaremos o feed RSS do Google para obter nossas notícias. Como os feeds RSS consistem em dados no formato XML, precisaremos de uma biblioteca Python chamada Beautiful Soup para analisar os dados XML.

Você pode instalar o Beautiful Soup e sua biblioteca de análise XML usando pip, como isso:

Em seguida, adicione as seguintes importações para app.py. Isso essencialmente adiciona importações de urllib para fazer chamadas HTTP e bs4 para analisar XML.

Em seguida, você precisa adicionar um método para buscar o feed RSS do Google. Nós vamos usar urllib para fazer uma chamada HTTP para o endpoint RSS do Google e obter a resposta. Você pode então analisar a resposta para extrair o título da notícia e a data de publicação e criar uma lista de itens de notícias.

Para fazer isso, adicione o seguinte código ao seu app.py:

Atualize o método de índice em app.py para invocar esse método e retornar a lista de itens de notícias como resultado.

Observe que você instalou algumas dependências para fazer o código funcionar. Essas dependências foram instaladas localmente e não estarão disponíveis para o contêiner AWS Lambda no tempo de execução.

Para disponibilizá-los para AWS Lambda, você precisará empacotá-los junto com seu código.

Para fazer isso, adicione o seguinte ao requirements.txt Arquivo. O Chalice empacota essas dependências como parte de seu código durante a construção e as carrega como parte da função Lambda.

Como implantar o projeto

Vamos implantar este aplicativo. De daily-news pasta, execute o chalice deploy comando.

Isso implanta sua API no Amazon API Gateway e cria uma nova função no AWS Lambda.

API de notícias diárias

Função Lambda daily-news-dev

Vamos tentar acessar a API agora. Você pode usar curl para invocar o URL do gateway de API que você recebeu durante chalice deploy. A resposta da chamada de API retornaria uma lista de itens de notícias conforme mostrado abaixo.

Como limpar recursos

Você também pode usar o chalice delete comando para excluir todos os recursos criados quando você executou o chalice deploy comando.

Conclusão

Parabéns! Você acabou de implantar um aplicativo sem servidor na AWS usando o Chalice. Não foi muito difícil, foi?

Agora você pode ir em frente e fazer quaisquer modificações em seu app.py arquivo e execute novamente chalice deploy para reimplantar suas mudanças.

Você também pode usar o Chalice para integrar seu aplicativo sem servidor ao Amazon S3, Amazon SNS, Amazon SQS e outros serviços AWS. Dê uma olhada no tutoriais e continue explorando. O código-fonte completo deste tutorial pode ser encontrado aqui.

Obrigado por ficar comigo até agora. Espero que você tenha gostado do artigo. Você pode se conectar comigo no LinkedIn onde discuto regularmente tecnologia e vida. Também dê uma olhada em alguns dos meus outros artigos sobre Médio. Boa leitura 🙂



Fonte

Click to rate this post!
[Total: 0 Average: 0]