专栏首页腾讯云Elasticsearch Service使用无服务器云函数同步COS对象存储的元信息到ES中
原创

使用无服务器云函数同步COS对象存储的元信息到ES中

背景

对象存储COS是腾讯云提供的一种存储海量文件的分布式存储服务,使用COS可以存储视频、图片、文件等各种内容。对于有海量数据的用户来说,如何管理COS中的数据的云信息成了一个迫切的需求,本文利用腾讯云提供的Serverless执行环境-无服务器云函数SCF解决了这一问题。无服务器云函数SCF支持以COS作为函数触发器,在COS Bucket中有文件发生变更时可以获取事件通知,针对该事件,可以进行变更文件的及时处理和业务通知。

实战过程

COS元信息

  • Bucket: COS桶
  • Key: COS对象标识
  • Content-Type: 文件类型
  • Content-Length: 文件长度
  • ETag:文件的 MD5 值
  • Last-Modified: 文件最后修改时间

以上字段是COS对象最基本的元信息,现在需要把每个新上传的COS对象的元信息作为一条记录,存储在ES中。

使用无服务器云函数

腾讯云无服务器云函数支持由COS事件触发,当有文件上传至用户账户下的COS Bucket时触发用户自定义的云函数执行。

云函数的代码已经上传至github中,可参考该代码进行定制化开发,github地址:https://github.com/gaobinlong/cosMeta2es.

实战过程如下:

1. clone 源码

git clone https://github.com/gaobinlong/cosMeta2es

2. 安装依赖包

pip install Elasticsearch -t ./

3. 配置cos信息与es集群地址

appid = 1  # 请替换为您的 APPID
secret_id = u'x'  # 请替换为您的 SecretId
secret_key = u'y'  # 请替换为您的 SecretKey
region = u'ap-guangzhou'  # 请替换为您bucket 所在的地域
token = ''
esEndPoint = '1.1.1.1' # 请替换为您的ES地址

4. 打包源码

打包源码目录为zip格式:
zip cosMeta2es.zip * -r

5.新建云函数

新建云函数,基于Get_COS_Object模板,点击完成。

6. 编辑函数

新建云函数完成后,在函数详情页中点击"函数代码"TAB页进行代码的编辑,提交方法选择“本地上传”,从本地上传cosMeta2es.zip文件,执行方法修改为”cos2es.main_handler“。点击保存。

7. 配置函数运行环境

在函数配置TAB页进行函数运行环境的配置,配置内存大小、网络环境。

8. 配置函数触发方式

添加如下图所示的触发方式:

9. 测试函数

在函数代码TAB页中对该函数进行测试:

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于SCF实现Elasticsearch的快照生命周期管理(SLM)

    在ES 7.4版本后,我们拥有了SLM(快照生命周期管理)的功能,但是只有X-PACK商业版才能使用该功能,快照生命周期管理的实现也比较简单,实际上就是制定计划...

    bellen
  • 基于SCF实现批量备份Elasticsearch索引到COS

    在采用ELK架构的日志应用场景中,通常我们会按天或者按小时创建索引,从而避免单个索引的数据量太大。如果我们需要对过去一段时间的老索引进行冷备份,比如通过快照备份...

    bellen
  • 巧用ingest pipeline实现Elasticsearch索引的重定向

    对于第1个问题,在7.x版本的集群中比较常见,因为所以默认只有1分片1副本,该问题的一种解决方式就是切换一个新的索引进行写入,提高新的索引的分片数量(最好保持为...

    bellen
  • Python Seaborn (3) 分布数据集的可视化

    在处理一组数据时,通常首先要做的是了解变量是如何分布的。这一章将简要介绍seborn中用于检查单变量和双变量分布的一些工具。你可能还想看看分类变量的章节,来看看...

    数据猿
  • JS函数

    形式参数 : 在函数声明时, 设置的参数。作用:占位置 ,只能在函数内部使用. 实际参数 : 在函数调用时,传入的参数。 作用 : 函数调用时,会把实参的值赋...

    羊羽shine
  • 【R语言经典实例8】如何定义一个R函数。

    使用关键字function,并在其后跟随函数参数列表和函数主体。其基本形式如下: function(param1, ...., paramN) expr

    统计学家
  • python中slice()的用法

    py3study
  • Vivado SDK 怎么添加函数?

    看看错误提示:这是个编程链接错误,意思是说在你的程序里引用了某个函数, 但是链接器找不到该定义.

    碎碎思
  • 如何把Photoshop改造成远程控制工具(RAT)来利用

    作者在本文中通过对Photoshop远程连接功能的改造利用,最终实现了对开启远程连接功能的Photoshop端操作系统的接管控制。 Photoshop远程连接功...

    FB客服
  • 《Linux命令行与shell脚本编程大全》第十七章 创建函数

    可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了。 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任...

    xcywt

扫码关注云+社区

领取腾讯云代金券