# Limites de Applications

Uma [aplicação](/pt-br/documentacao/plataforma/applications/) executa [regras](/pt-br/documentacao/plataforma/applications/rules-engine/) de requisição e de resposta e pode fazer proxy de conexões WebSocket para a origem por meio de [WebSocket Proxy](/pt-br/documentacao/plataforma/applications/websocket/). Cada Produto habilitado nela traz limites próprios: [cache settings](/pt-br/documentacao/plataforma/applications/cache/cache-settings/) e requisições de [Real-Time Purge](/pt-br/documentacao/plataforma/applications/cache/real-time-purge/) para Cache, o piso do TTL de cache para Application Accelerator e as imagens processadas para Image Processor. Esta página informa cada limite, a resposta que uma chamada recebe quando a API o recusa e o uso que cada plano de serviço inclui.

Um limite padrão delimita um objeto, uma requisição ou uma conta. Uma quantidade incluída delimita um mês de uso, e cada plano de serviço inclui uma quantidade diferente. A Azion oferece três planos de serviço: Hobby, Pro e Enterprise. No Hobby, o uso além de uma quantidade incluída pode exigir um upgrade, e a Azion pode restringir a conta. No Pro e no Enterprise, a Azion cobra esse uso pelos preços On Demand, e no Pro você pode definir um limite de gasto para controlar a cobrança.

---

## Aplicações, regras e conexões

Estes limites se aplicam a toda aplicação, quaisquer que sejam os Produtos habilitados nela. Eles cobrem as regras do seu Rules Engine, o log de **Debug Rules**, as conexões que ela mantém abertas e o número de aplicações que uma conta comporta.

### Limites padrão

Cada linha nomeia o que é limitado e o limite. A Azion pode aumentar estes limites mediante solicitação, conforme o plano, e o tempo de conexão WebSocket é um deles. Para solicitar um aumento, entre em contato com o time de [suporte técnico](/pt-br/documentacao/suporte/).

| Escopo                                                             | Limite                     |
| ------------------------------------------------------------------ | -------------------------- |
| Regras em uma aplicação, fases de requisição e de resposta somadas | 200                        |
| Grupos de critérios por regra                                      | 1 a 5                      |
| Critérios por grupo                                                | 1 a 10                     |
| Behaviors por regra                                                | 1 a 10                     |
| Argumento de behavior                                              | 1.600 caracteres           |
| Tamanho do log de **Debug Rules**                                  | 1,5 kB                     |
| Tempo máximo de uma conexão WebSocket                              | 15 minutos                 |
| Conexão keepalive entre um usuário e uma aplicação                 | Aproximadamente 15 minutos |

As 200 regras são um único total que a fase de requisição e a fase de resposta compartilham. Por exemplo, uma aplicação pode ter 150 regras de requisição e 50 regras de resposta, mas não 200 de cada.

A Azion recicla as conexões keepalive dos seus servidores aproximadamente a cada 15 minutos. Esse ciclo limita por quanto tempo uma conexão entre um usuário e uma aplicação fica aberta. Uma conexão ativa que precisa de mais tempo pode ser encerrada. Quando uma conexão WebSocket é encerrada dessa forma, a aplicação trata a conexão fechada e a abre de novo. Para um arquivo grande, fragmentos ou compressão aumentam a velocidade de transferência, de modo que a transferência possa terminar a tempo.

Para armazenar um arquivo grande em fragmentos, consulte [Cache settings](/pt-br/documentacao/plataforma/applications/cache/cache-settings/#cache). Para comprimi-lo, consulte [Comprima as respostas de uma aplicação com gzip](/pt-br/documentacao/guias/performance-e-confiabilidade/otimizacao-de-entrega/gzip-compression/).

### Aplicações por conta

O número de aplicações que uma conta comporta depende do seu serviço de Support. O Mission-Critical define uma quantidade personalizável para a conta. Para solicitar um número maior, entre em contato com o time de [suporte técnico](/pt-br/documentacao/suporte/).

| Escopo               | Developer | Business | Enterprise | Mission-Critical |
| -------------------- | --------- | -------- | ---------- | ---------------- |
| Aplicações por conta | 10        | 50       | 200        | Personalizável   |

Para saber o que cada serviço de Support inclui, consulte [Preços](/pt-br/documentacao/fundamentos/precos/#support).

---

## Cache

Cache limita um cache setting, o objeto que um cache setting mantém e uma requisição de Real-Time Purge. Além de um limite que a API verifica, a chamada retorna HTTP `400` com um código de erro e um título. [Tiered Cache](/pt-br/documentacao/plataforma/applications/cache/tiered-cache/) altera dois limites de um cache setting: o menor TTL que ele aceita e o comportamento de cache que ele permite.

Para um limite maior na conta, entre em contato com o time de [suporte técnico](/pt-br/documentacao/suporte/). Os limites de TTL são a exceção: a API os valida em todo cache setting, e a Azion não os aumenta mediante solicitação.

### Cache settings

Cada limite desta tabela se aplica a um cache setting, qualquer que seja a interface que o escreve. A coluna Escopo nomeia o campo da API e, quando existe, o rótulo do Console. A coluna Além do limite traz o código e o título da resposta `400`.

| Escopo                                                                   | Limite                                                                                           | Além do limite                                                                                                                                              |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| TTL mínimo de cache, **Max Age** (`modules.cache.max_age`)               | 60 segundos; 0 segundos com Application Accelerator habilitado na aplicação                      | Erro `21021`, `Edge Cache Max Age Lower Than The Minimum Allowed By Application's Application Accelerator Module`, com `meta.min_value` definido como `60`. |
| TTL mínimo de cache com Tiered Cache ativo                               | 3 segundos, com Application Accelerator ativo; sem ele, o mínimo de 60 segundos continua valendo | Erro `21020`, `Edge Cache Max Age Lower Than The Minimum Allowed By The Tiered Cache Module`, com `meta.min_value` definido como `3`.                       |
| TTL máximo de cache                                                      | 31.536.000 segundos, um ano                                                                      | Erro `10068`, `Max Value`, com o detalhe `Ensure this value is less than or equal to 31536000.`                                                             |
| Comportamento de cache com Tiered Cache ativo (`modules.cache.behavior`) | Apenas `override`                                                                                | Erro `21001`, `It's Not Possible To Use This Edge Cache Behavior.`                                                                                          |
| TTL do browser cache (`browser_cache.max_age`)                           | 0 a 31.536.000 segundos                                                                          | Erro `10068`, `Max Value`.                                                                                                                                  |
| Nome do cache setting, **Name** (`name`)                                 | 250 caracteres                                                                                   | Erro `10046`, `Max Length`, com o detalhe `Ensure this field has no more than 250 characters.`                                                              |

Um cache setting com `modules.cache.stale_cache.enabled` definido como `true` pode servir uma cópia expirada durante uma janela limitada. Sob o comportamento `honor`, a janela é o valor da diretiva `stale-while-revalidate=<ttl>` da origem. Sob `override`, ou quando a origem omite a diretiva, a janela é de 300 segundos.

### Objetos em cache

Dois limites se aplicam a um objeto que Cache armazena: o seu tamanho e o tamanho de cada fragmento de um arquivo grande armazenado em partes.

| Escopo                                                                              | Limite                       |
| ----------------------------------------------------------------------------------- | ---------------------------- |
| Objeto único em cache                                                               | 10 GB                        |
| Tamanho do fragmento de um arquivo grande (`modules.cache.large_file_cache.offset`) | 1.024 kB por fragmento, fixo |

Um tamanho de fragmento maior que 1.024 retorna o erro `10068`, `Max Value`, com o detalhe `Ensure this value is less than or equal to 1024.` Para alterar o tamanho do fragmento, entre em contato com o time de Vendas.

### Real-Time Purge

Cada limite desta tabela se aplica a uma requisição de purge, qualquer que seja a interface que a envia. A coluna Além do limite traz o que a API retorna além do limite.

| Escopo                                                      | Limite           | Além do limite                                                                                                              |
| ----------------------------------------------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Objetos em uma requisição de purge por URL ou por cache key | 50 objetos       | Erro `10065`, `List Field Max Length`, com o detalhe `Ensure this field has no more than 50 elements.`                      |
| Wildcards em uma requisição de purge                        | 1 wildcard       | Erro `10065`, `List Field Max Length`, com o detalhe `Ensure this field has no more than 1 elements.`                       |
| Tamanho de uma URL ou cache key                             | 4.096 caracteres | A API não recusa uma URL mais longa quando recebe a requisição. Um purge de uma URL de 4.098 caracteres retorna HTTP `201`. |

Outros seis limites definem a taxa de requisições de purge, o tamanho de um wildcard e quanto histórico de purges a Azion mantém.

| Escopo                                                                 | Limite                           |
| ---------------------------------------------------------------------- | -------------------------------- |
| Requisições de purge por URL e por cache key por cliente               | 200 requisições, 50 objetos cada |
| Objetos purgados por URL e por cache key a cada 60 segundos            | 10.000 objetos                   |
| Requisições de purge por wildcard por dia, em um intervalo de 24 horas | 2.000 requisições                |
| Tamanho de um wildcard                                                 | 256 caracteres                   |
| Requisições mantidas no histórico de purges                            | 1.000.000 de requisições         |
| Tempo que uma requisição permanece no histórico de purges              | 6 meses                          |

### Uso incluído por plano

Cache é cobrado com base na métrica Purges, e cada plano de serviço inclui um número de purges por mês.

| Métrica | Hobby       | Pro         | Enterprise    |
| ------- | ----------- | ----------- | ------------- |
| Purges  | 1.000 / mês | 2.000 / mês | Personalizado |

A métrica Purges conta cada operação de purge que a conta executa durante o mês. Tiered Cache está incluído em todos os planos. A página de preços lista Data Transfer sob Application Accelerator, por isso essa quantidade fica com os limites de [Application Accelerator](#application-accelerator).

Para a tarifa além dos purges incluídos, consulte [Preços](/pt-br/documentacao/fundamentos/precos/#cache). Para obter os dados que Tiered Cache transferiu, consulte [Consulte dados de uso do Tiered Cache](/pt-br/documentacao/guias/plataforma/observabilidade/consultar-dados-de-uso-tiered-cache-com-graphql/).

---

## Application Accelerator

Application Accelerator altera um limite de um cache setting: o menor tempo que Cache mantém um objeto. `modules.cache.max_age` define esse tempo em segundos, e Azion Console apresenta o campo como **Max Age** na seção **Cache** de um cache setting. O campo aceita um inteiro de 0 a 31.536.000 e recusa qualquer valor fora dessa faixa. O estado de Application Accelerator e de Tiered Cache, ativos ou não, decide até onde um cache setting desce dentro da faixa.

### Limites padrão

Cada linha nomeia um limite de TTL de cache e a condição que o coloca em vigor.

| Escopo              | Limite                      | Aplica-se quando                                                                            |
| ------------------- | --------------------------- | ------------------------------------------------------------------------------------------- |
| TTL mínimo de cache | 60 segundos                 | Application Accelerator está desativado na aplicação, com Tiered Cache ativo ou desativado. |
| TTL mínimo de cache | 0 segundos                  | Application Accelerator está ativo e Tiered Cache está desativado.                          |
| TTL mínimo de cache | 3 segundos                  | Application Accelerator está ativo e Tiered Cache está ativo.                               |
| TTL máximo de cache | 31.536.000 segundos, um ano | Todo cache setting, quaisquer que sejam os Produtos ativos.                                 |

Um **Max Age** menor que o mínimo em vigor retorna HTTP `400`. O erro é `21021` enquanto Application Accelerator está desativado, e `21020` enquanto Application Accelerator e Tiered Cache estão ambos ativos. Um valor maior que o máximo retorna o erro `10068`. Para os títulos dos erros, consulte [Cache settings](#cache-settings).

O piso de 3 segundos vem de Tiered Cache, e não de Application Accelerator. Tiered Cache exige pelo menos 3 segundos, o que estreita o piso de 0 segundos que Application Accelerator libera. Um **Max Age** de 0 segundos ainda mantém a requisição no caminho do cache, por isso ele difere de fazer bypass do cache. Para saber como cada um trata uma requisição, consulte [Como Applications funciona](/pt-br/documentacao/plataforma/applications/como-funciona/).

Estes limites de TTL são validações que a API aplica a todo cache setting, e a Azion não os aumenta mediante solicitação. O array `cache_vary_by_method` de um cache setting aceita no máximo 2 valores, `post` e `options`, e a especificação da API define esse teto.

Uma requisição que Application Accelerator varia continua limitada pelos Produtos que armazenam o objeto e executam código sobre ele. Cache limita o próprio objeto: o tamanho de um objeto em cache e o tamanho de cada fragmento de um arquivo grande. Para esses valores, consulte [Objetos em cache](#objetos-em-cache). Uma função que a aplicação executa em [Functions](/pt-br/documentacao/plataforma/functions/) tem os seus próprios limites de código e de cada invocação. Para esses valores, consulte [Limites de Functions](/pt-br/documentacao/plataforma/functions/limites/).

### Uso incluído por plano

Application Accelerator é cobrado com base na métrica Data Transfer, e cada plano de serviço inclui uma quantidade de Data Transfer por mês.

| Métrica       | Hobby      | Pro        | Enterprise    |
| ------------- | ---------- | ---------- | ------------- |
| Data Transfer | 1 TB / mês | 2 TB / mês | Personalizado |

A variação de cache, que a página de preços lista como Custom Cache Keys, e as reescritas de path estão incluídas em todos os planos. Para as tarifas além do Data Transfer incluído, consulte [Preços](/pt-br/documentacao/fundamentos/precos/#application-accelerator).

---

## Image Processor

Image Processor limita uma única imagem com três limites padrão, e cada plano de serviço inclui um número de imagens processadas por mês. O tamanho, a largura e a altura limitam uma imagem. A quantidade mensal limita a conta.

### Limites padrão

Image Processor aplica estes limites padrão a uma imagem. Para aumentar um deles para a conta, entre em contato com o time de [suporte técnico](/pt-br/documentacao/suporte/).

| Escopo         | Limite      |
| -------------- | ----------- |
| Tamanho máximo | 150 MB      |
| Largura máxima | 3840 pixels |
| Altura máxima  | 2160 pixels |

Cada parâmetro `ims` também aceita uma faixa de valores própria. Para a faixa de cada parâmetro, consulte [Parâmetros de URL](/pt-br/documentacao/plataforma/applications/image-processor/parametros-de-url/).

### Uso incluído por plano

Todo plano de serviço inclui um número de imagens processadas por mês, e a quantidade difere por plano.

| Métrica | Hobby       | Pro          | Enterprise    |
| ------- | ----------- | ------------ | ------------- |
| Images  | 5.000 / mês | 10.000 / mês | Personalizado |

Image Processor conta uma imagem cada vez que processa uma imagem em uma requisição, seja para otimizar, recortar, redimensionar, aplicar filtros ou converter o formato. Uma imagem que Cache serve sem processamento não conta, então uma imagem derivada já em cache não soma nada nas requisições que o cache responde. Por exemplo, uma fotografia servida em três larguras conta como três imagens. As requisições posteriores que o cache responde para essas larguras não contam nenhuma.

Para as tarifas da métrica Images, consulte [Preços](/pt-br/documentacao/fundamentos/precos/#image-processor). Para obter o número de imagens que a conta processou, consulte [Consulte dados de uso do Image Processor](/pt-br/documentacao/guias/plataforma/observabilidade/consultar-dados-de-uso-image-processor-com-graphql/).

---

## Recursos relacionados

- [Primeiros passos com Application Accelerator](/pt-br/documentacao/plataforma/applications/application-accelerator/primeiros-passos.md): Ative Application Accelerator e crie um cache setting dentro destes limites de TTL.
- [Configurações do Application Accelerator](/pt-br/documentacao/plataforma/applications/application-accelerator/configuracoes.md): Os campos que Application Accelerator libera, com os seus tipos, enums e defaults.
- [Como Applications funciona](/pt-br/documentacao/plataforma/applications/como-funciona.md): Como uma requisição passa por uma aplicação, e onde Cache, Application Accelerator e Image Processor agem sobre ela.
- [Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics.md): Onde a conta acompanha o seu tráfego de Cache, Tiered Cache e Image Processor diante das quantidades desta página.
