Я использую Blob в качестве входной привязки, чтобы получить поток BLOB-объектов в качестве входных данных, а затем выполняю обработку этого потока текста. Для аварийного восстановления мне нужно указать LocationMode (Microsoft. Azure .Storage.RetryPolicies) как «PrimaryThenSecondary», пока функция получает поток ввода. Что такое LocationMode по умолчанию в этом случае и как его изменить.
Ниже описано, как используется привязка входных данных BLOB-объектов -
[FunctionName("FunctionName")]
public async Task RunAsync(
[EventGridTrigger]EventGridEvent eventGridEvent,
[Blob("{data.url}", FileAccess.Read, Connection = "BlobStorageConnectionString")]Stream input,
[Table("TableName", Connection = "BlobStorageConnectionString")]CloudTable cloudTable,
ILogger log)
{
//Some code
//To get the data in blob
StreamReader streamReader = new StreamReader(input);
string blobData = await streamReader.ReadToEndAsync();
}
Один из способов управления этим - получить CloudBlockBlob вместо потока в качестве ввода
[FunctionName("FunctionName")]
public async Task RunAsync(
[EventGridTrigger]EventGridEvent eventGridEvent,
[Blob("{data.url}", FileAccess.Read, Connection = "BlobStorageConnectionString")]CloudBlockBlob input,
[Table("TableName", Connection = "BlobStorageConnectionString")]CloudTable cloudTable,
ILogger log)
{
//Some code to get the stream using
// Task DownloadToFileAsync(string path, FileMode mode, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
}