Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Cache API

Última atualização: Oct 20, 2026

A Cache API permite armazenar dados em cache nos nós de borda, garantindo respostas mais rápidas em solicitações subsequentes. configure a duração e o tamanho do cache para definir as políticas de armazenamento.

Como funciona

A Cache API nativa do Edge Routines (ER) armazena em cache os dados processados pelo ER ou buscados no servidor de origem no ESA, permitindo que outras solicitações no mesmo nó os reutilizem. Essa abordagem reduz a repetição de processamento e as solicitações de rede. A figura a seguir ilustra a relação entre o ER e o cache do ESA:How it works

Padrão da API

A Cache API segue a interface padrão Cache sempre que possível. Contudo, como o Edge Routines reutiliza o mecanismo de cache existente do ESA, a semântica não é totalmente idêntica.

Definição da API

cache.put(request/string, response)

  • Armazena um objeto Response no Cache.

    • Se a operação put for bem-sucedida, resolve para undefined.

    • Se o mecanismo de Cache falhar, rejeita com uma exceção de erro.

    • Se a cota do mecanismo de Cache for excedida, rejeita com uma exceção de erro.

  • A chave do cache é definida como a URL do objeto de requisição ou uma string de URL. (Utilize URL http. No momento, o mecanismo de Cache do ESA não oferece suporte a URL https.)

  • Trata-se de uma função assíncrona. Utilize await para garantir a conclusão da operação put .

  • defina o cabeçalho cache-control no objeto Response para configurar o TTL do cache (o cabeçalho cache-control segue os padrões de cache).

Examples

  • Armazene conteúdo no Cache.

    async function doPut() {
      await cache.put("http://www.example.com", new Response("Hello World"));
      new Response("Hello World", {headers: [["cache-control", "max-age=10"]]})); 
    }
  • Armazene conteúdo no Cache e defina o TTL.

    async function doPut() {
      await cache.put("http://www.example.com", new Response("Hello World"));
      await cache.put("http://www.example.com", 
      new Response("Hello World", {headers: [["cache-control", "max-age=10"]]})); 
    }

cache.get(request/string)

  • Recupera um objeto Response com a requisição/string especificada como chave (se o objeto não existir, resolve para undefined).

  • Trata-se de uma função assíncrona. Utilize await para garantir a conclusão da operação get.

  • A operação get pode não retornar o objeto recém-armazenado, pois o cache utiliza o algoritmo LRU e não garante a recuperação contínua do objeto em cache.

Examples

  • Utilize cache.get para recuperar um objeto Response.

    async function doGet() {
        let resp = await cache.get("http://www.example.com");
    }
  • Analise o resultado em cache como JSON.

    async function doGet() {
        let resp = await cache.get("http://www.example.com");
        let j = await resp.json();
    }

cache.delete(request/string)

  • exclua um objeto Response com a chave especificada.

    • Se a exclusão for bem-sucedida, resolve para true.

    • Se a exclusão falhar, resolve para false.

  • Trata-se de uma função assíncrona. Utilize await para garantir a conclusão da operação de exclusão.

Example (delete a resource under a key)

async function doDelete() {
  let resp = await cache.delete("http://www.example.com");
  
  if (resp) {
        console.alert("done");
  } else {
        console.alert("failed");
  }
}

Limites de uso

  • Todas as operações da Cache API atuam como sub-requisições e compartilham o limite de sub-requisições do ER. Por padrão, uma única requisição do ER aceita no máximo 32 sub-requisições fetch (esse valor pode ser alterado após a comercialização do ER). Como as operações da Cache API dividem esse limite com o fetch, a soma total de operações cache.put + cache.get + cache.delete + fetch em um único contexto de requisição não pode ultrapassar 32.

  • As operações cache.put, cache.get e cache.delete possuem controle de concorrência. Para uma mesma URL, se uma requisição executar um get enquanto outra executa um delete, a operação poderá retornar um status pendente, já que múltiplas requisições simultâneas estarão modificando a mesma chave. Nesse caso, aguarde e tente novamente.

    Nota

    Quando as operações cache.put, cache.get ou cache.delete rejeitam para true, isso indica que a operação está sujeita ao controle de concorrência.

Atualização de cache

Atualmente, a Cache API não oferece suporte à atualização ativa de cache. especifique uma duração de cache adequada por meio do parâmetro TTL ao chamar Cache.put().