Compreender como os instantâneos de blobs acumulam custos

A criação de um instantâneo, que é uma cópia só de leitura de um blob, pode resultar em custos adicionais de armazenamento de dados para a sua conta. Ao conceber a sua aplicação, é importante ter em atenção como estes custos podem acumular-se para que possa minimizar os custos desnecessários.

Considerações Importantes sobre Faturação

A lista seguinte inclui pontos-chave a considerar ao criar um instantâneo.

  • Os custos são incorridos para blocos ou páginas exclusivos, quer estejam no blob ou no instantâneo. A sua conta não incorre em custos adicionais para instantâneos associados a um blob até atualizar o blob no qual se baseiam. Depois de atualizar o blob base, este diverge dos respetivos instantâneos e ser-lhe-ão cobrados os blocos ou páginas exclusivos em cada blob ou instantâneo.

  • Quando substitui um bloco dentro de um blob de blocos, esse bloco é posteriormente cobrado como um bloco exclusivo. Isto é verdade mesmo que o bloco tenha o mesmo ID de bloco e os mesmos dados que tem no instantâneo. Assim que o bloco for consolidado novamente, este diverge do respetivo homólogo em qualquer instantâneo e ser-lhe-ão cobrados os respetivos dados. O mesmo se aplica a uma página num blob de páginas atualizada com dados idênticos.

  • Substituir um blob de blocos ao chamar o método UploadFile, UploadText, UploadStream ou UploadByteArray substitui todos os blocos nesse blob. Se tiver um instantâneo associado a esse blob, todos os blocos no blob base e no instantâneo serão agora divergentes e ser-lhe-ão cobrados todos os blocos em ambos os blobs. Isto é verdade mesmo que os dados no blob base e no instantâneo permaneçam idênticos.

  • O serviço Blob do Azure não tem meios para determinar se dois blocos contêm dados idênticos. Cada bloco carregado e consolidado é tratado como exclusivo, mesmo que tenha os mesmos dados e o mesmo ID de bloco. Uma vez que os custos são acumulados para blocos exclusivos, é importante considerar que atualizar um blob com um instantâneo resultará em blocos exclusivos adicionais e custos adicionais.

Importante

As melhores práticas ditam que gere os instantâneos cuidadosamente para evitar custos adicionais. Recomenda-se que faça a gestão de instantâneos da seguinte forma:

  • Elimine e recrie instantâneos associados a um blob sempre que atualizar o blob, mesmo que esteja a atualizar com dados idênticos, a menos que a estrutura da aplicação exija que mantenha instantâneos. Ao eliminar e recriar os instantâneos do blob, pode garantir que o blob e os instantâneos não divergem.
  • Se estiver a manter instantâneos para um blob, evite chamar UploadFile, UploadText, UploadStream ou UploadByteArray para atualizar o blob, uma vez que esses métodos substituem todos os blocos no blob. Em vez disso, atualize o menor número possível de blocos com os métodos PutBlock e PutBlockList .

Cenários de Faturação de Instantâneos

Os cenários seguintes demonstram como os custos são acumulados para um blob de blocos e os respetivos instantâneos. No Cenário 1, o blob base não foi atualizado desde que o instantâneo foi tirado, pelo que os custos são incorridos apenas para os blocos exclusivos 1, 2 e 3:

Diagrama que mostra como os blocos são cobrados no cenário 1

Cenário 1: apenas bloqueia 1, 2 e 3 custos acumulados.

No Cenário 2, o blob base foi atualizado, mas o instantâneo não. O bloco 3 foi atualizado e, apesar de conter os mesmos dados e o mesmo ID, não é o mesmo que o bloco 3 no instantâneo. Como resultado, a conta é cobrada por quatro blocos:

Diagrama a mostrar como os blocos são cobrados no cenário 2

Cenário 2: bloqueia 1, 2 e 3 nos custos de acumulação de blobs base, juntamente com o bloco 3 no instantâneo.

No Cenário 3, o blob base foi atualizado, mas o instantâneo não. O bloco 3 foi substituído pelo bloco 4 no blob base, mas o instantâneo ainda reflete o bloco 3. Como resultado, a conta é cobrada por quatro blocos:

Diagrama a mostrar como os blocos são cobrados no cenário 3

Cenário 3: blocos 1, 2, 3 e 4 custos acumulados.

No Cenário 4, o blob base foi completamente atualizado e não contém nenhum dos blocos originais. Como resultado, a conta é cobrada pelos oito blocos exclusivos. Este cenário pode ocorrer se estiver a utilizar um método de atualização, como UploadFile, UploadText, UploadFromStream ou UploadByteArray, porque estes métodos substituem todos os conteúdos de um blob.

Diagrama que mostra como os blocos são cobrados no cenário 4

Cenário 4: Blocos 1, 2, 3, 4, 5, 6, 7 e 8 custos acumulados.

Consulte também

Como Utilizar o Serviço de Armazenamento de Blobs
Como Utilizar o Serviço de Armazenamento de Filas
Criar um Instantâneo de um Blob