Azure函数应用程序: what's the feature to publish a Docker container about?

标签 azure docker azure-functions azure-function-app

我知道可以基于 Azure Functions 运行时创建 Docker 容器。 this article 中描述了此过程的示例。 .

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

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

如果我选择“Docker Container”,我可以配置要使用的 Docker 镜像。这记录在Microsoft's docs中.

我的问题是:

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

最佳答案

  1. 使用 Docker 容器有几个优点

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

    • 每个实例(即函数运行时,在本例中为容器)可以根据其拥有的 CPU/RAM 处理许多调用
    • Azure 根据传入的事件(例如 HTTP 请求、队列消息等)增加实例数量。
    • 在 kubernetes 中运行时,扩展是通过类似 KEDA 的解决方案完成的。/KNative/HPA或类似的。另外,使用 AKS Virtual Nodes (注意 limitations ),您无需向 AKS 集群添加“真实”节点即可进行扩展。

关于Azure函数应用程序: what's the feature to publish a Docker container about?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60544349/

相关文章:

java - Liquibase库在Micronaut 2.0中由于Nullpointer而失败

docker - 如何在devops生命周期的开发阶段使用docker?

bash - 如何直接在bash脚本中运行PowerShell核心命令?

azure - 在 Azure SAS 下允许多个 IP

docker - Kubernetes:为什么我的 NodePort 无法获取外部 ip?

azure - 静默安装 Azure 部署代理

Azure 中的 Python Web Scraper

azure - 从 Azure WebJob 连接到本地 SQL 数据库

azure - 如果我在 MS Azure 中删除图像 A,共享图像库中的图像 B 是否仍然有效(如果它基于 A)?

azure - Power BI Embedded 中的筛选参数