我们可以在Azure功能的所有实例中更新对象吗?

时间:2019-08-22 06:38:09

标签: azure-functions

我有一个azure函数,它在启动时会加载here所述的配置。据我了解,azure函数可以在多个实例中运行。是否可以通过编程方式在所有这些实例中更新配置?

现在-我尝试创建HTTP触发函数,但是我感觉它只会在正在运行的实例中更新对象。

这是我的HTTP触发的天蓝色函数代码,用于更新config对象。

  public class TestUpdater
    {
        private IServiceProvider provider;
        public TestUpdater(IServiceProvider provider)
        {
            this.provider = provider;
        }
         [FunctionName("Update")]
        public async Task<IActionResult> Get(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "update")] HttpRequest req,
            ILogger log)
        {
            if (log is null)
            {
                throw new ArgumentNullException(nameof(log));
            }

            log.LogInformation("C# HTTP trigger function processed a request.");
           var obj = provider.GetService<MyConfig>();

           ++obj.counter;
           obj.message = obj.counter.ToString();


            return new OkObjectResult(obj);
        }
    }

1 个答案:

答案 0 :(得分:1)

即使Function应用程序在多个实例上运行,Azure基础结构也将负责在所有实例上复制代码和配置。作为最终用户,您不必为此担心。

例如扩展Function应用程序时,Azure基础结构将自动在所有实例上复制所有代码库和配置。客户无需担心在每个实例上复制代码和配置。

https://docs.microsoft.com/en-us/azure/azure-monitor/platform/autoscale-get-started?toc=%2fazure%2fapp-service%2ftoc.json

https://docs.microsoft.com/en-us/azure/azure-functions/functions-scale

相关问题