我的代码如下所示:
public class Startup : IWebJobsStartup
{
public async void Configure(IWebJobsBuilder builder)
{
Get Connection string Via HTTP Service.
ServiceBusConnectionString = jArray["connectionString"].ToString();
}
}
我想通过这样的连接
[FunctionName("FunctionTopicMessageLogger")]
public void Run([ServiceBusTrigger("topic", "FunctionTopicMessageLogger",Connection = **ServiceBusConnectionString** )]Message mySbMsg)
{
}
这是我第一次使用 Local.setting.json 文件
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"Connectinstring": " "
}
}
问题是连接只接受常量参数(因此不允许更改)所以我尝试写入local.setting.json并尝试读取从那里开始,我第一次运行时遇到错误,第二次连接就在那里,所以它工作正常。
我做错了什么吗请提出建议。
最佳答案
您的问题的解决方案有两个重要部分。
在使用服务总线触发器创建 Azure Function 期间,您必须指定将用于检索连接字符串值的连接字符串参数的名称。在这种情况下,如果您键入“ServiceBusConnectionString”,则必须在 local.settings.json 文件的“ConnectionStrings”部分中添加此类配置参数:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet" }, "ConnectionStrings": { "ServiceBusConnectionString": "xxx" } }
将函数部署到 Azure 后,您应该使用门户中的“配置”部分,并且应避免使用“local.settings.json”文件,因为它仅用于本地开发:
<
我希望这会有所帮助。
关于c# - 是否可以在运行时传递Azure Function ServiceBusTrigger连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61948330/