前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >公有云-实验三 使用无服务器函数发邮件

公有云-实验三 使用无服务器函数发邮件

作者头像
2546610233
发布2024-05-08 16:58:17
740
发布2024-05-08 16:58:17
举报
文章被收录于专栏:误入歧途误入歧途

实验三 使用无服务器函数发邮件

概述

在本实验中,我们将会使用腾讯云的消息队列CKafka、无服务器云函数SCF和对象存储COS,实现一个异常日志检测及记录系统。当业务系统中的应用功能程序生成日志后,会把日志信息通过消息实时传输到CKafka服务端。通过配置异常日志检测SCF的触发规则,一旦日志消息投递成功即可触发异常日志监测SCF的逻辑。异常日志监测SCF会监测接收到的日志消息是否含有异常关键字,然后把异常信息归档后投递到COS并发送邮件到指定的邮箱,从而实现无服务器函数发送邮件的目的。

实验环境

1、 实验组网介绍

2、 实验数据规划(数据规划表)

数据项

数据

说明

腾讯云账号

账号:XXXXXXXXX 密码:XXXXXXXXXX

涉及产品如下: CKafka VPC SCF COS CVM

3、 实验环境确认

能够通过浏览器连接腾讯云官网

配置表

购买产品

规格

备注

消息队列CKafka

地域:华南地区(广州)

使用腾讯提供的代金券购买

私有网络VPC

地域:华南地区(广州)

使用腾讯提供的代金券购买

无服务器云函数SCF

模板函数“Ckafka消息投递COS”

使用腾讯提供的代金券购买

对象存储COS

地域:中国-广州;私有读写

使用腾讯提供的代金券购买

云服务器CVM

广州1核1GB CentOS7.2 64位

使用腾讯提供的代金券购买

前提条件

本实验要求:

  • 运行Microsoft Windows,可以接入互联网的笔记本电脑或者台式机
  • Internet浏览器,例如Chrome, IE或Firefox
  • 能够通过浏览器连接腾讯云官网
  • SSH客户端

实验流程

实验目标

完成本实验后,您将能够:

  • 创建Ckafka
  • 新建函数服务
  • 配置函数、编写函数代码
  • 测试函数
  • 通过CKafka触发调用SCF

通过该实验,学员能够在腾讯云平台上创建CKafka和函数服务,并通过Ckafka调用SCF,实现在无服务器的环境下实现邮件发送功能。本实验实验时长为1.5小时。

任务1 创建消息队列

【任务目标】

在腾讯云平台的消息队列Ckafka管理控制台中创建Ckafka实例。

【任务步骤】

1、 在【腾讯云控制台】中,鼠标依次悬停【云产品-中间件-消息队列CKafka】,单击进入【消息队列CKafka】;在左侧导航栏中,点击【实例列表】,单击【新建】。

  • 【计费模式】包年包月
  • 【地域】默认切换到“华南地区(广州)”
  • 【可用区】广州三区
  • 【产品规格】入门型,根据实际需求
  • 【磁盘容量】300GB,根据实际需求
  • 【私有网络】需要事先创建一个地域相同的VPC及一个可用区相同的子网
  • 【消息保留】24小时,根据实际需求
  • 【实例名称】even_ckafka,自由创建
  • 【购买数量】1,根据实际需求
  • 【购买时长】1个月,根据实际需求
  • 单击【立即购买】;

2、 购买完成后,可以在控制台列表中查看购买的Ckafka

3、 点击新创建的Ckafka实例进入实例详情页,点击【topic管理】,单击【新建】。

  • 【名称】even_test,自行创建
  • 其余保持默认,单击【提交】

任务2 创建COS桶

【任务目标】

通过腾讯云对象存储控制台,创建COS桶,用于存放云函数处理后的Ckafka消息。

【任务步骤】

1、 在【腾讯云控制台】中,鼠标依次悬停【云产品-存储-对象存储】,单击进入【对象存储】;在左侧导航栏中,点击【存储桶列表】,单击【创建存储桶】。

  • 【名称】ckafka-backcup,自由创建
  • 【所属地域】中国-广州
  • 【访问权限】私有读写
  • 其余保持默认,点击【确定】

任务3 创建无服务器函数

【任务目标】

通过腾讯云无服务器云函数控制台,创建函数服务,进行函数代码编写并完成函数测试。

【任务步骤】

1、 在【腾讯云控制台】中,鼠标依次悬停【云产品-Serverless-云函数】,单击进入【云函数】;在左侧导航栏,点击【函数服务】,右侧地域选择【广州】,单击【新建】按钮;

2、 新建函数:

1) 函数配置

  • 【函数名称】设为“ckafka-backup”
  • 【运行环境】设为【Python 2.7】
  • 【创建方式】选择【模板函数】
  • 【模板搜索】使用ckafka搜索并选择【ckafka消息投递COS】
  • 单击【下一步】

2) 函数代码

  • 保持默认配置,点击【完成】
  • 完成后点击新建的函数进入详情页,点击【函数代码】,并把准备好的代码(ckafka-backup.py文件的代码)拷贝并覆盖到该函数代码中。
  • 使用本模板时,需按照提示,修改函数代码中的配置信息,包括【账号】、【邮箱】、【授权码】、【APPID】、【SecertID】、【SecertKey】、【region】、【COS Bucket】等。

注意:使用授权码替代QQ密码,不能直接使用QQ密码

注:获取QQ授权码的方法如下:

  • 打开QQ邮箱,点击【设置】,然后选择【账户】配置页面:
  • 确保POP3/SMTP服务已经开启,然后点击【生成授权码】,使用手机进行短信验证后,即可收到授权码。

3) 函数测试:保存以上配置,修改【当前测试模板】为【Ckafka事件模板】,然后运行测试。

3、 在上述操作的同样的页面,点击【触发方式】,单击【添加触发方式】。

  • 【触发方式】Ckafka触发
  • 【Ckafka实例】ckafka-cyy74tv3,选择前面创建的ckafka实例
  • 【topic】even_ckafka,选择前面创建的ckafka实例topic
  • 【最大批量消息数】500,根据根据实际需求
  • 单击【保存】

任务4 创建云服务器CVM

【任务目标】

在腾讯云平台的云服务器管理控制台中创建CVM实例,以发送生产测试消息到Ckafka。

【任务步骤】

1、 在【腾讯云控制台】中,鼠标依次悬停【云产品-计算-云服务器】,单击进入【云服务器】;在左侧导航栏,点击【实例】,右侧地域选择【广州】,单击【新建】按钮;

1)新建CVM

  • 【地域】华南地区(广州)
  • 【机型】入门配置(1核1GB),根据实际需求
  • 【镜像】CentOS 7.2 64位
  • 其余保持默认,点击【立即购买】

C:\Users\v_haohcheng\Documents\WXWork\1688850526751824\Cache\Image\2019-09\企业微信截图_15693880821972.png

2)登陆CVM,下载CKafka客户端,通过客户端发送测试消息到已购买的CKafka实例

  • 登录CVM并安装JDK(运行命令yum -y install java-1.8.0-openjdk*)
  • 将下载好的客户端解压到当前文件夹(在shell中运行命令:tar -C ./ -xzvf kafka_2.10-0.10.2.0.tgz),如下图所示:
  • 进入解压后Kafka客户端的bin目录(在shell中运行命令:cd kafka_2.10-0.10.2.0/bin),如下图所示:
  • 运行命令生产消息发送到所购买的CKafka中的主题(这里以even_test为例)中(在shell中运行命令:./kafka-console-producer.sh --broker-list 172.16.0.9:9092 --topic even_test),然后输入你想发送的消息(只有当消息中含有含error或者exception关键字时才会触发SCF的逻辑,将消息投递到COS并发送报警邮件到指定的邮箱地址)。如下图所示:
  • 注意:这里的ip和port信息,需要到所购买的CKafka的【基本信息】页签中查看,如下图所示:

2、 查看日志输出:在利用Kafka客户端发送完消息后,查看新建的SCF【运行日志】页签的日志输出,如下图所示:

1)查看新建的COS存储桶,看是否有新增文件夹

2)点击COS桶中新建的文件夹,将文件夹下的文件下载下来

3)并用编辑器打开,查看是否是自己发送的消息。如下图所示

4)查看邮箱,检查是否收到告警邮件(可以观察到,只有消息中含有error或者exception的消息才会发送到指定的邮箱)

实验验证

1、 验证Ckafka实例及topic创建成功。在任务一的第2-3步中,能够查看到消息队列Ckafka实例及topic;

2、 验证无服务器云函数SCF。在任务三的第2步,测试函数成功;并在COS通中看到相应文件。

3、 验证CKafka能够调用SCF。能够在SCF【运行日志】页签的日志输出看到正确的SCF的调用信息、能够在QQ邮箱中收到相关邮件。

FAQ

1、 任务三中的第二步,测试函数报错,邮箱无法正常收到指定邮件。

  • 函数代码错误。请确保代码是从文件复制粘贴过去的,因为Python代码必须严格缩进,如果代码复制后格式不正确将不能正常运行;
  • 函数代码的参数是否输入正确,QQ邮箱是否填写正确;
  • 请确认函数代码中的密码并不是输入QQ密码,而且需要在QQ邮箱中获取授权码,使用授权码替代QQ密码。

2、 任务四中的第三步无法查看到SCF的调用情况的相关信息。

  • 请确认选择了正确的【触发方式】和【Kafka Topic】;
  • 请确认触发器代码中使用了正确的邮件地址
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

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

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验三 使用无服务器函数发邮件
    • 概述
      • 实验环境
        • 前提条件
          • 实验流程
            • 实验目标
              • 任务1 创建消息队列
                • 任务2 创建COS桶
                  • 任务3 创建无服务器函数
                    • 任务4 创建云服务器CVM
                      • 实验验证
                        • FAQ
                        相关产品与服务
                        对象存储
                        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                        http://www.vxiaotou.com