设置配置并在本地运行 azure queue trigger 功能

Posted

技术标签:

【中文标题】设置配置并在本地运行 azure queue trigger 功能【英文标题】:Setup configuration and run azure queue trigger function locally 【发布时间】:2019-11-02 00:03:06 【问题描述】:

我正在尝试在本地运行 azure 队列触发功能。我安装了 Azure Storage Emulator 并运行命令“AzureStorageEmulator.exe init”在“(localdb)\MSSQLLocalDB”服务器上创建“AzureStorageEmulatorDb59”数据库。

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

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

【问题讨论】:

【参考方案1】:

更新

在 local.settings.json 中:


    "IsEncrypted": false,
    "Values": 
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    

在我的代码中:

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

“my-queue”是队列的名称,当一条消息被放入队列时,您要触发的队列。所以把它改成你要触发的队列名。

local.settings.json 中的连接字符串应该在这个format:

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

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

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

【讨论】:

感谢您的回复。要连接到 azure 存储模拟器,帐户密钥和帐户名称值是否应该是这些帐户名称:devstoreaccount1 帐户密钥:Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== 此处文档中提到的docs.microsoft.com/en-us/azure/storage/common/…? @suvenk,哦,如果你只是想在本地测试而不使用真实存储帐户,请参阅我的更新部分。 非常感谢您的详细回复。我能够让它工作并在本地运行它:) 尝试在本地运行时遇到一个奇怪的错误:The target process exited without raising a CoreCLR started event. 我尝试更改 .net 版本,更新 V​​isual Studio,但错误不会改变

以上是关于设置配置并在本地运行 azure queue trigger 功能的主要内容,如果未能解决你的问题,请参考以下文章

Azure 应用服务插槽配置并在交换期间重新启动

为 Azure Functions 本地主机配置 CORS

是否可以将 Azure 管道连接到本地服务器?

通过Azure设置SSL证书后运行本地主机的问题

如何调试在云中运行的 Azure Web 角色?

如何在 Azure DevOps 中为 .net6 iOS 应用程序配置配置文件?