设置配置并在本地运行 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 版本,更新 Visual Studio,但错误不会改变以上是关于设置配置并在本地运行 azure queue trigger 功能的主要内容,如果未能解决你的问题,请参考以下文章