Azure订阅中的Azure耐用功能错误部署

时间:2020-07-18 13:49:42

标签: c# azure function dependency-injection

Error in AZ Durable Function

我在AZ耐用型中遇到此错误。

操作系统:Linux。

Csproj文件内容:

TargetFramework => netcoreapp3.1

AzureFunctionsVersion => v3

<PackageReference Include="AutoMapper" Version="9.0.0" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.1.5" 
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="3.1.5" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.3" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.2.2" />

Startup.cs代码:(..)

public override void Configure(IFunctionsHostBuilder builder)
{
  var configuration = new ConfigurationBuilder()
    .SetBasePath(Environment.CurrentDirectory)
    .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)          
    .AddUserSecrets(Assembly.GetExecutingAssembly(), true)
    .AddEnvironmentVariables().Build();

  builder.Services.RegisterServices(configuration);     
  builder.Services.AddAutoMapper(typeof(Startup).GetTypeInfo().Assembly);
}

RegisterServices()...

公共静态无效RegisterServices(此IServiceCollection服务,配置配置) {

        ConfigApi configApi = configuration.GetSection(ConfigApi.Section).Get<ConfigApi>();

        services.AddSingleton(typeof(ConfigApi), configApi);

        ApiManagerMap apiManager = configuration.GetSection(ApiManagerMap.Section).Get<ApiManagerMap>();
        var endpointList = apiManager.ApiList.ToList();

        services.AddSingleton(new AssetServiceConfig
        {
            AssetServiceEndpoint = endpointList.First(p => p.ApiName == "AssetService")
        });
        services.AddScoped<IAssetService, AssetService>();

        services.AddScoped<ICatalogMap>(x => new CatalogMap(
            x.GetRequiredService<IMapper>(), x.GetRequiredService<IAssetService>()));

        services.AddSingleton(new PimServiceConfig
        {
            PimServiceEndpoint = endpointList.First(p => p.ApiName == "PIMService")
        });
        services.AddScoped<IPimService, PimService>();

        services.AddSingleton(new CatalogServiceConfig
        {
            CatalogServiceEndpoint = endpointList.First(p => p.ApiName == "CatalogService")
        });

        services.AddScoped<ICatalogService, CatalogService>();

}

功能代码构造函数代码:(..)

private readonly ICatalogMap catalogMap;
private readonly IPimService pimService;
private readonly ICatalogService catalogService;
private readonly ConfigApi configApi;

public DownloadAndProcess(ICatalogMap catalogMap, IPimService pimService, ICatalogService catalogService, ConfigApi configApi)
{
  this.catalogMap = catalogMap;
  this.pimService = pimService;
  this.catalogService = catalogService;
  this.configApi = configApi;
}

当我将其部署到我的AZ订阅中时,总是得到提供的错误。

1 个答案:

答案 0 :(得分:0)

您需要具有Azure Functions核心工具才能运行3.x。 您可以通过在终端中运行func进行检查。 enter image description here

如果您没有运行3.x,请运行以下命令。检查核心工具的版本,然后尝试重新部署。

sudo apt-get install azure-functions-core-tools-3

Ref:https://github.com/Azure/azure-functions-core-tools