You need to enable JavaScript to run this app.
导航

使用函数服务实现 NAS 文件系统读写

最近更新时间2024.03.07 16:18:32

首次发布时间2024.03.07 16:18:32

通过在函数上挂载 NAS 文件系统,可以实现数据的持久化存储和多函数间共享。本文为您介绍如何使用函数服务对 NAS 文件系统进行读写操作。

背景信息

本文将使用以下代码包示例为您演示如何读写 NAS 文件系统。代码核心逻辑为:当收到 HTTP 触发请求时,函数会将本次请求的 requestid 记录为 txt 文件,写入挂载的 NAS 文件系统中,并返回收到的所有请求 requestid 和本次请求 requestid。

vefaas-golang-nas-sample.zip
9.28MB

说明

本代码逻辑仅供参考,实际使用时请根据您的业务场景按需修改。

前提条件

  • 私有网络 VPC

  • NAS 文件存储

    • 已开通火山引擎 NAS 文件存储。
    • 已在函数待部署地域,创建 NAS 文件系统。详细操作请参见 创建文件系统
    • 已在目标 VPC 中创建挂载点。详细操作请参见 创建挂载点
  • 函数服务
    已开通火山引擎函数服务。

操作步骤

步骤一:创建函数并挂载 NAS

  1. 登录 函数服务控制台

  2. 在顶部导航栏,选择目标地域。

  3. 函数列表 页面,单击 创建函数,选择 创建 「内置运行时函数」

    • 基础配置
      自定义函数名称和备注信息。

    • 函数代码

      • 运行时:选择 Golang
      • 代码模板:选择 vefaas-golang-default
    • 高级配置
      启用 VPC 访问和存储配置,其他参数保持默认。

      • VPC 访问
          配置函数要绑定的私有网络 VPC、子网和安全组。其中,函数配置的 VPC 必须与 NAS 挂载点的 VPC 一致。

      • 存储配置
          配置 NAS 文件系统、挂载点、远端目录和本地目录。

        • NAS 文件系统:选择同地域的 NAS 文件系统。
        • 挂载点:选择与函数私有网络匹配的 NAS 挂载点。
        • 远端目录:配置要访问的远端 NAS 的目录。本示例为:/doc-nas-1
        • 本地目录:配置函数运行环境的本地目录。本示例为:/mnt/nas1
  4. 单击 确定,完成函数创建。

步骤二:上传代码包并配置环境变量

  1. 上传代码包
    在当前函数的代码页签,单击 上传,上传背景信息中提供的代码包示例。

  2. 配置环境变量

    1. 切换至当前函数的基础信息页签。
    2. 单击配置信息旁的编辑图标,为函数配置环境变量 NAS_LOCAL_PATH:{NAS 挂载点对应的本地目录}。本示例为NAS_LOCAL_PATH:/mnt/nas1

    说明

    本示例代码中,函数服务会通过NAS_LOCAL_PATH获取当前函数配置的 NAS 文件系统本地目录。

步骤三:发布函数

将函数的当前代码和配置发布至线上。

  1. 在函数详情页面,单击右上角的 发布

    函数版本使用 Latest。其他参数保持默认。

  2. 单击 确定。等待函数发布完成。

结果验证

  1. 测试函数,验证函数的返回结果是否符合预期。
    1. 在函数详情页面,单击右上角的 测试

    2. 在弹出的函数测试页面,配置触发器类型和测试请求。

      • 触发器类型:选择 API 网关触发器。
      • 测试请求:保持默认。
    3. 单击 测试。等待测试结果。

如图所示:函数返回了收到的所有请求 requestid 和本次请求 requestid,符合预期。

  1. 通过 Webshell 登录函数实例,查看本地目录是否写入了以 requestid 命名的 txt 文件。

    1. 切换至资源管理页签。

    2. 在实例列表中,选择任一运行中的实例,单击 Webshell,登录当前实例。

    3. 进入 NAS 挂载点对应的本地目录(本示例为/mnt/nas1),可以看到目录中写入若干以 requestid 命名的 txt 文件,符合预期。

    说明

    本代码示例每收到一次请求,会写入以当前请求 requestid 命名的 txt 文件。由于本示例执行了 7 次函数测试,故目录中总共有 7 个文件。