diff --git a/edge-modules/functions/binding/src/Microsoft.Azure.WebJobs.Extensions.EdgeHub/EdgeHubTriggerBindingProvider.cs b/edge-modules/functions/binding/src/Microsoft.Azure.WebJobs.Extensions.EdgeHub/EdgeHubTriggerBindingProvider.cs
index 44a82cd0b7e..502cfa4b5b7 100644
--- a/edge-modules/functions/binding/src/Microsoft.Azure.WebJobs.Extensions.EdgeHub/EdgeHubTriggerBindingProvider.cs
+++ b/edge-modules/functions/binding/src/Microsoft.Azure.WebJobs.Extensions.EdgeHub/EdgeHubTriggerBindingProvider.cs
@@ -7,6 +7,7 @@ namespace Microsoft.Azure.WebJobs.Extensions.EdgeHub
using System.Reflection;
using System.Threading.Tasks;
using Microsoft.Azure.Devices.Client;
+ using Microsoft.Azure.WebJobs.Host;
using Microsoft.Azure.WebJobs.Host.Triggers;
///
@@ -14,11 +15,17 @@ namespace Microsoft.Azure.WebJobs.Extensions.EdgeHub
/// It's TryCreateAsync method is called by the runtime for all job parameters, giving it a chance to return a binding.
/// Please see Trigger Binding Extensions
///
- class EdgeHubTriggerBindingProvider : ITriggerBindingProvider
+ public class EdgeHubTriggerBindingProvider : ITriggerBindingProvider
{
+ readonly INameResolver nameResolver;
readonly ConcurrentDictionary> receivers = new ConcurrentDictionary>();
ModuleClient moduleClient;
+ public EdgeHubTriggerBindingProvider(INameResolver nameResolver)
+ {
+ this.nameResolver = nameResolver;
+ }
+
public async Task TryCreateAsync(TriggerBindingProviderContext context)
{
if (context == null)
@@ -33,13 +40,15 @@ public async Task TryCreateAsync(TriggerBindingProviderContext
return null;
}
+ var inputName = (this.nameResolver?.ResolveWholeString(attribute.InputName) ?? attribute.InputName).ToLowerInvariant();
+
await this.TrySetEventDefaultHandlerAsync();
var messageProcessor = new EdgeHubMessageProcessor();
var triggerBinding = new EdgeHubTriggerBinding(context.Parameter, messageProcessor);
this.receivers.AddOrUpdate(
- attribute.InputName.ToLowerInvariant(),
+ inputName,
// The function used to generate a value for an absent.
// Creates a new List and adds the message processor
(k) => new List()
@@ -70,8 +79,10 @@ async Task TrySetEventDefaultHandlerAsync()
async Task FunctionsMessageHandler(Message message, object userContext)
{
+ var inputName = message.InputName.ToLowerInvariant();
byte[] payload = message.GetBytes();
- if (this.receivers.TryGetValue(message.InputName.ToLowerInvariant(), out IList functionReceivers))
+
+ if (this.receivers.TryGetValue(inputName, out IList functionReceivers))
{
foreach (EdgeHubMessageProcessor edgeHubTriggerBinding in functionReceivers)
{
diff --git a/edge-modules/functions/binding/src/Microsoft.Azure.WebJobs.Extensions.EdgeHub/Microsoft.Azure.WebJobs.Extensions.EdgeHub.csproj b/edge-modules/functions/binding/src/Microsoft.Azure.WebJobs.Extensions.EdgeHub/Microsoft.Azure.WebJobs.Extensions.EdgeHub.csproj
index 5e4732d8065..7836f73f886 100644
--- a/edge-modules/functions/binding/src/Microsoft.Azure.WebJobs.Extensions.EdgeHub/Microsoft.Azure.WebJobs.Extensions.EdgeHub.csproj
+++ b/edge-modules/functions/binding/src/Microsoft.Azure.WebJobs.Extensions.EdgeHub/Microsoft.Azure.WebJobs.Extensions.EdgeHub.csproj
@@ -34,7 +34,7 @@
-
+