#c# #azure-webjobs
#c# #azure-webjobs
Вопрос:
Я создаю консольное приложение Azure WebJob, которое изменяет размеры изображений, загруженных в хранилище больших двоичных объектов. При следовании любому из примеров кода онлайн я не могу ссылаться и использовать атрибуты входных параметров BlobInput и BlobOutput. Я использую пакет NuGet от Microsoft.Azure.Задания 0.3.0-бета-версия (и Microsoft.Azure.Jobs.Core).
В каких пространствах имен находятся BlogInput и BlobOutput? Есть ли другой пакет NuGet, который мне нужен?
Вот мой код, который не компилируется, потому что он не может разрешить BlobInput и BlobOutput:
using Microsoft.Azure.Jobs;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
JobHost host = new JobHost();
host.RunAndBlock();
}
public static void SquishNewlyUploadedPNGs([BlobInput("input/{name}")] Stream input, [BlobOutput("output/{name}")] Stream output)
{
//...
}
}
}
Комментарии:
1. Это атрибуты, поэтому имена типов должны быть BlobInputAttribute , BlobOutputAttribute . Должно быть в Microsoft. WindowsAzure.Jobs . dll в Microsoft. WindowsAzure. Пространство имен заданий. Или, по крайней мере, они были там когда-то. Попробуйте открыть все библиотеки DLL Jobs sdk, скажем, в JustDecompile и выполнить их поиск.
2. Когда я декомпилирую Microsoft. Azure.Jobs . dll эти атрибуты нигде не найдены. Это сборка из последней версии пакета NuGet 0.3.0-beta. Если я использую более старый пакет, скажем 0.2.0-alpha, сборка называется Microsoft. WindowsAzure.Jobs . dll и они там, как и ожидалось. Таким образом, обновление с 0.2.0 до 0.3.0 не только меняет название сборки с Microsoft. WindowsAzure. Задания для Microsoft. Azure. Рабочие места, но также теряется BlogInputAttribute и BlobOutputAttribute. Я полагаю, одним из вариантов было бы использовать 0.2.2, но я бы предпочел научиться использовать WebJobs, используя текущую версию
3. Интересно, что я вижу, что Microsoft. Azure.Jobs . dll содержит BlobAttribute и BlobTriggerAttribute. Последний описывается в сборке как «Представляет атрибут, который связывает параметр с большим двоичным объектом Azure, вызывая запуск метода при загрузке большого двоичного объекта». Я предполагаю, что это потомок BlobInputAttribute, возможно, MS все еще играет с именами.
4. Может быть. У меня нет SDK, поэтому я не могу сказать наверняка :/
5. Имена атрибутов изменены, см. Мой ответ ниже
Ответ №1:
В бета-версии Azure WebJobs SDK мы изменили имена атрибутов, как описано ниже. Функциональность осталась прежней.
BlobInputAttribute -> BlobTriggerAttribute
BlobOutputAttribute -> BlobAttribute
QueueInputAttribute -> QueueTriggerAttribute
QueueOutputAttribute -> QueueAttribute
Кроме того, изменились имена пакетов. Вы должны использовать:
http://www.nuget.org/packages/Microsoft.Azure.Jobs/0.3.0-beta
http://www.nuget.org/packages/Microsoft.Azure.Jobs.Core/0.3.0-beta
Комментарии:
1. Спасибо, Виктор, обновленные имена работают для меня точно так, как ожидалось, спасибо за быстрый ответ.