【问题标题】:Azure Functions without public endpoint没有公共终结点的 Azure Functions
【发布时间】:2020-04-11 04:03:33
【问题描述】:

有没有办法将一些代码部署为 Azure 函数,但不公开公开?从我在文档中看到的,AF 总是有一个公共端点。那是唯一的解决方案吗?我想构建一个解决方案,其中 AF 只能在内部访问,通过防火墙后面的服务(也没有公共访问)。这可能吗?

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    只有 HTTP 触发器函数才能获得公共端点。所有其他功能都没有。

    因此,您可以创建一个没有公共端点的队列触发函数,然后让内部服务在队列中放置一条消息,从而触发该函数。

    【讨论】:

    • 好吧,这听起来很有希望。一个问题,不过。这些功能是如何工作的?我的意思是,如果我将 1000 条消息放入一个队列中,触发函数启动,我是否会有 1000 个函数实例并行工作?或者它是可配置的?
    • 每条消息都会触发一个函数执行。如果您在消费计划(也称为“无服务器”)中托管您的函数应用,则 Azure 会根据需要将您的函数应用扩展到多个实例。
    • 是的,也许是多个实例,但不是立即启动 1000 个实例。根据我的经验,它会尝试立即从队列中取出大约 10 个项目,可能只是在单独的线程中,而不是在不同的实例中。最多可能需要 10 分钟才能慢慢开始扩大规模。
    【解决方案2】:

    简短回答 - 否。如果您通过 Azure 门户使用托管版本,则它是一项面向公众的服务。 但是,有些选项需要您做更多的工作:

    1. 有一个本地 Azure Functions。您可以在此处获得更多详细信息:https://docs.microsoft.com/en-us/azure/azure-functions/functions-runtime-overview
    2. Azure Functions 是开源的。您可以自己部署它。复制和更多说明在:https://github.com/azure/azure-webjobs-sdk-script

    【讨论】:

      【解决方案3】:

      您可以对 Azure 函数应用访问限制。看我的回答here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-29
        • 2015-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        相关资源
        最近更新 更多