c# - 是否可以在运行时传递Azure Function ServiceBusTrigger连接

标签 c# azure azure-functions azure-functions-runtime azure-function-app

我的代码如下所示:

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并尝试读取从那里开始,我第一次运行时遇到错误,第二次连接就在那里,所以它工作正常。

我做错了什么吗请提出建议。

enter image description here

最佳答案

您的问题的解决方案有两个重要部分。

  1. 在使用服务总线触发器创建 Azure Function 期间,您必须指定将用于检索连接字符串值的连接字符串参数的名称。在这种情况下,如果您键入“ServiceBusConnectionString”,则必须在 local.settings.json 文件的“ConnectionStrings”部分中添加此类配置参数:

    {
       "IsEncrypted": false,
       "Values": {
                    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
                    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
                  },
    
     "ConnectionStrings": {
                 "ServiceBusConnectionString": "xxx"
      }
    }
    
  2. 将函数部署到 Azure 后,您应该使用门户中的“配置”部分,并且应避免使用“local.settings.json”文件,因为它仅用于本地开发:

    <

enter image description here

我希望这会有所帮助。

关于c# - 是否可以在运行时传递Azure Function ServiceBusTrigger连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61948330/

相关文章:

c# - 布局 C# 类的最佳方式是什么?

sql - 将用户凭据(用户名、密码)从 SQL DB 迁移到 Azure AD B2C

azure - 如何从另一个azure函数触发http azure函数

java - 如何在azure函数中使用rss文件

azure - 为什么 Azure 事件中心 EventData 的 PartitionKey 字段为空?

c# - 从通用列表中获取属性名称

c# - Javascript 中的 System.Drawing.Color

c# - 获取属性时如何忽略继承链?

azure - 使用rest api启动停止azure应用程序服务

Azure 门户 : How to restrict IP address access to app deployed in an Azure virtual machine?