I'm not able to bind an input parameter of type blob to either string/TextReader without using the [BlobAttribute] in a C# implementation (not CSX).
The error I'm getting is:
Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.Harvester'.
Microsoft.Azure.WebJobs.Host: Cannot bind parameter 'configReader' to type
TextReader. Make sure the parameter Type is supported by the binding. If
you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure
you've called the registration method for the extension(s) in your startup
code (e.g. config.UseServiceBus(), config.UseTimers(), etc.).
function.config:
"bindings": [
{
"type": "timerTrigger",
"schedule": "0 */5 * * * *",
"useMonitor": true,
"runOnStartup": false,
"direction": "in",
"name": "myTimer"
},
{
"type": "blob",
"name": "configReader",
"path": "secured/app.config.json",
"connection": "XXX",
"direction": "in"
}
],
Function signature (NOT BINDING configReader):
[FunctionName("Harvester")]
public static async Task Run(
[TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
TraceWriter log,
TextReader configReader)
This would work though (BINDING configReader:
[FunctionName("Harvester")]
public static async Task Run(
[TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
TraceWriter log,
[Blob("secured/app.config.json", FileAccess.Read)]TextReader configReader)
Any idea on how to get it working without specifying the blob path in BlobAttribute. I'd ideally keep the Blob config outside of the code, that way my function would become more portable.

Harvesterthat contains afunction.jsonfile. Can you check if it has a property calledconfigurationSourceand what value it has?configurationSource. Were you by any chance referring toconfigReader? If so, that's as described in my original question (btw the listing above comes from the azure UI).configurationSourceis a new property that was introduced with the 2017 tooling to tell the function runtime to use attributes vs config file. Can you check the version of `` in your csproj? the latest is 1.0.2, though note that this should putconfigurationSourceto beattributes, you'll need to change that toconfigto tell the runtime to use the config instead of the attributes. Then you'll need to include that json file in your projectMicrosoft.NET.Sdk.Functionspackage, and indeed I was on1.0.0-alpha3. Switched to1.0.2and theconfigurationSroucegot rendered. Thanks for that! If I include the JSON file in the project, does it need to point to the location in my output folder (bin\Debug...)? I've included it as a file in my source tree, but it still generatesconfigurationSource: 'attributes'