Обновление:
Спасибо, что поделились с Питером Моррисом, проблема в том, что план обслуживания d1. Итак, сначала убедитесь, что вы основаны на трех видах планов: план потребления, премиум-план и план обслуживания приложений. Когда мы используем azure функцию, даже только тестирование, мы должны использовать план потребления. Самым маленьким в производстве является S1, который обычно используется для тестирования.
Оригинальный ответ:
Приведенный ниже код отлично работает на моей стороне. Даже с планом потребления проблем нет.
using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
namespace FunctionApp35
{
public static class Function1
{
[FunctionName("Function1")]
[return: ServiceBus("test", Connection = "ServiceBusConnection")]
public static string Run([BlobTrigger("samples-workitems/{name}", Connection = "str")]Stream myBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
string a = "111111111111111";
return a;
}
}
}
Это мои локальные настройки:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=0730bowmanwindow;AccountKey=lti/ThmF+mw9BebOacp9gVazIh76Q39ecikHSCkaTcGK5hmInspX+EkjzpNmvCPWsnvapWziHQHL+kKt2V+lZw==;EndpointSuffix=core.windows.net",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"str": "DefaultEndpointsProtocol=xxxxxx",
"ServiceBusConnection": "Endpoint=sb://bowmantestxxxxxx"
}
}
Ул отсюда:
ServiceBusConnection находится здесь:
И обратите внимание, что большой двоичный объект не будет удален из контейнера после запуска функции azure. Кроме того, не забудьте создать хотя бы одну подписку в служебной шине topi c.
Все вышеперечисленное также прекрасно работает после функции быть развернутым до azure. (Отличие от локального заключается в том, что вам нужно добавить настройки в настройках конфигурации вместо local.settings. json)