У меня есть веб-задание, которое создает blob на основе возвращаемого значения вызова WebClient. Это работает нормально. Но, как видно из атрибута Blob (см. Код ниже), имя файла является статическим. Таким образом, он каждый раз перезаписывается в хранилище blob. КлассИменование ролика динамически для WebJob в расписании
Функция:
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}
Другие вещи, чтобы отметить:
Эта работа запускается по расписанию, поэтому хост не запускается и блокирует Это задание не запускается триггером, оно просто просыпается и r унс; Поскольку источник не поступает из объекта очереди сообщений или загруженного файла, я не могу понять, как я должен назвать этот blob.
Возможно каким-то образом использовать API хранения blob напрямую?
Perfect. Благодаря! – onefootswill
Благодаря использованию работ IBinder. Однако, пробовав его с помощью blobArgumentName, я все равно получаю 'No value для имени параметра 'name' 'error с' [Blog ("ghost/{name} .ext")] 'или' [Блог ("ghost/{BlobName} .ext ")]'. – Michael