Функция Azure BlobTrigger срабатывает, но BLOB-объект не найден - PullRequest
0 голосов
/ 07 июня 2019

Я наконец воспроизвел эту проблему с кодом ниже.Я просто запускаю долговременную функцию с помощью триггера BLOB-объекта, и в одной из функций деятельности я читаю BLOB-объект.НО ... когда я читаю BLOB-объект, я получаю сообщение об ошибке, что BLOB-объект не существует.

Может кто-нибудь объяснить, что я здесь делаю неправильно?

Код:

[FunctionName("BlobTrigger")]
public static async void Trigger(
[BlobTrigger("incoming-blob/{filename}", Connection = "")]Stream myBlob,
[OrchestrationClient]DurableOrchestrationClient starter,
string filename,
ILogger log)
{
    var instanceId = await starter.StartNewAsync("Orchestrator", filename);
}

[FunctionName("Orchestrator")]
public static async Task RunOrchestrator(
    [OrchestrationTrigger] DurableOrchestrationContext context)
{
    var filename = context.GetInput<string>();
    await context.CallActivityAsync("Read_Blob", filename);
}

[FunctionName("Read_Blob")]
public static async Task Activity(
    [ActivityTrigger] string filename,
    [Blob("incoming-blob")] CloudBlobContainer container,
    ILogger log)
{
    var stream = new MemoryStream();
    var blob = container.GetBlockBlobReference(filename);
    await blob.DownloadToStreamAsync(stream);
    //EXCEPTION THROWN AT ABOVE LINE.
    stream.Dispose();
}

1 Ответ

0 голосов
/ 09 июня 2019

Похоже, вы пытаетесь container.GetBlockBlobReference("filename") вместо container.GetBlockBlobReference(filename), используя переданный параметр [ActivityTrigger] string filename

...