3

我有以下功能,我在本地定义并能够正常调试它。

    [FunctionName("QueueTrigger")]
    public static void DUMMYFUNCTION(
    [QueueTrigger("myqueue", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
    {
        log.Info($"C# function processed: {myQueueItem}");
    }

在本地,“AzureWebJobsStorage”在 local.settings.json 文件中定义以使用具有“myqueue”的存储帐户。在 Azure 上的功能设置中,“AzureWebJobsStorage”也设置为正确的连接字符串(与本地设置的相同)。这意味着,我没有与Azure Function does not execute in Azure 相同的问题(无错误)

现在,我使用 Visual Studio Team Service 在 git 存储库中托管我的源代码。我已将部署配置为使用源代码并部署其中包含的功能。我认为该问题与 VSTS 无关,因为部署已成功执行,并且该功能显示在我的功能列表中:

azure 上的队列功能

部署完成后生成文件function.json,内容如下:

{
  "generatedBy": "Microsoft.NET.Sdk.Functions.Generator-1.0.8",
  "configurationSource": "attributes",
  "bindings": [
  {
     "type": "queueTrigger",
     "connection": "AzureWebJobsStorage",
     "queueName": "myqueue",
     "name": "myQueueItem"
  }],
  "disabled": false,
  "scriptFile": "../bin/myAssembly.dll",
  "entryPoint": "myAssembly.MyClass.DUMMYFUNCTION"
}

问题是,当我在本地调试时将项目添加到队列中时,会执行该函数,但是当该函数在 azure 上运行时却没有。

我需要在代码中进行哪些更改才能使其在 azure 上也能正常工作?我认为它可以开箱即用。

4

1 回答 1

6

您的功能是否正在运行?如果您进入 KUDU,您是否看到您的函数实际运行的任何日志?

如果您的函数根本没有运行,Azure 函数 2(使用 .NET Standard 2 框架)仍处于预览阶段(测试版)。因此,当您通过部署函数时,请确保进入函数应用的应用程序设置并将 FUNCTIONS_EXTENSION_VERSION 值设置为 beta

于 2018-02-23T18:07:59.797 回答