通过C#代码扩展azure函数

通过C#代码扩展azure函数,c#,azure,azure-functions,C#,Azure,Azure Functions,我是Azure函数的新手。我需要编写一些C代码,根据某些条件扩展Azure函数 例如: 我总共有10个客户需要调用Azure函数。但在这10个客户中,有一个是高优先级客户。如果该高优先级客户的任何功能请求出现,我希望扩展我的Azure功能并在新实例上运行该请求。一旦该请求完成,我想销毁这个扩展实例。这样,我的高优先级客户就可以使用完整的服务器资源 我的问题是: 有可能是我想要的吗 如果是: 怎么做? C#代码的比例应该是多少? 如何将我的请求转发到新实例? 如何销毁当前扩展实例 如果否: 在Az

我是Azure函数的新手。我需要编写一些C代码,根据某些条件扩展Azure函数

例如:
我总共有10个客户需要调用Azure函数。但在这10个客户中,有一个是高优先级客户。如果该高优先级客户的任何功能请求出现,我希望扩展我的Azure功能并在新实例上运行该请求。一旦该请求完成,我想销毁这个扩展实例。这样,我的高优先级客户就可以使用完整的服务器资源

我的问题是:

  • 有可能是我想要的吗
  • 如果是:
    怎么做?
    C#代码的比例应该是多少?
    如何将我的请求转发到新实例?
    如何销毁当前扩展实例
  • 如果否:
    在Azure功能中,为选定客户提供高优先级的最佳方式是什么

  • 在我回答你们的问题之前,我想先解释一下。Azure功能可以以两种不同的方式运行:消费计划和应用程序服务计划。为了充分利用函数(或者实际上是无服务器的),您应该在消费计划中运行函数

    • 消费计划-当您的函数运行时,Azure提供所有必要的计算资源。您不必担心资源管理,只需为代码运行时间付费
    • 应用程序服务计划-像web、移动和API应用程序一样运行您的功能。当您已经在为其他应用程序使用App Service时,您可以在同一计划上运行您的功能,而无需支付额外费用

    当您使用消费计划时,会根据传入事件的数量动态添加和删除Azure功能主机的实例。此计划会自动扩展,并且仅当您的函数正在运行时,才会对计算资源收费。在消费计划中,函数执行在可配置的时间段后超时

    关于缩放:

    Azure函数使用称为缩放控制器的组件来监视事件的速率,并确定是向外缩放还是向内缩放。比例控制器对每种触发类型使用启发式。例如,当您使用Azure队列存储触发器时,它会根据队列长度和最早队列消息的时间进行扩展

    有关缩放的更多有趣信息:

    根据您的需求,我的想法是通过在消费计划中运行函数来利用函数的真正威力。如果您有一个高优先级的客户,请给他们自己的函数实例,该实例由Blob存储中自己的容器触发(请查看@Gonzo345注释中的链接)。这确保了它一进入就得到处理,并且只有在高优先级客户触发时才会产生成本。由于消费计划的思想,它将实例化函数,运行需要运行的任何东西,并销毁实例

    顺便说一下:Blob触发器最终是轮询触发器。当有很多运动时,它们会非常快。但是,当没有太多事情发生时,存储帐户中的更改可能需要几分钟才能真正触发该功能。如果您想要实时事件处理,请查看

    现在回到你的问题:

  • 是的,应该是。它确实需要在应用程序服务计划中运行您的功能应用程序
  • 请看这里:
  • 见第2条:)

  • 这是不可能的。您不能直接影响Azure函数的缩放算法(在消费计划中)

    Blob触发器具有一些已知的限制,如中所述。特别是,处理blob时可能会有延迟


    为了更快地扩展,我建议您使用事件网格触发器,对于您的“优先级”和“非优先级”客户,它应该可以很好地扩展。请参阅。

    请求来自哪里?HTTP或其他队列?试试@Mikhail我想开发Blob触发功能我问了这个问题,misha,也许你可以帮忙