按计划为 WebJob 动态命名 Blob
Naming Blob Dynamically for WebJob on a Schedule
我有一个基于 WebClient 调用的 return 值创建 blob 的网络作业。这工作正常。但是从 Blob 属性可以看出(见下面的代码),文件的名称是静态的。因此,它在 blob 存储中每次都会被覆盖。
函数class:
public class Functions
{
private static int _retryCount;
private static readonly int _retryLimit = int.Parse(ConfigurationManager.AppSettings["retryLimit"]);
private static readonly string _ghostRestfullUri = ConfigurationManager.AppSettings["ghostRestfullUri"];
[NoAutomaticTrigger]
public static void LightUpSite([Blob("ghost/response.json")] out string output, TextWriter logger)
{
_retryCount = 0;
output = string.Empty;
do
{
try
{
using (var request = new WebClient())
{
var response = request.DownloadString(_ghostRestfullUri);
_retryCount++;
output = response;
break;
}
}
catch(Exception exception)
{
logger.WriteLine("Job failed. Retry number:{0}", _retryCount);
}
} while (_retryCount < _retryLimit);
}
}
主菜单:
public class Program
{
static void Main()
{
var host = new JobHost();
host.Call(typeof(Functions).GetMethod("LightUpSite"));
}
}
如何使用占位符动态命名传入文件?
我已经尝试过以下方法:
- 幽灵/{名字}
- 幽灵/{BlobName}
其他注意事项:
此作业 运行 已按计划进行,因此主机不会 运行 并阻止
该作业不会被触发器调用,它只是唤醒并 运行s;
因为源不是来自消息队列对象或上传的文件,所以我不知道应该如何命名这个 blob。
也许以某种方式直接使用 blob 存储 API?
- 要动态命名输出 blob,请使用
IBinder
,如 this 示例中所示
要像从 Host.Call
调用一样动态命名输入 blob,只需将 blob 的名称作为参数传递:
static void Main()
{
var host = new JobHost();
host.Call(typeof(Functions).GetMethod("LightUpSite"), new {blobArgumentName= "container/blob"});
}
我有一个基于 WebClient 调用的 return 值创建 blob 的网络作业。这工作正常。但是从 Blob 属性可以看出(见下面的代码),文件的名称是静态的。因此,它在 blob 存储中每次都会被覆盖。
函数class:
public class Functions
{
private static int _retryCount;
private static readonly int _retryLimit = int.Parse(ConfigurationManager.AppSettings["retryLimit"]);
private static readonly string _ghostRestfullUri = ConfigurationManager.AppSettings["ghostRestfullUri"];
[NoAutomaticTrigger]
public static void LightUpSite([Blob("ghost/response.json")] out string output, TextWriter logger)
{
_retryCount = 0;
output = string.Empty;
do
{
try
{
using (var request = new WebClient())
{
var response = request.DownloadString(_ghostRestfullUri);
_retryCount++;
output = response;
break;
}
}
catch(Exception exception)
{
logger.WriteLine("Job failed. Retry number:{0}", _retryCount);
}
} while (_retryCount < _retryLimit);
}
}
主菜单:
public class Program
{
static void Main()
{
var host = new JobHost();
host.Call(typeof(Functions).GetMethod("LightUpSite"));
}
}
如何使用占位符动态命名传入文件?
我已经尝试过以下方法:
- 幽灵/{名字}
- 幽灵/{BlobName}
其他注意事项:
此作业 运行 已按计划进行,因此主机不会 运行 并阻止 该作业不会被触发器调用,它只是唤醒并 运行s; 因为源不是来自消息队列对象或上传的文件,所以我不知道应该如何命名这个 blob。
也许以某种方式直接使用 blob 存储 API?
- 要动态命名输出 blob,请使用
IBinder
,如 this 示例中所示 要像从
Host.Call
调用一样动态命名输入 blob,只需将 blob 的名称作为参数传递:static void Main() { var host = new JobHost(); host.Call(typeof(Functions).GetMethod("LightUpSite"), new {blobArgumentName= "container/blob"}); }