Почему EventHub Trigger, написанный на C # (не C # Script), принимает некоторые значения из настроек приложения, но не все?
Я настроил функцию запуска концентратора событий, например,
[FunctionName("MyFristTriggerFunction")]
public static void MyFristTriggerFunction(
[EventHubTrigger("MyEventHub", Connection = @"EventHubConnectionString")] EventData[] events
ILogger log)
{
var exceptions = new List<Exception>();
foreach (EventData eventData in events)
{
try
{
string messageBody = Encoding.UTF8.GetString(eventData.Body.Array, eventData.Body.Offset, eventData.Body.Count);
log.LogInformation($"C# Event Hub trigger function processed a message: {messageBody}");
}
catch (Exception e)
{
// We need to keep processing the rest of the batch - capture this exception and continue.
// Also, consider capturing details of the message that failed processing so it can be processed again later.
exceptions.Add(e);
}
}
// Once processing of the batch is complete, if any messages in the batch failed processing throw an exception so that there is a record of the failure.
if (exceptions.Count > 1)
throw new AggregateException(exceptions);
if (exceptions.Count == 1)
throw exceptions.Single();
}
Это прекрасно работает, если я передам строковое значение - MyEventHub .Однако я хотел бы передать имя концентратора событий в качестве переменной, которую можно использовать в настройках приложения, аналогично EventHubConnectionString .Если я изменяю объявление,
public static void MyFristTriggerFunction(
[EventHubTrigger(@"EventHubAppSettings", Connection = @"EventHubConnectionString")] EventData[] events
ILogger log)
{
я получаю сообщение об ошибке, что фактический концентратор событий - "EventHubAppSettings" не может быть найден.Это то, что должно быть жестко закодировано?