Functions
Functions da Azion permite que você crie aplicações orientadas a eventos e serverless mais perto dos usuários.
Com o Functions para Applications, você pode:
- Implementar a lógica necessária.
- Reutilizar uma functions em diferentes applications.
- Manter e acessar suas variáveis de ambiente pré-configuradas.
- Acessar bancos de dados.
- Escrever seu código em JavaScript.
- Implantar funções facilmente.
- Fazer uso da programação em pares com a integração com o Chat GPT.
- Visualizar o resultado da função em tempo real com o preview deployment.
- Executar agentes de IA diretamente na infraestrutura distribuída da Azion com latência ultra-baixa.
- Construir ecossistemas de IA completos.
Implementação
| Escopo | Guia |
|---|---|
| API Builder | Como construir uma API com Functions e ChatGPT |
| Exemplos de functions em JavaScript | Exemplos |
| GitHub | Repositório de samples da Azion |
Azion Runtime
Ao usar JavaScript em Functions, você pode executar códigos mais próximos do usuário final, aprimorando o desempenho e habilitando a lógica personalizada para lidar com solicitações e respostas.
Ao usar o Azion Runtime para desenvolver suas functions, você tem um conjunto de ferramentas que o ajudam a implementar sua lógica.
Saiba mais sobre o Azion RuntimeSaiba mais sobre os Web frameworks suportados
Saiba mais sobre o suporte ao Node.js
Saiba mais sobre as Web APIs suportadas
Como frameworks se integram com Functions
Quando você faz o deploy de um projeto com um web framework na Azion, a plataforma transforma o código do seu framework em Functions que rodam no Azion Runtime. Esse processo é realizado pelo Azion Bundler, um adaptador de frameworks open source construído especificamente para a arquitetura distribuída da Azion.
Fluxo da arquitetura
Código do Framework (Next.js, Astro, Vue, etc.) ↓ Azion Bundler ↓ Function (JavaScript/Wasm) ↓ Azion Runtime ↓ Pontos de Presença GlobaisComo funciona
-
Detecção do framework: Quando você inicializa um projeto com o Azion CLI, o bundler identifica seu framework e aplica o adaptador apropriado.
-
Transformação do código: O bundler converte a lógica server-side do seu framework, rotas de API e middleware em Functions compatíveis com o Azion Runtime.
-
Geração de Functions: Cada rota, endpoint de API ou componente de servidor se torna uma Function que pode ser executada independentemente no edge.
-
Deploy: As Functions são distribuídas pela rede global da Azion, executando mais próximas dos usuários sem cold starts.
Benefícios da transformação framework-to-Function
| Aspecto | Hospedagem tradicional | Functions na Azion |
|---|---|---|
| Latência | Round-trip para origem centralizada | Execução em pontos de presença globais |
| Cold starts | Comuns em plataformas serverless | Eliminados pela arquitetura do Azion Runtime |
| Escalabilidade | Configuração manual ou auto-scale demorado | Escala instantânea de zero a pico |
| Recursos do framework | Limitados pelo provedor de hospedagem | Capacidades completas do framework preservadas |
Frameworks suportados
Para a lista completa de frameworks suportados e informações detalhadas de compatibilidade, consulte Compatibilidade de frameworks.
Implicações práticas
Ao fazer o deploy de um projeto com framework, considere:
- Custos de compute: Deploys de frameworks geram Functions, que incorrem em cobranças de tempo de compute e invocações. Consulte Preços para detalhes.
- Debugging: Use Preview Deployment, Data Stream ou GraphQL API para depurar Functions geradas por frameworks.
- Variáveis de ambiente: Acesse variáveis de ambiente no código do seu framework usando a API de variáveis de ambiente da Azion.
Explore o Azion Bundler no GitHub
Suporte a frameworks de AI
As Functions oferecem suporte para fluxos de trabalho de AI avançados, permitindo que você:
- Execute agentes de AI diretamente na infraestrutura distribuída da Azion com latência ultra-baixa, construindo soluções de nível empresarial que operam no edge com confiabilidade e escalabilidade.
- Crie fluxos de trabalho de AI sofisticados usando integrações com LangGraph e LangChain, incluindo capacidades avançadas de recuperação que combinam busca vetorial e busca de texto completo para casos de uso complexos.
- Aproveite a integração nativa do SQL Database para implementações de RAG e armazenamento vetorial, juntamente com Servidores MCP que permitem a colaboração entre agentes usando o protocolo Agent2Agent (A2A) do Google.
- Acesse modelos de ponta como Mistral, Florence, Qwen e outros, que seguem o padrão de API da OpenAI, tudo isso reduzindo a complexidade com uma infraestrutura de AI completamente integrada e executada no edge da rede.
O AI Inference da Azion permite que você execute modelos de AI no Azion Runtime, e pode ser usado junto com as Functions para criar aplicações complexas impulsionadas por AI.
Saiba mais sobre AI InferenceFrameworks JavaScript
Next.js
Next.js é um framework JavaScript construído sobre o React que permite a renderização do lado do servidor (SSR) e a geração de sites estáticos para a criação de aplicações Jamstack.
Jamstack
Jamstack significa JavaScript, APIs e Markup, e promove o desacoplamento do front-end do back-end, pré-renderizando o conteúdo e servindo-o como arquivos estáticos.
SSR
O SSR permite renderizar componentes do React no servidor antes de enviá-los ao cliente, aumentando o tempo de carregamento inicial e melhorando o SEO.
Site estático
A geração estática de sites gera arquivos HTML estáticos em tempo de compilação, que podem ser armazenados em cache e entregues rapidamente aos usuários, reduzindo a necessidade de processamento do lado do servidor.
WebAssembly
O WebAssembly (Wasm) é um formato de instrução binária que permite a execução de código de alto desempenho na web. Ele permite a execução de aplicações em velocidade quase nativa, preenchendo a lacuna entre diferentes linguagens e plataformas de programação.
Functions aproveita o poder do WebAssembly para fornecer computação serverless no edge, permitindo que os desenvolvedores façam o deploy da lógica personalizada e otimizem aplicações com a latência reduzida e desempenho aprimorado.
Esta combinação de WebAssembly e Functions da Azion abre novas possibilidades para a criação de experiências mais rápidas, eficientes e escaláveis.
Veja Como criar uma functions usando WebAssembly na Azion Web Platform.
Instanciação de função
O módulo Functions Instances permite instanciar funções em suas applications, bem como configurar condições para sua execução.
Uma vez que sua application executa uma functions, ela responde a eventos mais próximos do usuário final, garantindo maior escalabilidade e disponibilidade.
Saiba mais sobre Functions Instances.
Rules Engine
O Rules Engine lida com a execução condicional de comportamentos por meio de operadores lógicos. Ao usar o Rules Engine, você pode criar uma arquitetura que forneça melhor desempenho aos seus usuários e, ao mesmo tempo, consuma menos recursos processando na origem.
Saiba mais sobre Rules Engine.
Editor de código
O editor de código para Functions é a melhor maneira de começar a desenvolver suas functions na plataforma Azion. É um editor de código baseado na web que torna mais fácil e intuitivo desenvolver no edge. É habilitado pelo Editor de Código Mônaco, usado no VS Code.
Alguns de seus principais recursos são:
- Syntax Highlighting
- IntelliSense
- Debugging
Saiba mais sobre o Functions Code Editor.
Assistente IA
A IA generativa pode ser usada em quase todas as tarefas que envolvem a compreensão ou geração de linguagem ou código natural. No ambiente de desenvolvimento, é uma ferramenta usada para aumentar a produtividade dos desenvolvedores, ajudando-os a:
- Depurar o código.
- Refatorar o código.
- Gerar código com base em prompts.
Saiba mais sobre o Assistente de IA.
Preview
Você pode verificar se a saída é a esperada com o Preview Deployment, fazendo uso da função PreviewProvider, que emula uma requisição.
Saiba mais sobre o Preview Deployment.
Debug
Você pode depurar suas functions em tempo real usando a ferramenta de inspeção dentro do Preview Deployment.
Você também pode depurar usando:
Variáveis de ambiente
As variáveis de ambiente são um aspecto crucial no desenvolvimento e implantação de software. Elas são usadas para armazenar informações confidenciais ou definições de configuração que não devem ser codificadas na base de código.
Saiba mais sobre a interface de Variáveis de Ambiente.
JSON Args
Ao adicionar JSON args, você pode ter comportamentos diferentes em sua function sem ter que alterar o código. Depois de definir seus JSON args, você pode recuperá-los chamando event.args ("desiredArg").
Gerenciamento de functions
Existem diferentes maneiras de gerenciar suas functions. Você pode fazer isso através do Azion Console, Azion CLI, Azion API e Terraform.
Azion Console
Você pode criar e gerenciar functions através do Azion Console, no Products menu, no canto superior esquerdo. abaixo de Edge Libraries.
CLI
A CLI da Azion permite que você gerencie suas functions para applications através do terminal.
Saiba mais sobre o Comando functions e seus subcomandos.
API
A API da Azion, acessada através do Postman, oferece os métodos e chamadas necessários para gerenciar suas applications.
Acesse a Azion API collection e teste as requisições.
Terraform
O Azion Terraform Provider permite o gerenciamento de functions na plataforma da Azion. Ele possibilita tratar sua infraestrutura como código.
Saiba mais sobre o gerenciamento de functions através do Azion Terraform Provider.
Limites
Estes são os limites default:
| Escopo | Limite | Descrição |
|---|---|---|
| Argumentos | 100 KB | Tamanho máximo do objeto JSON args passado para uma instância de function. Exceder esse limite causa falha na instanciação da function. |
| Memória por Isolate | 512 MB | Memória máxima disponível para um único contexto de execução de function (V8 isolate). Inclui heap, stack e todas as alocações em runtime. |
| Limite de código (UI) | 6 MB | Tamanho máximo do código-fonte da function ao criar ou editar pelo Azion Console. |
| Limite de código (API) | 20 MB | Tamanho máximo do código-fonte da function ao fazer deploy via Azion API. |
| Tamanho da variável de ambiente | 32 KB | Tamanho total máximo de todas as variáveis de ambiente combinadas para uma única function. |
| Sub-Requests | 50 Sub-Req | Número máximo de chamadas fetch() de saída que uma function pode realizar durante uma única invocação. |
| Max CPU Execution Time | 2s | Tempo máximo de CPU que uma function pode consumir por invocação. Mede o tempo de computação ativa, não o tempo de relógio. Functions que excedem esse limite são encerradas. |
| Max Execution Time | 5 min | Tempo máximo de relógio (tempo total decorrido) permitido para uma invocação de function, incluindo espera de I/O, chamadas fetch() e operações assíncronas. |
| Max Cold Start | 2s | Tempo máximo permitido para uma function inicializar antes de processar sua primeira requisição. O Azion Runtime é projetado para minimizar cold starts na rede global. |
| Tamanho da URL | 16 KB | Tamanho máximo da URL de requisição que uma function pode processar, incluindo o path e a query string. |
| Tamanho do Header | 64 KB | Tamanho total máximo de todos os headers HTTP de requisição combinados que uma function pode ler ou escrever. |
| Tamanho do Body | 100 MB (plano Developer) 200 MB (plano Business) 500 MB (planos Enterprise e Mission Critical) | Tamanho máximo do body de requisição ou resposta HTTP que uma function pode processar. Os limites variam conforme o plano de serviço. |