in src/RequestProcessor.cs [448:486]
private static Hashtable GetTriggerMetadata(AzFunctionInfo functionInfo, InvocationRequest invocationRequest)
{
if (!functionInfo.HasTriggerMetadataParam)
{
return null;
}
const string InvocationId = "InvocationId";
const string FunctionDirectory = "FunctionDirectory";
const string FunctionName = "FunctionName";
var triggerMetadata = new Hashtable(StringComparer.OrdinalIgnoreCase);
foreach (var dataItem in invocationRequest.TriggerMetadata)
{
// MapField<K, V> is case-sensitive, but powershell is case-insensitive,
// so for keys differ only in casing, the first wins.
if (!triggerMetadata.ContainsKey(dataItem.Key))
{
triggerMetadata.Add(dataItem.Key, dataItem.Value.ToObject());
}
}
if (!triggerMetadata.ContainsKey(InvocationId))
{
triggerMetadata.Add(InvocationId, invocationRequest.InvocationId);
}
if (!triggerMetadata.ContainsKey(FunctionDirectory))
{
triggerMetadata.Add(FunctionDirectory, functionInfo.FuncDirectory);
}
if (!triggerMetadata.ContainsKey(FunctionName))
{
triggerMetadata.Add(FunctionName, functionInfo.FuncName);
}
return triggerMetadata;
}