Sto creando un'applicazione console WebJob di Azure che ridimensiona le immagini caricate nell'archiviazione BLOB. Quando si segue uno degli esempi di codice in linea, non sono in grado di fare riferimento e utilizzare gli attributi dei parametri di input BlobInput e BlobOutput. Sto usando il pacchetto NuGet Microsoft.Azure.Jobs 0.3.0-beta (e Microsoft.Azure.Jobs.Core).Dove sono le classi BlobInput e BlobOutput di Azure WebJob?
In quali spazi dei nomi sono presenti BlogInput e BlobOutput? C'è un altro pacchetto NuGet di cui ho bisogno?
Ecco il mio codice, che non viene compilato perché non può risolvere BlobInput e 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)
{
//...
}
}
}
Questi sono attributi, quindi i nomi dei tipi devono essere BlobInputAttribute, BlobOutputAttribute. Dovrebbe essere in Microsoft.WindowsAzure.Jobs.dll nello spazio dei nomi Microsoft.WindowsAzure.Jobs. O almeno erano lì in una volta. Prova ad aprire tutte le DLL sdk di Jobs, ad esempio, JustDecompile e cercandole. – Will
Quando decompilato Microsoft.Azure.Jobs.dll, questi attributi non sono dove possono essere trovati. Questo è l'assembly dall'ultima versione del pacchetto NuGet 0.3.0-beta. Se utilizzo un pacchetto precedente, ad esempio 0.2.0-alpha, l'assembly si chiama Microsoft.WindowsAzure.Jobs.dll e sono presenti come previsto. Pertanto, l'aggiornamento da 0.2.0 a 0.3.0 non solo rebranda il nome dell'assembly da Microsoft.WindowsAzure.Jobs a Microsoft.Azure.Jobs ma perde anche BlogInputAttribute e BlobOutputAttribute. Suppongo che un'opzione potrebbe essere usare 0.2.2, ma preferirei imparare a usare WebJobs usando la versione corrente –
. È interessante notare che Microsoft.Azure.Jobs.dll contiene BlobAttribute e BlobTriggerAttribute. Quest'ultimo è descritto nell'assembly come "Rappresenta un attributo che associa un parametro a un BLOB di Azure, causando l'esecuzione del metodo quando viene caricato un BLOB". Immagino che sia un discendente di BlobInputAttribute, forse MS sta ancora giocando con i nomi. –