I´m playing a bit more with the web Jobs sdk and I just need to call a method via a scheduler and it should write 1-n files to the storage. The good part of the WebJobs SDK is that I don´t need to include the Azure Storage SDK and everything is "binded". It works when I specify the filename, but my "WriteCustomFile" method just writes a file called "{name}"
Code:
class Program
{
static void Main(string[] args)
{
JobHost host = new JobHost();
host.Call(typeof(Program).GetMethod("WriteFile"));
host.Call(typeof(Program).GetMethod("WriteCustomFile"), new { name = "Helloworld1.txt" });
host.Call(typeof(Program).GetMethod("WriteCustomFile"), new { name = "Helloworld2.txt" });
host.Call(typeof(Program).GetMethod("WriteCustomFile"), new { name = "Helloworld3.txt" });
//host.RunAndBlock();
}
[NoAutomaticTrigger]
public static void WriteFile([Blob("container/foobar.txt")]TextWriter writer)
{
writer.WriteLine("Hello World..." + DateTime.UtcNow.ToShortDateString() + " - " + DateTime.UtcNow.ToShortTimeString());
}
[NoAutomaticTrigger]
public static void WriteCustomFile(string name, [Blob("container/{name}")] TextWriter writer)
{
writer.WriteLine("Hello World New ..." + name + ":" + DateTime.UtcNow.ToShortDateString() + " - " + DateTime.UtcNow.ToShortTimeString());
}
}
What I would like to achieve is just to call the "WriteCustomFile" with a given filename. All samples that I found are using the "Blob Input / Output" idea in mind. I found this sample, but it seems more like a hack ;) http://thenextdoorgeek.com/post/WAWS-WebJob-to-upload-FREB-files-to-Azure-Storage-using-the-WebJobs-SDK
Is there currently a way to do this?
WebJobs SDK 3.0.1 does not support the "fancy" parameter binding for Host.Call
(and invoke from dashboard) - we'll add that in a future version.
For now, the workaround is to explicitly specify the path to the blob:
static void Main(string[] args)
{
JobHost host = new JobHost();
host.Call(
typeof(Program).GetMethod("WriteCustomFile"),
new {
name = "Helloworld1.txt",
writer = "container/Helloworld1.txt" });
}
[NoAutomaticTrigger]
public static void WriteCustomFile(string name, [Blob("container/{name}")] TextWriter writer)
{
writer.WriteLine("Hello World New ..." + name + ":" + DateTime.UtcNow.ToShortDateString() + " - " + DateTime.UtcNow.ToShortTimeString());
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With