首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯云函数挂载CFS文件系统的实践

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

原创
作者头像
buzzfrog
发布于 2023-03-28 01:39:49
发布于 2023-03-28 01:39:49
1.8K0
举报
文章被收录于专栏:云上修行云上修行

背景

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

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

前置操作

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

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

向CFS中写入文件

代码语言:txt
AI代码解释
复制
'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请在这里查看
腾讯云APPID请在这里查看
腾讯云SecretId和SecretKey请在这里查看
腾讯云SecretId和SecretKey请在这里查看
代码语言:txt
AI代码解释
复制
'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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
nginx反向代理-多端口映射
代码解释 1.1 http:www.baidu.test.com默认是80,访问“/”利用反向代理,然后访问本地8083; 1.2 8083代表本地的前端工程访问地址,前端需要访问后台数据,”/”,继续代理到后台地址9803; 1.3 这样就做到了只要开通80端口就可以完成多个端口访问。 1.4 root配置可以是绝对路径,也可是相对路径。 server { listen 80; server_name www.baidu.test.com;
lilugirl
2019/05/28
4.1K0
Nginx学习日志(二)通过反向代理将不同域名映射到不同的端口
由于自己进行学习,所以只买了一台服务器,但是想弄多个项目部署在同一台机器上,通过不同的域名访问不同的项目。例如: 输入 www.xxx.com 访问的是服务器上 8080 端口的项目 输入 www.yyy.com 访问的是服务器上 8081 端口的项目 最后决定通过 Nginx 反向带来实现。
海加尔金鹰
2020/06/09
3.3K0
Nginx80端口转发+域名—实现IP+端口隐藏
1.打开conf下nginx.conf 在最后一个 } 前插入 include proxy.conf; 2.新建文件 proxy.conf ,进行如下配置
小诸葛
2020/04/14
7.4K0
Nginx通过二级目录(路径)映射不同的反向代理,规避IP+端口访问
这是我上一家公司的案例总结,发现躺在草稿箱好几个月了,今天得空就整理发布一下。 先说一下开发那边提来的 2 个 case: ①、同一个域名需要反向代理到前台和后台(不同机器和端口); ②、需要采用
张戈
2018/03/21
23.4K0
Nginx通过二级目录(路径)映射不同的反向代理,规避IP+端口访问
Nginx proxy_pass后的url加不加/的区别
针对情况1 :如果访问url = http://server/abc/test.jsp,则被nginx代理后,请求路径会便问http://proxy_pass/abc/test.jsp,将test/ 作为根路径,请求test/路径下的资源
云知识Online
2018/05/03
2.6K0
(转)Nginx 中配置文件 location proxy_pass路径转发规则之末尾斜杠
注:这里也可以写成:“proxy_pass http://192.168.1.31/sta/;”。当然,不推荐使用上面这种写法
leehao
2025/02/11
3230
nginx配置多个应用通过80端口访问
1、让域名供应商解析pan.a.com和www.a.com到自己的服务器,让pan.a.com指向localhost:8081,让www.a.com指向localhost:8080
聚优云惠
2020/02/21
3.2K0
nginx反向代理proxy_set_header说明
记录proxy_set_header设置 # 用途 设定被代理服务器接收到的header信息 允许重新定义或添加字段传递给代理服务器的请求头 值可以包含文本、变量和它们的组合 没有定义时会继承之前定义的值 语法: proxy_set_header field value field:变量名 value:变量值 默认值(只有两个字段被重定义): proxy_set_header Host $proxy_host; proxy_set_header Connection close; # 配置说明 项目 值
薛定喵君
2021/07/27
3.4K0
nginx配置多个server监听80端口
有时候需要部署很多个服务时,如果不想让域名的后面带上端口号这个问题应该怎么做呢,实际也是有这样的场景的,本小节来做一个学习
在水一方
2022/06/14
6.3K0
nginx配置多个server监听80端口
如何取得nginx做反向代理时的真实IP?
对于client -> nginx reverse proxy -> apache,
一见
2018/08/02
3.3K0
Nginx 真实线上案例
然后需要重启Nginx。重载Nginx配置文件不建议使用,但是可以用来检测配置文件是否有错误。
收心
2022/01/19
7730
Nginx配置反向代理和负载均衡
今天给大家介绍一下如何利用Nginx进行反向代理,之所以介绍这个的原因是,因为开发的时候遇到一个很尴尬的场景。因为是springboot项目,所以每一个控制类的端口都不一样,但是app那边所有接口都是对应一个ip和一个端口。如果我们想要实现本地app调式,就必须配置一个nginx,进行反向代理连接我们启动的服务器。废话不多说,开始我们nginx配置的介绍。
林老师带你学编程
2019/05/25
8960
nginx反向代理配置域名映射
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106401.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/05
3.4K0
通过Nginx配置域名映射到本地项目
猫头虎博主在此为大家详细讲解如何通过Nginx配置将特定域名映射到本地项目。在云计算和网络技术日益成熟的今天,使用Nginx实现域名的解析和映射成为了开发和运维人员的基本技能。本文将从Nginx的基本配置开始,深入探讨如何通过简单的配置实现域名到本地项目的映射,帮助读者理解和掌握这一重要技能。 😺
猫头虎
2024/04/09
1.6K0
通过Nginx配置域名映射到本地项目
利用Cloudflare拯救IP
今早起来发现自己开发用的主机被 GFW 屏蔽了,一般来说只会屏蔽一些端口,但是这次直接把IP给block了。
uniartisan
2022/03/02
5K0
利用Cloudflare拯救IP
Nginx
刚开始做这个网站的时候,只有一个定时任务jar包,每天定时给指定用户发短信,后来觉得其他人可能也需要这种服务,在其基础上二次开发,可扩展多任务,多用户定时任务,赚了一点点,这时候已经是部署在tomcat上了,端口占用80; 后来想自己做博客,但是博客想要使用主域名,即原服务需要修改端口,但是这种形式容易忘记端口,还需要去防火墙重新放开一个端口,想的是一个二级域名可以直接访问,这时候想到Nginx!
不期而遇丨
2022/09/09
5160
不备案的情况下,一个域名怎么给多个服务做导航?
评论区有小伙伴说域名没有备案,无法使用子域名给每个服务做转发,导致只用使用 域名:端口 的方式访问服务!
萌萌哒草头将军
2025/04/06
1820
不备案的情况下,一个域名怎么给多个服务做导航?
nginx反向代理实例配置
nginx反向代理实例配置 我们有一个主站是.NET的,是由几个小站组成的,现在我们需要再挂一个网站。 需要在windows机器上做反向代理,但是主站不在我们这里,修改起来比较麻烦。 之前的小站都是这样去反向代理的。 为了以后加小站不再麻烦别人,我们打算加一台nginx 做反向代理。 配置大概如下 server { listen 80; server_name www.xxx.com; root /home; index index.
友儿
2022/09/11
8580
Nginx灰度发布—-【cookie】、【IP】
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。
全栈程序员站长
2022/06/29
1.2K0
Nginx灰度发布—-【cookie】、【IP】
我所有在线项目的Nginx配置内容
有几个小伙伴想看看我的Nginx是怎么配置的,我这里放出来吧。 其实没太多内容,都是基本的配置: 1、域名的代理(正向/反向); 2、IP地址获取; 3、SingleR Header配置; 4、前后端配置; 5、域名配置; 6、HTTPS配置; 7、负载配置; #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.
老张的哲学
2022/04/11
5580
相关推荐
nginx反向代理-多端口映射
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档