Azure Functions 应用程序:发布 Docker 容器的功能是什么?
Azure Functions App: what's the feature to publish a Docker container about?
我知道可以基于 Azure Functions 运行时创建 Docker 容器。 this article.
中描述了此过程的示例
好处是 Azure Functions 可以在任何地方使用 - 如果需要,我可以将容器部署到 AWS。
但这里是我变得不清楚的地方:
当您在 Azure 门户中创建新的 Functions 应用程序时,有一个标记为“发布”的开关,它允许 select “代码”或“Docker 容器”。
如果我select "Docker Container",我可以配置要使用的Docker 图像。这记录在 Microsoft's docs.
中
我的问题是:
- 为什么我要将包含 Functions 运行时的 Docker 容器部署到 Functions 应用程序中,而不是仅仅将其部署到 Azure 容器实例?
- 容器方法如何影响扩展?谁负责调度和执行功能?容器中的运行时,还是 Azure 上的 Functions 运行时?
使用 docker 容器有几个优点
- 无 sandbox(仅限 windows 计划),无限制
- 保证可以工作,因为相同的图像将用于测试、暂存和生产(并不是说正常部署不会,但是有一些东西,例如 Node.JS 的不同版本)
- 对于像 Python 这样的语言,在某些情况下需要构建外部依赖项(C++ 库等),并且对于容器,您可以保证一切都按预期工作,因为容器已经过测试(并且只建了一次)
- 自动缩放。部署到 Azure 容器实例时,函数应用程序的动态规模与部署到函数应用程序时不同。
主要有两点需要理解——调用和实例。
- 每个实例,即函数 运行 时间,在这种情况下是一个容器,可以处理许多调用,具体取决于它具有的 CPU/RAM
- 实例数量由 Azure 根据传入的事件(如 HTTP 请求、队列消息等)进行扩展
- 在 kubernetes 中 运行ning 时,扩展是通过 KEDA / KNative / HPA or similar. Also, using AKS Virtual Nodes (note limitations) 等解决方案完成的,您无需向 AKS 集群添加 "real" 个节点即可扩展。
我知道可以基于 Azure Functions 运行时创建 Docker 容器。 this article.
中描述了此过程的示例好处是 Azure Functions 可以在任何地方使用 - 如果需要,我可以将容器部署到 AWS。
但这里是我变得不清楚的地方: 当您在 Azure 门户中创建新的 Functions 应用程序时,有一个标记为“发布”的开关,它允许 select “代码”或“Docker 容器”。
如果我select "Docker Container",我可以配置要使用的Docker 图像。这记录在 Microsoft's docs.
中我的问题是:
- 为什么我要将包含 Functions 运行时的 Docker 容器部署到 Functions 应用程序中,而不是仅仅将其部署到 Azure 容器实例?
- 容器方法如何影响扩展?谁负责调度和执行功能?容器中的运行时,还是 Azure 上的 Functions 运行时?
使用 docker 容器有几个优点
- 无 sandbox(仅限 windows 计划),无限制
- 保证可以工作,因为相同的图像将用于测试、暂存和生产(并不是说正常部署不会,但是有一些东西,例如 Node.JS 的不同版本)
- 对于像 Python 这样的语言,在某些情况下需要构建外部依赖项(C++ 库等),并且对于容器,您可以保证一切都按预期工作,因为容器已经过测试(并且只建了一次)
- 自动缩放。部署到 Azure 容器实例时,函数应用程序的动态规模与部署到函数应用程序时不同。
主要有两点需要理解——调用和实例。
- 每个实例,即函数 运行 时间,在这种情况下是一个容器,可以处理许多调用,具体取决于它具有的 CPU/RAM
- 实例数量由 Azure 根据传入的事件(如 HTTP 请求、队列消息等)进行扩展
- 在 kubernetes 中 运行ning 时,扩展是通过 KEDA / KNative / HPA or similar. Also, using AKS Virtual Nodes (note limitations) 等解决方案完成的,您无需向 AKS 集群添加 "real" 个节点即可扩展。