Azure limites confidenciais do razão

Azure razão confidencial limita o número de razãos em uma assinatura e os dados e o código que um razão armazena, para manter o desempenho e a disponibilidade de cada razão previsível. Este artigo descreve esses limites, como o razão responde quando uma solicitação os excede e qual desempenho esperar de um razão.

Note

Os limites neste artigo são padrões. Em determinados casos, um razão individual pode ter limites diferentes, por exemplo, um razão criado antes de um limite ser introduzido. Para solicitar limites mais altos ou discutir limitações, contate Suporte do Azure.

Limites de assinatura

O limite a seguir se aplica a cada assinatura Azure.

Limit Value
Razãos por assinatura 2

Limites de dados do razão

Os limites a seguir se aplicam a cada razão por padrão.

Limit Valor padrão Código do erro
Coleções por razão 5,000 CollectionCapacityExceeded
Comprimento da ID da coleção 256 bytes CollectionIdTooLong
Tamanho do conteúdo de uma entrada do razão 8 KiB (8.192 bytes) EntrySizeCapacityExceeded
Marcas por razão (somente razãos públicas) 10,000 TagCapacityExceeded
  • Coleções por razão: a coleção padrão não é contada. Quando um razão atinge o limite, as gravações que criariam uma nova coleção são rejeitadas. As gravações em coleções existentes ainda são bem-sucedidas.
  • Comprimento da ID da coleção: o comprimento é medido em bytes da ID codificada utf-8, após a decodificação da URL. O limite se aplica somente quando uma gravação cria uma nova coleção, para que você possa continuar gravando e lendo de coleções criadas antes de esse limite ser introduzido.
  • Tamanho do conteúdo de uma entrada do razão: o tamanho é medido em bytes do valor codificado contents em UTF-8, após a decodificação JSON. O conteúdo de exatamente 8.192 bytes é aceito. O limite se aplica a gravações em coleções novas e existentes. A ID da coleção, as marcas e outros campos da solicitação não contam para esse limite. Toda a solicitação também está sujeita ao tamanho máximo do corpo da solicitação do razão.
  • Marcas por razão: uma marca conta uma vez para cada coleção que a usa. Por exemplo, a marca chocolate usada em duas coleções conta como duas marcas. Quando um razão atinge o limite, as gravações que adicionariam uma nova marca a uma coleção são rejeitadas. As gravações sem marcas ou com marcas que a coleção já usa ainda são bem-sucedidas.

Uma gravação que excede um limite é rejeitada com o código de status HTTP 400 (Solicitação Incorreta) e nada na solicitação é gravado no razão. A resposta contém o código de erro e uma mensagem que inclui o limite que se aplica ao razão. Por exemplo:

{
  "error": {
    "code": "EntrySizeCapacityExceeded",
    "message": "Entry contents of 9000 bytes exceed the limit of 8192 bytes."
  }
}

Limites de marca por gravação

As marcas têm suporte apenas em razãos públicos. Os limites a seguir se aplicam a cada razão pública.

Limit Value
Marcas por gravação 5
Comprimento da marca 63 caracteres

As marcas não podem estar vazias e podem conter apenas os caracteres A–Z, a–z, 0–9, , -, _e ~.. Uma gravação que excede esses limites ou contém uma marca inválida é rejeitada com o código de status HTTP 400 e o código de NotAllowed erro.

Limites de função definidos pelo usuário

Os limites a seguir se aplicam a UDFs (funções definidas pelo usuário) em cada razão. As solicitações que os excedem são rejeitadas com o código de status HTTP 400.

Limit Value Código do erro
UDFs por razão 100 UserDefinedFunctionCapacityExceeded
Comprimento da ID da UDF 256 bytes InvalidFunctionId
Tamanho do código UDF 64 KiB (65.536 bytes) InvalidInput
Pré-ganchos por gravação 5 InvalidInput
Pós-ganchos por gravação 5 InvalidInput

A contagem de UDF e os limites de comprimento de ID se aplicam somente quando você cria uma UDF. Você ainda poderá atualizar um UDF existente se seu código se ajustar dentro de 64 KiB.

Para obter as opções de runtime que se aplicam quando um UDF é executado, consulte Executar UDFs. Para obter mais informações sobre pré-ganchos e pós-ganchos, consulte Ganchos de transação.

Opções de runtime de ponto de extremidade definidas pelo usuário

Os valores definidos devem PATCH /app/userDefinedEndpoints/runtimeOptions estar dentro dos intervalos a seguir. Caso contrário, a solicitação será rejeitada com o código de status HTTP 400 e o InvalidInput código de erro. Somente as opções cujo valor a solicitação muda são verificadas.

Opção de runtime Valores permitidos
max_heap_bytes Até 209.715.200 (200 MiB)
max_stack_bytes 1 a 10.485.760 (10 MiB)
max_execution_time_ms Até 10.000 (10 segundos)
max_cached_interpreters 1 a 20

Performance

O desempenho de um razão depende da carga de trabalho, como o tamanho de suas entradas, quantas solicitações você envia simultaneamente e a combinação de leituras e gravações. As diretrizes a seguir fornecem uma ideia geral do que esperar. Não é uma garantia.

Throughput

  • Um razão pode sustentar centenas de gravações por segundo. Entradas menores e solicitações mais simultâneas aumentam a taxa. Gravações que executam funções definidas pelo usuário demoram mais, dependendo do código das funções.
  • Ler a entrada mais recente de uma coleção usa menos recursos do que uma gravação, portanto, um razão geralmente pode atender a mais dessas solicitações. Obter uma entrada por ID de transação, obter uma confirmação e consultas de intervalo usa mais recursos do que ler a entrada mais recente, pois o razão primeiro carrega os dados do armazenamento. Uma alta taxa dessas solicitações reduz a taxa de transferência deixada para gravações.
  • Um cliente que aguarda cada resposta antes de enviar a próxima solicitação é limitado pelo tempo de viagem de ida e volta para o razão. Para aproveitar ao máximo um razão, envie solicitações simultaneamente e reutilize conexões.

Se sua carga de trabalho precisar de alta taxa de transferência sustentada, teste-a em um razão antes de ir para produção. Se precisar de mais taxa de transferência, entre em contato com Suporte do Azure.

Latency

  • Por padrão, uma solicitação de gravação retorna assim que o razão aceita a gravação e o razão confirma a gravação logo depois. Antes de contar com uma gravação, por exemplo, para obter seu recibo, verifique se seu status é Committed. As bibliotecas de cliente podem aguardar a confirmação para você.
  • Obter uma entrada por ID de transação, obter um recibo e consultas de intervalo pode retornar Loading primeiro, enquanto o razão carrega os dados. Repita a solicitação dentro de um minuto até que ela retorne o resultado.
  • A latência também depende da distância e da carga. Cada nova conexão precisa de um handshake TLS com o razão, portanto, reutilize as conexões e execute seus clientes perto da região do razão. Espere que a latência aumente à medida que a carga em um razão se aproxima do que ele pode sustentar.