当前位置: 首页 > 知识库问答 >
问题:

未找到作业函数。在使用CLI部署的功能时,尝试将作业类和方法公开

越朗
2023-03-14

我很感激有几个这样的问题,但我很确定我已经经历了一切,已经到了“到底是什么”的地步。

我在Azure上推出了一个v3函数,但是没有成功地将这个函数发布到.....功能。我担心Azure CLI任务会破坏一些东西。

我函数的启动是:

[assembly: FunctionsStartup(typeof(TestFunction.Startup))]

namespace TestFunction
{

    public class Startup : FunctionsStartup
    {

        public IConfiguration Configuration { get; }

        public override void Configure(IFunctionsHostBuilder builder)
        {

            // Config
            var config = new ConfigurationBuilder().AddEnvironmentVariables().Build();

            // Level
            LogEventLevel logLevel;
            switch (config["SerilogLoggingLevel"])
            {
                case "Error":
                    logLevel = LogEventLevel.Error;
                    break;
                case "Warning":
                    logLevel = LogEventLevel.Warning;
                    break;
                case "Information":
                    logLevel = LogEventLevel.Information;
                    break;
                case "Debug":
                    logLevel = LogEventLevel.Debug;
                    break;
                default:
                    logLevel = LogEventLevel.Verbose;
                    break;
            }

            // Load the logger from the settings
            var logger = new LoggerConfiguration()
                .MinimumLevel.Override("Microsoft", LogEventLevel.Error)
                .Enrich.FromLogContext()
                .WriteTo.AzureAnalytics(workspaceId: config["SerilogWorkspaceId"],
                                        authenticationId: config["SerilogAuthId"],
                                        logName: config["SerilogName"],
                                        restrictedToMinimumLevel: logLevel)
                .CreateLogger();

            // Add the logger
            builder.Services.AddLogging(c => c.AddSerilog(logger));

            // Starting
            Log.Information("Starting up!");

        }

    }

}

以及其中的函数:

public class TestEventTrigger
{

    private readonly IConfiguration _configuration;

    public TestEventTrigger(
        IConfiguration configuration)
    {
        _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
    }

    [FunctionName("TestEvent")]
    public void Run([ServiceBusTrigger("testevent", Connection = "ServiceBusConnectionString")]Message incomingMessage)
    {

        Log.Debug("Message received: '" + System.Text.Encoding.Default.GetString(incomingMessage.Body) + "'");


    }

}

我相当确定我已经安装了所有的软件包。通过网络浏览到函数似乎是可以的。

Log Analytics 的自定义日志中也不会显示任何内容。不过,该表确实已创建。

发布使用:

az functionapp deployment source config-zip

共有1个答案

谈琛
2023-03-14

事实证明,它并没有正确地推送应用程序,而是默默地失败了。修复了部署,一切都很好。

 类似资料:
  • 我正在运行本地m/c代码。 在上面的代码中,我试图在条目上触发Topic的订阅。 但当我运行代码时,它给了我一个错误 找不到函数。尝试公开作业类和方法 我在public Function类中尝试了相同的方法,但不起作用。 但是当我将ServiceBusTrigger更改为QueueTrigger时,它起作用了。 我已经正确设置了下面的配置。 我哪里说错了?

  • 我正在探索在上运行函数应用程序。这是我到目前为止所做的。 下面是新的< code>Program类,它取代了< code>Startup类: 我还有一个非常简单的HTTP触发函数: 我已经修改了我的 ,以指示函数必须在隔离模式下运行: 我使用以下参数启动函数: 问题 当我启动应用程序时,我收到以下警告消息: 我相信我在处于隔离进程中。我错过了什么? 更新 以下是版本信息:

  • 我已经创建了一个.Net 5 Azure函数应用程序项目,并使用程序.cs文件遵循隔离过程,并且它工作正常。现在我想将框架版本从dotnet 5.0更改/升级到6.0,因此更改了项目属性页中的版本,并更改了csproj文件中的版本。并将属性也从 Function 更改为 FunctionName,但它在运行时在 cmd 中显示以下错误。 添加它显示以下进程窗口超过 1 小时,当我运行我的解决方案。

  • 当我尝试在Linux(Ubuntu 18.04)中构建azure函数时,返回错误。以下是我在从git克隆存储库process.After中遵循的步骤。 在输出返回之后, 下面是关于我的系统的信息,

  • 我已经在Visual Studio 2017中创建了一个Azure Function应用程序,并且可以使用Visual Studio发布功能毫无问题地将其发布到Azure(右键单击项目,然后选择发布)。 由于从Visual Studio的开发人员实例部署不是理想的持续集成策略,我已经与TeamCity和Octopus创建了一个部署管道,其中TeamCiti构建了Azure功能应用程序,Octopu

  • 首先,我已经看了其他有同样错误信息的SO帖子,似乎没有一个能解决我的问题。我尝试了许多排列和选择。我的函数构建得很好,但是不能在CLI中运行,我得到了以下神秘的错误。MSFT文档似乎也没有答案。 未找到作业函数。试着公开你的作业类和方法。如果您使用的是绑定扩展(例如ServiceBus、定时器等),请确保在启动代码中调用了扩展的注册方法(例如config.UseServiceBus(),confi