Inicie sua primeira API sem servidor: Hands-On With AWS Chalice na AWS Lambda
Olá, eu sou Shrijith Venkatramana. Estou construindo LiveReview, uma ferramenta privada de revisão de código de IA que é executada em sua chave LLM (Openai, Gêmeos, etc.) com preços acessíveis – construídos para pequenas equipes. Verifique e experimente! Se você deseja aumentar as APIs rápidas sem gerenciar servidores, o AWS Chalice pode ser sua próxima ferramenta. É uma estrutura Python que permite criar e implantar aplicativos sem servidores no AWS Lambda e a melhor parte? Você pode hospedar APIs dinâmicas experimentais gratuitamente sob os limites de nível gratuito da AWS. Neste guia, vamos começar, da configuração à implantação, com muitos exemplos de código que você pode copiar e executar. Manteremos as coisas práticas, focando no que funciona para prototipagem rápida. No final, você terá uma API em execução, além de idéias sobre como lidar com eventos como uploads S3 ou tarefas programadas. Tudo baseado na abordagem direta baseada em decoradores da Chalice. Por que a Chalice se destaca para o Quick Sem Server, sem servidor, o Chalice simplifica o desenvolvimento sem servidor, lidando com o levantamento pesado: gera políticas do IAM automaticamente, implanta através de um único comando e se integra perfeitamente a serviços da AWS como API Gateway, S3, SNS e SQS. Principais vantagens: API orientada para decoradores: defina rotas, cronogramas ou manipuladores de eventos com decoradores simples de Python. Sem gerenciamento do servidor: tudo é executado no Lambda, então a escala é automática. GRATUITO PARA EXPERIÊNCIAS: ALAVAGEM AWS LAMBDA FREE Nível (1 milhão de solicitações/mês) para APIs de baixo tráfego. Focado em Python: suporta o Python 3.9 a 3.13, correspondendo aos tempos de execução de Lambda. Comparado a alternativas como a estrutura sem servidor ou o SAM, o cálice parece mais leve para os desenvolvedores do Python – configuração de YAML sem código. Recurso da estrutura do servidor Chalice AWS SAM Linguagem primária Python Python Multi-Language Multi-Language Command Chalice Implant SLS implantam SAM implantando políticas de auto iam sim parcial sem integrações de eventos Decoradores embutidos para S3, SQs, etc. Os plugins são necessários para os modelos de Yaml. Verifique o Github oficial para obter as atualizações mais recentes: AWS/Chalice. Configurando seu ambiente local para cálice antes da codificação, prepare sua máquina. Você precisará de Python (3.9+), um ambiente virtual e credenciais da AWS. Primeiro, verifique o python: python3 –version # saída: python 3.9.22 (ou superior, até 3.13) Digite o modo de saída de tela cheia de tela cheia Criar e ativar um Env: python3 -m venv ven-chalice fonte venv-chalice/bin/ativar # no macOS/Linux; Use Venv-Chalice \ Scripts \ Ative no Windows Digite Modo de tela cheia Sair Modo de tela cheia Instalar Chalice: Pip Instalar Chalice Digite Modo de tela cheia EXIT MODE DE VELADA FELE TESTE: CALICE-Help # Saída: Uso: Chalice [OPTIONS] COMANDO [ARGS]… Digite o modo de saída do modo de tela cheia para acesso AWS, crie ~/.aws/config se você não tiver um: mkdir ~/.aws gato< EOF > ~/.aws/config
[default]
AWS_ACCESS_KEY_ID = Your_Access_Key AWS_SECRET_ACCESS_KEY = Your_Secret_Key Region = US-WEST-2 # ou sua região preferida EOF Digite o modo de tela completa Sair da tela cheia Pro Dica: Use aws iam para um usuário de mínimos privilégios. Se você estiver preso nos Creds, consulte os documentos de credenciais do BOTO3. Essa configuração leva menos de 5 minutos e garante implantações suaves. Criando sua estrutura inicial de projeto de cálice com ferramentas prontas, gerar um esqueleto de projeto. Executar: Chalice New-Project My-primeiro-api CD My-primeiro-api Digite Modo de tela cheia de tela cheia Modo de tela cheia Isso cria: App.py: Seu arquivo de aplicativo principal. requisitos.txt: Para dependências (vazio no início). .chalice/: arquivos de configuração – ainda não edite manualmente. Peek no diretório: ls -la # saída: # drwxr-xr-x .chalice # -rw-r— App.py # -rw-r– r– requisitos.txt Digite o modo de tela full @fullcreen Modo (App_name = ” FIR) FIL) MODO DE INFIRATEM (App_Name = ” ” FIRST) Retornar {‘Hello’: ‘World’} Digite o modo de saída de tela cheia de tela cheia, isso define uma rota raiz que retorna JSON. Ainda não há extras necessários – a Chalice lida com o resto. Se você adicionar bibliotecas como solicitações, atualize requisitos.txt e cálice as acalmam na implantação. Explorando app.py: rotas e funcionalidade básica O coração do cálice é app.py, onde você define sua lógica usando decoradores. Elementos Core: Chalice (App_Name): inicializa seu aplicativo. @app.route (“mapeia os métodos http (obtenha por padrão) para funções. Valores de retorno: ditos ou strings de JSON-serializável. Estenda o exemplo básico com uma rota dinâmica: do chalice de importação ‘App. @App.Route (‘/Greet/{Name}’) def Greet (nome): retornar {‘message’: f’hello, {name}! ‘} Digite o modo de tela cheia de tela completa Modo de tela completa Execução localmente para o modo: Curl: Grenet/Gret/Gret/Surting On Enter Devscreen ExcrelEd). Modo de tela completa Sair do modo de tela cheia Chalice suporta métodos HTTP como POST via métodos =[‘POST’] no decorador. Para opções de rota completa, consulte o Chalice Quickstart Docs. Essa configuração permite protótipo de APIs rapidamente sem placa de caldeira. Implantando seu aplicativo de cálice para a AWS Lambda A implantação é o recurso Killer de Chalice – um comando lida com embalagens, funções de IAM, funções Lambda e gateway da API. No seu projeto Dir: Chalice Implant # Saída: # Criando o pacote de implantação. # Criando função do IAM: My-primeiro-api-dev # Criando função lambda: meu primeiro-api-dev # criando API REST # Recursos implantados: #-lambda arn: arn: aws: lambda: full-dest-2: 1234567899012: função: my-first-api-dv #-Rest Api. # Saída: {“hello”: “World”} Digite o modo de tela de tela cheia Modo de tela cheia O que acontece sob o capô: a cálice fecha seu código e dep. Cria uma função lambda. Configura rotas de gateway de API. Gera políticas mínimas de IAM. Reimplantando as alterações com o mesmo comando – atualiza com eficiência. Se surgirem problemas (por exemplo, permissões), verifique os logs por meio de logs de cálice. Para dicas específicas da região, navegue pela AWS Lambda Docs. Sua API agora está ao vivo, gratuita para uso leve. Adicionando rotas dinâmicas e solicitações de manuseio se baseiam no básico adicionando parâmetros, consultas e respostas. Aprimore com uma rota post para processamento de dados: do cálice Chalice, aplicativo de resposta = Chalice (app_name = ‘my-primeiro-api’) @app.route (‘/echo’, métodos =[‘POST’]) def echo (): request = app.current_request body = request.json_body se corpo e ‘texto’ no corpo: retornar resposta (corpo = {‘ecoed’: corpo[‘text’]}, status_code = 200, cabeçalhos = {‘content -type’: ‘Application/json’}) Retornar resposta (corpo = {‘error’: ‘Falta Texto’}, status_code = 400) Digite o modo de tela completa: Modo Full -Screen Application: Chalice Local Curl -x Post/OCO -EN “TYCENT -TYPE” {“Ecoed”: “Mensagem de teste”} Digite o modo de saída de tela cheia Modo de tela cheia Use app.current_request para cabeçalhos, consultas ou corpos. Para validação, adicione bibliotecas como pydantic aos requisitos.txt: pip install eco pydantic “pydantic” >> requisitos.txt Digite o modo de saída do modo de tela cheia, isso mantém as APIs robustas para experimentos. O desencadeamento de funções com os eventos da AWS Chalice não é apenas APIs – abastecem eventos como uploads ou cronogramas S3. Para tarefas programadas: do cálice Chalice, App App = Chalice (App_Name = ‘My-primeiro-api’) @app.schedule (taxa (5, unit = rate.Minutes)) def todo_five mode_minutes (Event): Print (“Running Task!”) Return {“Status”: “DOED”}}}}}}}}}} Eventos. Para eventos S3: do Chalice Importar Chalice App = Chalice (App_Name = ‘My-primeiro-api’) @app.on_s3_event (bucket = ‘my-experimental-bucket’) def handle_s3_upload (evento): FILHET (FULHEREEN FULTEREEN: {Event.Key} “) # Process Implantar para conectá -lo. Semelhante para Sqs: do Chalice Importar Chalice App = Chalice (App_Name = ‘My-primeiro-api’) @app.on_sqs_message (fileue = ‘my-oe’) DEF Process_FeUe (Evento): para registro no evento: Print (f “Mensagem: {{}}”) Enter Mode FullScreen Ext Para mais tipos de eventos, explore os documentos do evento de Chalice. Isso expande o cálice além das APIs para aplicativos completos orientados a eventos. Experimentos de escala: Atualizações, exclusão e dicas Uma vez implantadas, Itreate Fast: Edit Code, Chalice implantando novamente – apenas atualiza as alterações. View Logs: Chalice Logs # Saída: Tail of Lambda Logs … Digite Modo de tela cheia Modo de tela cheia para limpeza: Chalice Excluir # Saída: # Excluindo a API REST … # Excluindo o modo Lambda … # Delete o controle do IAM … Ambientes: Use -estágio para dev/prod (por exemplo, cálice implantar -etapa de etapa). Custos: Monitore o console da AWS – fique em camada gratuita limitando as invocações. Segurança: evite segredos de codificação; Use o ambiente VARS via .chalice/config.json. Objetivo do comando Quando usar o Chalice implando upload e configurar recursos após alterações de código Chalice Run Local API Localmente Teste rápido Cálice Excluir Remover todos os recursos Fim do experimento Toges de cálice Fetch Lambda Logs problemas de depuração Se, se o escala, considere os planos de Chalice para o código reutilizável. Próximas etapas: Construindo aplicativos prontos para produção com cálice à medida que você experimenta mais, mergulhe em recursos avançados, como domínios personalizados via gateway da API ou integrando com o DynamoDB. Comece pequeno – prototipo uma API para um projeto paralelo e adicione eventos para automação. Recursos para subir de nível: Tutoriais oficiais: Comunidade de tutoriais de cálice: participe de discussões sobre questões do GitHub ou Gitter. Chalice torna acessível sem servidor, então ajuste esses exemplos e implante suas idéias hoje. Se você acertar, o AWS Free Tier Support está lá, e os documentos ficaram de costas. Codificação feliz!
Fonte
Publicar comentário