#c# #azure #azure-functions
#c# #azure #azure-функции
Вопрос:
Azure недавно выпустила адаптер таблиц SaaS для функций Azure. Я знаю, что эта функция является экспериментальной без документации, но я пытаюсь посмотреть, работает ли у кого-нибудь это.
Мои привязки (function.json):
{
"bindings": [
{
"name": "data",
"type": "blobTrigger",
"direction": "in",
"path": "somePathToBlob",
"connection": "connectionName_STORAGE"
},
{
"type": "apiHubTable",
"name": "output",
"connection": "sql_SQL",
"direction": "out",
"tableName": "tblEventStage"
}
],
"disabled": false
}
Затем в run.csx у меня есть:
public static void Run(string data, ITable<EventRecord> output, TraceWriter log)
{
// add some records to the table
}
Функция успешно компилируется, а затем появляется предупреждающее сообщение:
Майкрософт.Azure.Веб-задания.Хост: ошибка метода индексации «Функционирует.ProcessAppInsights’. Майкрософт.Azure.Веб-задания.Расширения.ApiHub: атрибут ApiHubTableAttribute указывает на привязку таблицы. Тип параметра должен быть одним из следующих: Microsoft.Azure.ApiHub.ITable, Microsoft.Azure.Веб-задания.IAsyncCollector. Для привязки к клиенту таблицы не указывайте имя таблицы. Для привязки к сущности укажите идентификатор сущности.
Что я делаю не так?
Ответ №1:
Нашел решение — я использовал System.Data.Linq ITable вместо ITable от Microsoft.Azure.ApiHub. Я удалил System.Data.Linq и добавлен пакет nuget для Microsoft Azure ApiHub SDK. Для этого требуется добавить файл package.json:
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.Azure.ApiHub.Sdk": "0.6.10-alpha"
}
}
}
}
Записи могут быть вставлены в таблицу с помощью:
output.CreateEntityAsync(record);