首页前端开发Node.js腾讯云函数挂载CFS文件系统的实践(腾讯云挂载cos)

腾讯云函数挂载CFS文件系统的实践(腾讯云挂载cos)

时间2023-03-28 14:20:49发布访客分类Node.js浏览955
导读:背景在云函数开发的过程中,我们难免碰到需要访问本地文件的需求(例如:为了通过ip地址获得城市名称,云函数需要检索近一百MB的ip地址库文件),由于云函数无状态的特性,自身并不与特定服务器和本地硬盘关联,而远程访问COS对象存储等方式,则面临...

背景

在云函数开发的过程中,我们难免碰到需要访问本地文件的需求(例如:为了通过ip地址获得城市名称,云函数需要检索近一百MB的ip地址库文件),由于云函数无状态的特性,自身并不与特定服务器和本地硬盘关联,而远程访问COS对象存储等方式,则面临将大文件下载到本地缓存中仅获取寥寥数行信息。这时,挂载CFS文件系统是一个较佳的选择。

下面以Node.js 12.16的云函数环境描述如何使用serverless.yml来配置CFS文件系统。

前置操作

serverless.yml 文件中设置如下配置:

memorySize: 1024 # 由于ip地址库文件较大,提升内存的大小
cfs:
    - cfsId: cfs-xxxxxxxx # 文件系统实例 id
      mountInsId: cfs-xxxxxxxx # 文件系统挂载点 id
      localMountDir: /mnt/ # 本地挂载点,云函数目录
      remoteMountDir: / # 远程挂载点,CFS 目录

向CFS中写入文件

'use strict';
    
const fs = require('fs');
    

exports.main_handler = async (event, context) =>
 {
    
  await fs.promises.writeFile('/mnt/myfolder/myfile.txt', JSON.stringify(event));
    
  return event;

}
    ;
    

node.js代码片段,将COS中的文件写入到CFS中

APPID请在这里查看SecretId和SecretKey请在这里查看
'use strict';


const COS = require('cos-nodejs-sdk-v5')

const APPID = '130*******' // 请替换为您使用的APPID
const SECRET_ID = '******' // 请替换为您的 SecretId
const SECRET_KEY = '******' // 请替换为您的 SecretKey
const REGION = 'ap-shanghai' // 我目前使用的都是ap-shanghai,如果后续有变化,请替换为您bucket所在的地域

const cosInst = new COS({

  SecretId: SECRET_ID,
  SecretKey: SECRET_KEY
}
    );
    

exports.main_handler = async (event, context) =>
 {
    
    const bucketName = 'kanas';

    const bucket = `${
key}
-${
APPID}
    `;
    
    const downloadPath = `/mnt/ipv4.ipdb`;


    cosInst.getObject({

      Bucket: bucket, /* 填入您自己的存储桶,必须字段 */
      Region: REGION,  /* 存储桶所在地域,例如ap-shanghai,必须字段 */
      Key: 'ipv4.ipdb',  /* 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必须字段 */
      Output: downloadPath,
    }
, function(err, data) {
    
      console.log(err || data);

    }
    );


    return event
}
    ;
    

参考文档:

云函数挂载 CFS 文件系统: https://cloud.tencent.com/document/product/583/46199

创建文件系统及挂载点: https://cloud.tencent.com/document/product/582/9132

在 Linux 客户端上使用 CFS 文件系统: https://cloud.tencent.com/document/product/582/11523

在云函数 SCF上使用 CFS: https://cloud.tencent.com/document/product/582/47148

云函数tencent-multi-scf配置:

https://github.com/serverless-components/tencent-multi-scf/blob/master/docs/configure.md

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

云函数node.jsserverlessCFS

若转载请注明出处: 腾讯云函数挂载CFS文件系统的实践(腾讯云挂载cos)
本文地址: https://pptw.com/jishu/585.html
使用python实现图像识别(python实现图像识别并点击) 2023-03-27:avio_list_dir.c 是 FFmpeg 库自带的一个示例程序,它提供了列出目录中所有文件和子目录的功能,请用go语言改写.

游客 回复需填写必要信息