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

EscopoGuia
API BuilderComo construir uma API com Functions e ChatGPT
Exemplos de functions em JavaScriptExemplos
GitHubRepositó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 Runtime
Saiba 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 Globais

Como funciona

  1. Detecção do framework: Quando você inicializa um projeto com o Azion CLI, o bundler identifica seu framework e aplica o adaptador apropriado.

  2. 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.

  3. Geração de Functions: Cada rota, endpoint de API ou componente de servidor se torna uma Function que pode ser executada independentemente no edge.

  4. 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

AspectoHospedagem tradicionalFunctions na Azion
LatênciaRound-trip para origem centralizadaExecução em pontos de presença globais
Cold startsComuns em plataformas serverlessEliminados pela arquitetura do Azion Runtime
EscalabilidadeConfiguração manual ou auto-scale demoradoEscala instantânea de zero a pico
Recursos do frameworkLimitados pelo provedor de hospedagemCapacidades 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:

Ver todos os frameworks suportados
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 Inference

Frameworks 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:

EscopoLimiteDescrição
Argumentos100 KBTamanho 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 Isolate512 MBMemó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 MBTamanho máximo do código-fonte da function ao criar ou editar pelo Azion Console.
Limite de código (API)20 MBTamanho máximo do código-fonte da function ao fazer deploy via Azion API.
Tamanho da variável de ambiente32 KBTamanho total máximo de todas as variáveis de ambiente combinadas para uma única function.
Sub-Requests50 Sub-ReqNúmero máximo de chamadas fetch() de saída que uma function pode realizar durante uma única invocação.
Max CPU Execution Time2sTempo 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 Time5 minTempo 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 Start2sTempo 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 URL16 KBTamanho máximo da URL de requisição que uma function pode processar, incluindo o path e a query string.
Tamanho do Header64 KBTamanho total máximo de todos os headers HTTP de requisição combinados que uma function pode ler ou escrever.
Tamanho do Body100 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.