开发函数计算的正确姿势 —— Fun 自动化 NAS 配置

简介: 开发函数计算的正确姿势 —— Fun 自动化 NAS 配置 1. 前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。

1. 前言

首先介绍下在本文出现的几个比较重要的概念:

函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考

Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考

NAS: 阿里云文件存储NAS是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统。在函数计算的场景中,由于其有代码包的限制,可以使用 NAS 存放一些不经常变动的文件,比如数据模型、静态资源等。参考

备注:请确保 Fun 工具版本在 2.16.0+

在很多函数计算的实战文章里,比如《开发函数计算的正确姿势——tensorflow serving》,我们都通过 NAS 存放一些体积比较大且不易变动的资源。这使得即使在依赖比较大的场景下,我们依旧可以借助于函数计算快速开发一个 Serverless 应用。 NAS 在帮助函数计算解决大依赖问题的同时,由于其自身 NAS 本身的配置也比较复杂,也增加了函数计算的使用难度。

为了简化使用 NAS 的体验,我们在 Fun 2.16.0 添加了一个新的配置项 NasConfig: Auto 。通过该属性,可以一键将 nas 及其依赖的 vpc 资源一同创建出来。

下面,我们先回顾下传统的 NAS 配置方法,再介绍下新的 NAS 配置方法,看新的配置方法是如何实现简化 NAS 配置步骤的效果的。

2. 传统的配置方式

《开发函数计算的正确姿势 —— 本地运行、调试、发布 NAS 函数》中,我们已经介绍过,如何在配置、调试、发布函数计算与 NAS 服务。

从文章中的介绍来看,通常情况下,为了在函数计算中使用 NAS 服务,我们通常需要经过以下几个步骤:

  1. 登陆 vpc 控制台,依次创建

    1. 专有网络
    2. 创建交换机
    3. 创建安全组
  2. 登陆 nas 控制台,依次创建

    1. 文件系统
    2. 添加挂载点
  3. 编写 template.yml,复制上面步骤创建好的资源,并编写 [VpcConfig]() 以及 NasConfig 的配置

完成上面的步骤后,template.yml 的内容如下:

ROSTemplateFormatVersion: '2015-09-01'
Transform: 'Aliyun::Serverless-2018-04-03'
Resources:
  nasDemo:
    Type: 'Aliyun::Serverless::Service'
    Properties:
      VpcConfig:
        VpcId: 'vpc-bp12hm92gdpcjtai7ua82'
        VSwitchIds: [ 'vsw-bp1gitru7oicyyb4uiylj' ]
        SecurityGroupId: 'sg-bp1243pi65bw4cjj4bks'
      NasConfig: 
        UserId: 10003
        GroupId: 10003
        MountPoints: 
          - ServerAddr: '012194b28f-ujc20.cn-hangzhou.nas.aliyuncs.com:/'
            MountDir: '/mnt/nas'

最后使用 fun local 或者 fun deploy 就可以进行调试以及部署了。

3. 新的配置方式

如果仅仅想使用 nas,但又不想关心专有网络、交换机、挂载点等相关概念,可以直接使用 Fun 2.16.0 提供的新的配置 NasConfig: Auto 。

一个使用了 NasConfig 的服务示例如下:

ROSTemplateFormatVersion: '2015-09-01'
Transform: 'Aliyun::Serverless-2018-04-03'
Resources:
  nasDemo:
    Type: 'Aliyun::Serverless::Service'
    Properties:
      NasConfig: Auto

有了 NasConfig: Auto ,不需要声明 VPC 的配置以及 NAS 的配置,在使用 fun deploy 时,Fun 会自动生成相关的配置。

部署日志类似如下: 

Waiting for service nasDemo to be deployed...
    ... ...
    using 'VpcConfig: Auto', Fun will try to generate related vpc resources automatically
        ... ...
    generated auto VpcConfig done:  {"vpcId":"vpc-bp1pcr7o8ksmgojt4rfws","vswitchIds":["vsw-bp13qdw9qe1i2it4y0700"],"securityGroupId":"sg-bp161u0547x0lq5k6i5x"}
    using 'NasConfig: Auto', Fun will try to generate related nas file system automatically
        ... ...
    generated auto NasConfig done:  {"UserId":10003,"GroupId":10003,"MountPoints":[{"ServerAddr":"0294c4a7ac-vrk7.cn-hangzhou.nas.aliyuncs.com:/nasDemo","MountDir":"/mnt/auto"}]}
    Checking if nas directories /mnt/auto/nasDemo exists, if not, it will be created automatically
    Checking nas directories done ["/mnt/auto/nasDemo"]
    ... ...
service nasDemo deploy success

从上面的部署日志可以发现,由于多了 NasConfig: Auto 的配置,部署操作会自动比传统配置方式多几步:

  1. 自动创建 VPC 相关的资源
  2. 自动创建 NAS 相关的资源
  3. 检测在函数计算配置的挂载目录是否存在,如果不存在,则自动创建

经过上面三步自动化的操作,我们就可以直接在函数计算使用 NAS 服务了。 

注意:

  1.  NasConfig: Auto 的部署效果是幂等的,即,如果依赖的相关资源不存在,则会自动创建,如果相关资源已经存在,则会直接使用相关资源。
  2. fun local、fun deploy 均支持 NAsConfig: Auto 配置
  3. 使用 NasConfig: Auto 时,NAS 文件系统会被自动挂载到函数计算运行环境的 /mnt/auto 目录

4. 总结

相对于传统的 NAS 配置方法,新的配置方法可以极大的减少了用户配置 NAS 服务与函数计算的步骤。通过新的配置方法,用户可以更方便的在函数计算中使用 NAS 服务存放数据模型、语言依赖等资源。

5. 更多参考

  1. Fun 首页 
  2. 开发函数计算的正确姿势——tensorflow serving
相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
9月前
|
人工智能 运维 安全
加速智能体开发:从 Serverless 运行时到 Serverless AI 运行时
在云计算与人工智能深度融合的背景下,Serverless 技术作为云原生架构的集大成者,正加速向 AI 原生架构演进。阿里云函数计算(FC)率先提出并实践“Serverless AI 运行时”概念,通过技术创新与生态联动,为智能体(Agent)开发提供高效、安全、低成本的基础设施支持。本文从技术演进路径、核心能力及未来展望三方面解析 Serverless AI 的突破性价值。
|
人工智能 自然语言处理 算法
AI智能混剪视频大模型开发方案:从文字到视频的自动化生成·优雅草卓伊凡
AI智能混剪视频大模型开发方案:从文字到视频的自动化生成·优雅草卓伊凡
1672 0
AI智能混剪视频大模型开发方案:从文字到视频的自动化生成·优雅草卓伊凡
|
传感器 人工智能 监控
通义灵码智能体模式在企业级开发中的应用:以云效DevOps自动化流程为例
通义灵码智能体模式具备语义理解、任务闭环与环境感知能力,结合云效DevOps实现CI/CD异常修复、测试覆盖与配置合规检查,大幅提升研发效率与质量。
530 0
|
人工智能 Java 定位技术
Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
本文详细讲解了Java开发者如何基于Spring AI Alibaba框架玩转MCP(Model Context Protocol),涵盖基础概念、快速体验、服务发布与调用等内容。重点包括将Spring应用发布为MCP Server(支持stdio与SSE模式)、开发MCP Client调用服务,以及在Spring AI Alibaba的OpenManus中使用MCP增强工具能力。通过实际示例,如天气查询与百度地图路线规划,展示了MCP在AI应用中的强大作用。最后总结了MCP对AI开发的意义及其在Spring AI中的实现价值。
3198 9
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
3077 16
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
数据采集 消息中间件 API
微店API开发全攻略:解锁电商数据与业务自动化的核心能力
微店开放平台提供覆盖商品、订单、用户、营销、物流五大核心模块的API接口,支持企业快速构建电商中台系统。其API体系具备模块化设计、双重认证机制、高并发支持和数据隔离等特性。文档详细解析了商品管理、订单处理、营销工具等核心接口功能,并提供实战代码示例。同时,介绍了企业级整合方案设计,如订单全链路自动化和商品数据中台架构,以及性能优化与稳定性保障措施。最后,针对高频问题提供了排查指南,帮助开发者高效利用API实现电商数智化转型。适合中高级开发者阅读。
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
监控 Serverless 云计算
探索Serverless架构:开发实践与优化策略
本文深入探讨了Serverless架构的核心概念、开发实践及优化策略。Serverless让开发者无需管理服务器即可运行代码,具有成本效益、高可扩展性和提升开发效率等优势。文章还详细介绍了函数设计、安全性、监控及性能和成本优化的最佳实践。
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
556 1

相关产品

  • 函数计算