【问题标题】:How to get my sample azure function working with queues如何让我的示例 azure 函数与队列一起使用
【发布时间】:2020-03-27 14:23:03
【问题描述】:

如何在与队列通信的 mac 上使用可视化代码实现 azure 函数?

我遇到的所有示例(如下所示)似乎都显示了 Visual Studio 和 nuget 包管理器。在可视化代码中下载必要的包以与队列通信的等价物是什么?我已经下载了以下可视化代码,但出现错误

https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurestorage

代码示例

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;

namespace Company.Function
{
    public static class HttpTriggerCSharp
    {      
        [FunctionName("QueueTriggerMetadata")]
        public static void Run([QueueTrigger("101functionsqueue", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
        {
            log.Info($"C# Queue trigger function processed: {myQueueItem}");
        }
    }
}

部署时的错误消息

找不到类型或命名空间名称“QueueTriggerAttribute” (您是否缺少 using 指令或程序集引用?)

更新 csproj 文件后收到错误消息

local.settings.json 中 AzureWebJobsStorage 的值缺失。这是 除 httptrigger、kafkatrigger 之外的所有触发器都需要。你 可以运行“func azure functionapp fetch-app-settings” 或在 local.settings.json 中指定连接字符串。

【问题讨论】:

    标签: azure-functions azure-queues


    【解决方案1】:

    根据我的测试,我的功能在安装扩展“Azure Storage for Visual Studio Code”后触发成功。所以请您在安装扩展后重新创建该功能或单击VS代码中的“扩展”按钮,检查您是否已成功安装扩展并检查它是否启用(如下图所示)

    除此之外,您还需要检查扩展名是否存在于您的“csproj”文件中。在我的测试中,如果我删除

    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.4" />
    

    从“csporj”文件中,它将显示与您相同的错误消息。

    下面我发布我的 azure 函数供您参考,我在安装扩展后使用默认设置创建了该函数,它工作正常。

    【讨论】:

    • 是的,csproj 中的引用丢失了,尽管我没有看到其他错误。
    • 但这是因为我还没有在存储资源管理器中创建队列...让我创建后尝试
    • 我在存储资源管理器中使用我的 azure 帐户创建了队列,但我不知道如何告诉代码?
    • 嗨@James 您只需要启动您的功能代码并在您创建的队列中添加一条消息。然后在VS代码中进入你的功能代码,它会处理消息并打印日志。之后,返回存储资源管理器,单击“刷新”按钮,您刚才添加的消息将丢失。顺便说一句,当您创建队列时,队列名称应该与函数代码中的名称相同。所以名字应该是“101functionsqueue”。
    猜你喜欢
    • 2018-03-14
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多