设置配置并在本地运行 azure 队列触发功能

suv*_*enk 6 c# azure azure-queues azure-functions queuetrigger

我正在尝试在本地运行天蓝色队列触发函数。我安装了 Azure 存储模拟器并运行命令“AzureStorageEmulator.exe init”以在“(localdb)\MSSQLLocalDB”服务器上创建“AzureStorageEmulatorDb59”数据库。

在我的具有队列触发功能的azure函数项目中,我有一个local.settings.json文件。应该在该文件中添加哪些设置以及连接字符串到底应该是什么以及应该在哪里添加它?下面提到我的队列触发功能。应该添加什么来代替“QueueTrigger”属性后面提到的“my-queue”?请在这件事上给予我帮助

  [FunctionName("TestQTFunction")]
    public static void Run([QueueTrigger("my-queue", Connection = "AzureQueueConnectionString")]string myQueueItem, ILogger log)
    {
       // Do something
    }
Run Code Online (Sandbox Code Playgroud)

Iva*_*ang 3

更新:

在 local.settings.json 中:

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中:

        [FunctionName("Function1")]
        public static void Run([QueueTrigger("myqueue", Connection = "AzureWebJobsStorage")]string myQueueItem, ILogger log)
        {
            log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
        }
Run Code Online (Sandbox Code Playgroud)

“my-queue”是当消息放入队列时要触发的队列的名称。因此,将其更改为您要触发的队列名称。

local.settings.json 中的连接字符串应采用以下格式:

"AzureWebJobsStorage":"DefaultEndpointsProtocol=https;AccountName=[名称];AccountKey=[key]"

还要确保右键单击 local.settings.json 文件 -> 属性 -> 将“复制到输出目录”设置为“如果较新则复制”。

然后在 Run 方法中,将 connection="AzureQueueConnectionString" 更改为 Connection = "AzureWebJobsStorage"。