Estou iniciando um novo projeto para os clientes da AzureBrasil.cloud e durante o setup do projeto de functions me deparei com o seguinte erro:

Microsoft.Azure.WebJobs.Extensions.Timers.Storage: Could not create BlobContainerClient for ScheduleMonitor

Perdi um bom tempo tentando entender qual seria o problema, uma vez que tinha apenas uma função time trigger e algumas configurações de ambiente e serviços como mudança no template básico.

Pesquisando pelo erro a maioria dos artigos falava que o problema estava relacionado a falta do emulador (ou docker contêiner) rodando local, mas eu já tinha checado isso e até reiniciei o computador pensando que poderia ser alguma coisa com o docker.

Por um acaso me deparei com essa resposta no SO que aponta para o problema de usar configurações em formato de objetos no arquivo JSON.

E realmente esse é o problema quando usamos o modelo isolated, ele não faz o parse correto.

Configuração errada:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
    "ConnectionStrings": {
      "DefaultConnection": "Data Source=.;Initial Catalog=AzureBrasil;Integrated Security=True;TrustServerCertificate=true",
      "CacheConnection": "localhost:32768"
    }
  }
}

Configuração correta:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
    "ConnectionStrings__DefaultConnection": "Data Source=.;Initial Catalog=AzureBrasil;Integrated Security=True;TrustServerCertificate=true"
  }
}

Seguindo o modelo de configuração padrão do .net core, quando precisamos especificar uma chave de objetos utilizamos um duplo underscore __ para cara nível do objeto.

Com isso temos nosso problema resolvido!

[]s e até a próxima.

💡
Podemos te ajudar com uma revisão 100% gratuita do seu ambiente cloud.
Share this post