使用NuTut包中的QueueTrigger将数据发送到Azure函数

问题描述

我一直在使用QueueTrigger测试我的Azure函数。我使用以下代码对队列进行了测试。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=storage.....etc");
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("mysecondqueue");
queue.CreateIfNotExists();
queue.AddMessage(new CloudQueueMessage($"Test {DateTime.Now}"));

这很好,但是我需要做的是将此代码放在Nuget包中。使我困扰的是,我必须将我的StorageAccount的ConnectionString硬编码放入该Nuget包中。此软件包将由第三方应用程序使用。

我可以将Azure函数与HttpTrigger一起使用,但是这种做法违背了使用队列的目的。

使用QueueTrigger从Nuget程序包中放入队列而不暴露我的存储帐户的ConnectionString的最佳方法是什么?

或者在这种情况下,我唯一的选择是使用HttpTrigger吗?

解决方法

您可以检查以下两种方法,

  1. 如果您使用队列进行负载均衡,并且不想公开存储连接字符串,则可以添加另一个Azure函数,该函数仅通过http触发器将Nuget连接到Queue并包装存储连接字符串 Nuget->函数(http触发器)->队列>函数(队列触发器)-> ....

  1. 您可以使用Azure密钥保管库并将存储连接字符串存储在密钥保管库中,并通过服务原理或任何标准方法从nuget中访问连接字符串

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...