Make sure you have an Application Setting set to your Azure Application Configuration connection string, in this example I have it named APP_CONFIG_CONNECTION
To do this in Visual Studio, right click the project, then click properties:

In your Azure Function, it will be in the configuration section:

Install the needed package:
Install-Package Microsoft.Extensions.Configuration.AzureAppConfiguration -Version 4.2.1
Add a Startup.cs file if it does not already exist:
using System;
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
[assembly: FunctionsStartup(typeof(MyNamespace.Startup))]
namespace MyNamespace
{
class Startup : FunctionsStartup
{
public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
string cs = Environment.GetEnvironmentVariable("APP_CONFIG_CONNECTION");
builder.ConfigurationBuilder.AddAzureAppConfiguration(cs);
}
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddAzureAppConfiguration();
}
}
}
Now in your functions, you can refer to your config variables by path.
Examples
[return: Queue(queueName: "%Some:Path:QueueName%", Connection = "Some:Path:ConnectionString")]
or
public async Task Run([QueueTrigger(queueName: "%Some:Path:QueueName%", Connection = "Some:Path:ConnectionString")]string myQueueItem, ILogger log)
BOOM, no settings in your project outside of the connection string. Notice that the queueName variable is surround with '%' as it is a literal, while the Connection is not as it is a variable. You can also access other variables via dependency injection as well:
private readonly SomeApiClient _api;
public My_QueueTrigger(IConfiguration configuration)
{
var config = configuration.Get<AppSettings>();
_api = new SomeApiClient (new
{
ApiUrl = config.ApiUrl,
AuthUrl = config.AuthUrl,
ClientId = config.ClientId,
ClientSecret = config.ClientSecret,
Roles = new[] { ApiRole.FullAccess }
});
}
Hope this is useful to someone else out there.