CloudStorageAccount e o método SetConfiguration SettingPublisher

Cloud Computing & Microsoft Azure & Microsoft Azure Storage

Aqueles que estão estudando ou trabalhando como Azure certamente já tiveram de obter as credenciais da conta de armazenamento. Neste momento você recorre ao Windows Azure Platform Training Kit e os ainda poucos artigos que tratam do assunto.

Provavelmente o código que você vai encontrar será este(do próprio WAPTK):

01

Confesso que não sou um usuário assíduo dos delagates mas uma declaração que envolve um delegate Func(T1, T2) , dentro de outro, Action(T1,T2) para mim já é preciosismo…

A falta de objetividade e clareza na documentação do Azure (o que com certeza irá mudar) aliado a esta sintaxe nada amigável (e que fique bem claro que nem sempre soluções extremamente elegantes são as melhores) cria uma espécie de antipatia para alguns desenvolvedores.

Em resumo, você está invocando um método que espera um método que utiliza um método como um parâmetro. Sei que isto parece confuso então vamos explorar a expressão lambda para entendermos melhor qual a utilização deste método:

  • O métodoSetConfigurationSettingPublisher espera um único parâmetro que é do tipo Action: Action<string,Func<string,bool>>.
  • Notem que os parâmetros que passados ​​para o nosso método, são uma string (chamada configName ) e um Func<string,bool> (chamado configSettingPublisher). Em outras palavras, Azure vai retornar o nome da configuração que está sendo recuperado, bem como um método que espera uma string e retorna um valor booleano.

Neste caso poderíamos fazer sem a expressão Lambda e definir o método como no exemplo abaixo…

02

Para os que ainda não estiverem familiarizados com as expressões Lambda, sugiro a leitura: Dissecando as expressões Lambda

Agora no momento que uma chamada é feita para recuperar as credenciais, teremos a execução do método MeuEditorDeConfiguracao.

Quando utilizamos o método CloudStorageAccount.FromConfigurationSetting, o Azure procura por um editor de configuração. Devido uma chamada anterior a SetConfigurationSettingPublisher, ele encontra o nosso método customizado e utilizando o RoleEnvironment.GetConfigurationSettingValue, nosso código obtém os valores da nossa conta e invoca o método previsto com o parâmetro Func<string, bool>.

No próximo post vamos explorar algumas possibilidades para nossas estratégias de obtenção das credenciais da conta de armazenamento  no Azure.

Código fonte do Artigo


Author's profile picture

Vitor is a computer scientist who is passionate about creating software that will positively change the world we live in.

MVP Azure - Cloud Architect - Data science enthusiast


2 minutes to read