开发者社区 > 云原生 > Serverless > 正文

函数计算,fc执行原理,会每次调用都拉取镜像吗?

函数计算,fc执行原理,会每次调用都拉取镜像吗?

展开
收起
芬奇福贵 2023-07-28 15:48:13 66 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在函数计算中,函数的执行环境是基于 Docker 容器实现的。每次函数调用时,函数计算服务会自动启动一个新的 Docker 容器,并在其中运行函数代码。因此,如果您使用的是 Docker 镜像作为函数的运行环境,函数计算服务在每次函数调用时都会拉取该镜像并启动新的容器。

    不过,为了提高函数的执行效率和性能,函数计算服务会使用缓存机制来缓存已经拉取的镜像和容器。具体来说,函数计算服务会在第一次函数调用时拉取镜像并启动容器,然后在后续的函数调用中重用该容器,避免多次拉取镜像和启动容器的开销。

    需要注意的是,函数计算服务会定期清理超时或者空闲的容器,以释放资源和减少成本。因此,如果您的函数长时间不被调用,可能会导致容器被回收并需要重新拉取镜像和启动容器。

    2023-07-28 21:30:12
    赞同 展开评论 打赏
  • 冷启动时会

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-07-28 17:49:14
    赞同 展开评论 打赏
  • 在函数计算(Function Compute)中,每次函数调用并不会拉取镜像。函数计算采用的是容器技术,在函数第一次被调用时,会创建一个容器实例来运行函数代码,并且该容器实例会被保持在活动状态一段时间以供后续请求使用。

    当函数计算服务收到请求时,它会将请求路由到已经准备好的容器实例上,而不是每次请求都启动新的容器或拉取镜像。这样可以大大提高函数计算的性能和响应速度,因为无需每次都重新初始化容器环境。

    在容器实例的生命周期内,如果没有新的请求进入,容器实例会保持活动状态一段时间,以便快速处理后续的请求。这段时间称为“空闲时间”,空闲时间之后,如果没有新的请求进入,容器实例会被停止和释放,以节省资源。

    需要注意的是,当函数代码发生更新或版本切换时,函数计算会根据配置的策略来处理容器实例的更新。有些配置会立即销毁旧容器实例并创建新的容器实例,而有些配置可能会等待旧容器实例的空闲时间结束后再进行更新。

    2023-07-28 16:35:37
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载