Parâmetros de configuração de função para cache na função (ServiceConfiguration.cscfg)

Importante

A Microsoft recomenda que todos os novos desenvolvimentos usem o Cache Redis do Azure. Para obter documentação e diretrizes atuais sobre como escolher uma oferta de Cache do Azure, confira qual oferta do Cache do Azure é ideal para mim?

Este tópico descreve as configurações de cache de Microsoft Azure disponíveis no arquivo ServiceConfiguration.cscfg. Essas configurações especificam a configuração de cache na função de destino. A caixa de diálogo propriedades de função em Visual Studio define automaticamente essas configurações quando você habilita o cache. As informações de referência neste tópico são mais úteis para implantações de serviço de nuvem não Visual Studio que desejam aproveitar o cache.

ServiceConfiguration.cscfg

O exemplo a seguir mostra um arquivo ServiceConfiguration.cscfg básico que tem o cache configurado. Este exemplo tem dois caches nomeados, default e NamedCache1. Isso pode servir como um exemplo das seções de referência a seguir.

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="WindowsAzure1" xmlns="https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="3" osVersion="*" schemaVersion="2012-10.1.8">
  <Role name="WebRole1">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.NamedCaches" value="{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

NamedCaches

A configuração Microsoft.WindowsAzure.Plugins.Caching.NamedCaches especifica todos os caches e seus parâmetros de configuração. Essas informações são organizadas usando sintaxe JSON. As aspas duplas na sintaxe são associadas a caracteres de escape usando a referência de entidade de caracteres &quot;. O valor NamedCaches a seguir foi obtido do arquivo ServiceConfiguration.cscfg completo mostrado anteriormente.

{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}

O exemplo a seguir mostra a mesma configuração do exemplo anterior, mas a saída é formatada e os símbolos &quot; são substituídos por aspas duplas. Isso é mostrado para proporcionar uma melhor compreensão da sintaxe e não deve ser usado no arquivo ServiceConfiguration.cscfg.

{
    "caches": [
        {
            "name": "default",
            "policy": {
                "eviction": {"type": 0},
                "expiration": {"defaultTTL": 10, "isExpirable": true, "type": 1},
                "serverNotification": {"isEnabled": false}
            },
            "secondaries": 0
        },
        {
            "name": "NamedCache1",
            "policy": {
                "eviction": {"type": -1},
                "expiration": {"defaultTTL": 20, "isExpirable": true, "type": 2},
                "serverNotification": {"isEnabled": true}
            },
           "secondaries": 1
        }
    ]
}

Todos os caches nomeados são definidos em um campo de caches de nível superior. Cada cache nomeado é definido pelos três campos a seguir.

Campo Caches Descrição

name

Especifica o nome do cache.

política

Uma política para parâmetros de remoção, expiração e notificação.

Secundários

Define o número de cópias de backup a serem mantidas para proporcionar alta disponibilidade. Atualmente, esse valor deve ser 0 ou 1. Um valor 0 desabilita a alta disponibilidade.

O campo de política consiste nas propriedades a seguir.

Campo Policy Descrição

Despejo

Contém um único campo, tipo, que especifica o tipo de remoção. Os valores possíveis são 0 (LRU) e -1 (Nenhum). Um valor 0 habilita a remoção dos itens menos utilizados recentemente. Um valor -1 desabilita a remoção.

expiration

Contém três campos que descrevem a política de expiração.

  1. defaultTTL: o número de minutos que os itens permanecem no cache antes de expirar.

  2. isExpirable: um valor de habilitação de true expiração e um valor de desabilita false a expiração.

  3. tipo: o tipo de expiração. Um valor 0 desabilita a expiração. Um valor 1 especifica expiração absoluta. Um valor 2 especifica expiração deslizante. Com a expiração deslizante, cada acesso ao item no cache redefine o tempo de expiração.

Importante

No tipo está definido como 0 (desabilitado), isExpirable deve ser definido como fasle, e defaultTTL deve ser definido como 0.

serverNotification

Contém um único campo, isEnabled, que especifica se as notificações estão habilitadas para esse cache.

ClientDiagnosticLevel

Especifica o nível inicial de coleta de diagnóstico para cache. Essa configuração é específica das informações de diagnóstico para funções que são clientes de um cache. São fornecidas informações de diagnóstico sobre o uso do cache do ponto de vista do cliente. Observe que, na topologia colocalizada, é possível usar ClientDiagnosticLevel e DiagnosticLevel na mesma configuração de função.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />

DiagnosticLevel

Especifica o nível inicial de coleta de diagnóstico para cache. Essa configuração é específica para informações de diagnóstico sobre as funções que hospedam o cache.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />

CacheSizePercentage

A porcentagem de memória disponível a ser usada para cache. Em topologias colocalizadas, deve ser um número inteiro sem sinal de porcentagem, como 30.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />

Em topologias dedicadas, deve ser uma cadeia de caracteres vazia.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="" />

ConfigStoreConnectionString

A conta de armazenamento do Azure a ser usada para cache. Esse armazenamento é usado para conter dados de configuração sobre o cluster de cache, que estão acessíveis a todas as máquinas virtuais que compõem o cluster. Observe que o exemplo a seguir usa o armazenamento de desenvolvedor para depuração local. Antes de implantar na nuvem, você deve alterar isso para uma conta de armazenamento real.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />