Exportar (0) Imprimir
Expandir Tudo

Configuração de recursos de armazenamento local

Atualizado: novembro de 2013

Um recurso de armazenamento local é um diretório reservado no sistema de arquivos da máquina virtual na qual uma instância de uma função está sendo executada. O código sendo executado na instância poderá acessar o recurso de armazenamento local quando precisar gravar em ou ler de um arquivo. Por exemplo, um recurso de armazenamento local pode ser usado para armazenar em cache dados que talvez precisem ser acessados novamente enquanto o serviço estiver em execução no Windows Azure.

Um recurso de armazenamento local é declarado no arquivo de definição de serviço. Você pode declarar qualquer número de recursos de armazenamento local para uma função. Cada recurso de armazenamento local é reservado para todas as instâncias daquela função. A quantidade mínima de espaço em disco que você pode alocar para um recurso de armazenamento local é 1 MB. A quantidade máxima que você pode alocar para qualquer recurso local determinado depende do tamanho da máquina virtual que é especificada para a função. Cada tamanho de máquina virtual tem uma alocação de armazenamento total correspondente, e o espaço total alocado para todos os recursos de armazenamento local declarados para uma função não pode exceder o tamanho máximo alocado para o tamanho daquela máquina virtual. Para obter mais informações sobre a quantidade máxima de espaço em disco local que é alocada para o tamanho de cada máquina virtual, consulte Configurar tamanhos para serviços de nuvem.

noteObservação
  • É a responsabilidade do desenvolvedor assegurar que a quantidade de espaço em disco que é solicitada para um recurso de armazenamento local não exceda a quantidade máxima alocada para uma máquina virtual. Se você configurar um recurso de armazenamento local para ser maior que o máximo permitido, um erro não ocorrerá até que você tente uma operação de gravação que exceda o máximo permitido. Nesse caso, a operação de gravação falhará e uma mensagem de erro de falta de espaço em disco será exibida. O modelo de processamento para o Windows Azure é tentativa/falha. Se você receber um erro de falta de espaço em disco, pode tratar o erro e liberar espaço em disco. Em seguida, você pode tentar novamente a operação de gravação.

  • Você pode especificar que um recurso de armazenamento local seja preservado quando uma instância for reciclada. Porém, os dados que são salvos no sistema de arquivos local da máquina virtual não têm garantia de serem duráveis. Se sua função exigir dados duráveis, será recomendado que você use uma unidade do Windows Azure para armazenar dados de arquivo. As unidades de Windows Azure têm o backup feitos pelo serviço Blob do Windows Azure e, portanto, eles não têm garantia de serem duráveis.

Adicionando um recurso de armazenamento local

Para declarar um recurso de armazenamento local no arquivo de definição de serviço, adicione o elemento LocalResources como filho de um elemento WebRole ou do elemento WorkerRole. Em seguida, adicione um elemento LocalStorage para representar o recurso. O elemento LocalStorage leva três atributos:

  • name

  • sizeInMB: especifica o tamanho desejado para este recurso de armazenamento local

  • cleanOnRoleRecycle: especifica se o recurso de armazenamento local deve ser limpo quando uma instância de função é reciclada, ou se deve ser persistido pelo ciclo de vida da função. O valor padrão é true.

O arquivo de definição de serviço a seguir mostra dois recursos de armazenamento local que estão declarados para uma função Web:


<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" name="MyService">
  <WebRole name="MyService_WebRole" vmsize="Medium">
    <InputEndpoints>
      <InputEndpoint name="HttpIn" port="80" protocol="http" />
    </InputEndpoints>
    <ConfigurationSettings>
      <Setting name="SimpleConfigSetting" />
    </ConfigurationSettings>
    <LocalResources>
      <LocalStorage name="localStoreOne" sizeInMB="10" />
      <LocalStorage name="localStoreTwo" sizeInMB="10" cleanOnRoleRecycle="false" />
    </LocalResources>
  </WebRole>
</ServiceDefinition>

Para obter mais informações sobre o arquivo de definição de serviço, consulte Esquema de definição de serviço do Windows Azure (arquivo .csdef).

noteObservação
Se você estiver usando as Ferramentas do Windows Azure para Microsoft Visual Studio, poderá definir um recurso de armazenamento local nas páginas de Propriedades da função. Para obter mais informações, consulte Configurando o aplicativo do Windows Azure com o Visual Studio (a página pode estar em inglês).

Acessando um recurso de armazenamento local em tempo de execução

A Biblioteca Gerenciada do Windows Azure fornece classes para acessar o recurso de armazenamento local de dentro do código que está sendo executado em uma instância de função. O método RoleEnvironment.GetLocalResource retorna uma referência a um objeto LocalResource nomeado.

Como o objeto LocalResource representa um diretório, você pode lê-lo e gravar nele usando as classes de E/S padrão de arquivo do .NET. Para determinar o caminho para o diretório do recurso de armazenamento local, use a propriedade LocalResource.RootPath. Essa propriedade retorna o caminho completo para o recurso de armazenamento local, incluindo o diretório de recurso nomeado. Por exemplo, se seu serviço estiver sendo executado no ambiente de desenvolvimento, o recurso de armazenamento local será definido no seu sistema de arquivos local e a propriedade RootPath retornaria um valor semelhante ao seguinte:

C:\Users\myaccount\AppData\Local\dftmp\s0\deployment(1)\res\deployment(1).MyService.MyService_WebRole.0\directory\localStoreOne\

Quando seu serviço é implantado no Windows Azure, o caminho para o recurso de armazenamento local inclui a ID de implantação e a propriedade RootPath retorna um valor semelhante ao seguinte:

C:\Resources\directory\f335471d5a5845aaa4e66d0359e69066.MyService_WebRole.localStoreOne\

O código que está sendo executado em uma instância de função pode acessar um recurso de armazenamento local que é definido para aquela função do momento em que a instância fica online até quando fica offline.

Consulte Também

Mostrar:
© 2014 Microsoft