public static async Task Run([TimerTrigger("0 0 0 1,15 * *")] TimerInfo myTimer, TraceWriter log, ExecutionContext context) { log.Info($"Updating Radar password: {DateTime.UtcNow}"); log4net.Config.XmlConfigurator.ConfigureAndWatch(LogManager.GetRepository(Assembly.GetEntryAssembly()), new FileInfo(Path.Combine(context.FunctionAppDirectory, "log4net.config"))); try { var keyvault = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(new AzureServiceTokenProvider().KeyVaultTokenCallback)); var oldPassword = await keyvault.GetSecretAsync(_vaultUrl, _secretName); var newPassword = CryptoMethods.GetRandomPassword(); var client = new RadarApiClient(_username, oldPassword.Value); var response = await client.UpdatePasswordAsync(newPassword); if (response.Trim() != "") { _log.Error($"Unable to set radar password, response: {response}"); } else { var result = await keyvault.SetSecretAsync(_vaultUrl, _secretName, newPassword); _log.Info($"Wandera Radar Api password updated, response: {response}"); } } catch (Exception ex) { _log.Error("Wandera password update failed", ex); throw; } }