繁体   English   中英

Azure Functions 应用程序:发布 Docker 容器的功能是什么?

[英]Azure Functions App: what's the feature to publish a Docker container about?

我知道可以基于 Azure Functions 运行时创建 Docker 容器。 该方法的实例描述于本文

好处是 Azure Functions 可以在任何地方使用 - 如果需要,我可以将容器部署到 AWS。

但我不清楚的地方在于:当您在 Azure 门户中创建新的 Functions 应用程序时,有一个标记为“发布”的开关,它允许选择“代码”或“Docker 容器”。

如果我选择“Docker Container”,我可以配置一个要使用的 Docker 镜像。 这记录在Microsoft 的文档中

我的问题是:

  1. 为什么我要将包含 Functions 运行时的 Docker 容器部署到 Functions 应用程序中,而不是仅仅将其部署到 Azure 容器实例?
  2. 容器方法如何影响扩展? 谁负责调度和执行这些功能? 容器中的运行时,还是 Azure 上的函数运行时?
  1. 使用 docker 容器有几个优点

    • 没有 沙箱(仅限 Windows 计划),没有限制
    • 保证工作,因为相同的图像将用于测试、暂存和生产(不是正常的部署不会,但有一些东西,例如不同版本的 Node.JS)
    • 对于像 Python 这样的语言,在某些情况下需要构建外部依赖项(C++ 库等),并且使用容器可以保证一切按预期工作,因为容器已经过测试(并且只构建一次)
    • 自动缩放。 部署到 Azure 容器实例时,与部署到函数应用时相比,函数应用不会具有相同的动态规模。
  2. 有两个主要的事情需要理解 - 调用和实例。

    • 每个实例,即函数运行时,在这种情况下是一个容器,可以根据它拥有的 CPU/RAM 处理许多调用
    • Azure 根据传入的事件(如 HTTP 请求、队列消息等)扩展实例数量。
    • 在 kubernetes 中运行时,扩展由KEDA / KNative / HPA等解决方案完成。 此外,使用AKS 虚拟节点(注意限制),您无需向 AKS 群集添加“真实”节点即可扩展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM