Редактировать
Предложение ниже не работает для Trigger
, только для Binding
. Нам нужно дождаться, пока команда поддержит конечные точки Key Vault в Функциях Azure, см. Проблема с GitHub.
Я думаю, что вы ищете что-то под названием Обязательные привязки.
Я сам обнаружил их только вчера, и у меня тоже был вопрос о них. С этим типом привязок вы можете просто динамически настроить нужные вам привязки, чтобы вы могли получать данные откуда-то еще (например, из глобальной переменной или некоторого кода инициализации) и использовать их в привязке.
Я использовал его для извлечения некоторых значений из Azure Key Vault, но вы, конечно, также можете получать данные откуда-то еще. Некоторый пример кода.
// Retrieving the secret from Azure Key Vault via a helper class
var connectionString = await secret.Get("CosmosConnectionStringSecret");
// Setting the AppSetting run-time with the secret value, because the Binder needs it
ConfigurationManager.AppSettings["CosmosConnectionString"] = connectionString;
// Creating an output binding
var output = await binder.BindAsync<IAsyncCollector<MinifiedUrl>>(new DocumentDBAttribute("TablesDB", "minified-urls")
{
CreateIfNotExists = true,
// Specify the AppSetting key which contains the actual connection string information
ConnectionStringSetting = "CosmosConnectionString",
});
// Create the MinifiedUrl object
var create = new CreateUrlHandler();
var minifiedUrl = create.Execute(data);
// Adding the newly created object to Cosmos DB
await output.AddAsync(minifiedUrl);
Есть также некоторые другие атрибуты, которые вы можете использовать с императивной привязкой, я уверен, вы увидите это в документации (первая ссылка).
Вместо императивных привязок можно также использовать настройки вашего приложения.
Рекомендуется управлять секретами и строками подключения с помощью параметров приложения, а не файлов конфигурации. Это ограничивает доступ к этим секретам и делает безопасным хранение function.json в общедоступном репозитории системы управления версиями. Настройки приложения также полезны, когда вы хотите изменить конфигурацию в зависимости от среды. Например, в тестовой среде может потребоваться отслеживать другую очередь или контейнер хранилища BLOB-объектов. Параметры приложения разрешаются всякий раз, когда значение заключено в знаки процента, например %MyAppSetting%. Обратите внимание, что свойство подключения триггеров и привязок является особым случаем и автоматически разрешает значения как параметры приложения. В следующем примере показан триггер хранилища очередей Azure, который использует параметр приложения %input-queue-name% для определения очереди для запуска.
{
"bindings": [
{
"name": "order",
"type": "queueTrigger",
"direction": "in",
"queueName": "%input-queue-name%",
"connection": "MY_STORAGE_ACCT_APP_SETTING"
}
]
}
person
Jan_V
schedule
19.10.2017