У меня запущена очередь служебной шины Azure Функция, размещенная в плане потребления, которая запускается при получении сообщения и работает нормально локально, но не запускается при развертывании через Azure конвейер выпуска DevOps. Вот подробности:
Триггер функции выглядит следующим образом:
[FunctionName("FileUploadFunction")] public async static Task Run([ServiceBusTrigger("queueName", Connection = "con")] Message message, ILogger log) {
string ftpHost = Environment.GetEnvironmentVariable("FTPHost");
string ftpUserName = Environment.GetEnvironmentVariable("FTPUser");
string ftpPassword = Environment.GetEnvironmentVariable("FTPPass");
string blobConnectionString = Environment.GetEnvironmentVariable("blobConnectionString");
}
Значения «queueName» и «con» вместе с другими переменными были объявлены в local.settings. json при работе на местном. После развертывания все это отражается в Azure Функции приложения Настройки.
.csproj файл выглядит так:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
<Platforms>AnyCPU;x64;x86</Platforms>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Azure.Storage.Blobs" Version="12.3.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.3" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.1" />
<PackageReference Include="Rebex.SshShell" Version="5.0.7357" />
<PackageReference Include="SSH.NET" Version="2016.1.0" />
<PackageReference Include="WindowsAzure.ServiceBus" Version="6.0.1" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
Функция. json в AZure портал выглядит так:
{
"generatedBy": "Microsoft.NET.Sdk.Functions-3.0.1",
"configurationSource": "attributes",
"bindings": [
{
"type": "serviceBusTrigger",
"connection": "con",
"queueName": "queueName",
"name": "message"
}
],
"disabled": false,
"scriptFile": "../bin/devServiceFUFunction.dll",
"entryPoint": "devServiceFUFunction.FileUploadFunction.Run"
}
Теперь проблема в том, что функция не выполняется или не работает, когда сообщение приходит в очередь. Я что-то пропустил?
Пожалуйста, дайте мне знать, если вам нужны какие-либо другие детали, чтобы понять проблему. Обратите внимание, что все эти переменные отображаются в настройках приложения-функции на портале Azure.