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:
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.