腾讯云云函数快速入门实践

云函数 (Serverless Cloud Function,SCF) 是腾讯云为企业和开发者们提供的无服务器执行环境。无服务器并非真的没有服务器,而是说用户无需购买服务器,无需关心服务器 CPU、内存、网络配置、资源维护、代码部署、弹性伸缩、负载均衡、安全升级、资源运行情况监控等,也就是说不用专门安排人力做这些,只需专注于代码编写并上传即可。很大程度上降低了研发门槛,提升业务构建效率。

由于 Serverless 拥有近乎无限的扩容能力,核心的代码片段完全由事件或者请求触发,平台根据请求自动平行调整服务资源,用户只需为运行中的云函数付费,若云函数未运行,则不产生任何费用。

使用腾讯云函数之前,我们先做一下准备工作:进入腾讯云注册页面,注册账号,开通云函数服务。

腾讯云云函数提供了满足多种开发场景的工具和能力,目前支持通过控制台、SCF CLI、SCF VS Code 插件完成函数创建,创建函数的详细步骤可参考: https://cloud.tencent.com/document/product/583/19806

以云函数控制台为例,带领大家一起创建你的第一个模版函数。

登录云函数控制台,点击左侧导航栏「函数服务」,在函数服务页面上方选择地域,单击「新建」,如下图所示:

在「新建函数」页面填写函数名称,选择「运行环境」,控制台目前已支持的语言包括:Python 2.7 & 3.6、Node.js 6.10 & Node.js 8.9、Node.js 10.5、Java 8、Php 5 & Php 7。例如,我们选择运行环境:Python 3.6 ,选择模版函数快速创建,之后点击「下一步」:

配置保持默认,单击「完成」,可看到如下图所示:

说明:index.main_handler 参数值表示 SCF 控制台会将此段代码自动保存为 index.py 文件,并将该文件压缩和上传至 SCF 平台,用于创建云函数。

示例代码中的 main_handler 为入口函数,主要参数为:

event 参数:可以获取触发源的消息。 context 参数:可以获取本函数的环境及配置信息。

您只需要在线编辑函数代码,点击「保存」即完成部署。

在已创建函数的详情页面,选择左侧「触发管理」,单击「创建触发器」

在弹出的「创建触发器」窗口中,将触发方式设置为「API 网关触发器」,其它参数保持默认配置,点击「提交』。如下图所示:

  1. 函数部署测试:

选择「函数代码」,单击「测试」,运行代码并返回测试结果。如下图所示:

  1. 触发器配置测试:

触发器创建成功后,会在该函数的触发方式页面生成访问路径。如下图所示:

在浏览器里「打开该访问路径」,若有如下显示则说明函数部署成功。

如果您想详细了解「如何借助云函数监控日志快速发现并定位问题」,可报名参加 6 月 4 日(周四)20:00 举办的 Tencent Serverless Hours 第三期线上分享会。

可以通过我们的 Serverless Framework 进行迁移,详情请参考:https://cloud.tencent.com/document/product/1154/40216

欢迎体验试用云函数,详情请参考:https://cloud.tencent.com/document/product/583/12282

我们诚邀您来体验最便捷的 Serverless 开发和部署方式。在试用期内,相关联的产品及服务均提供免费资源和专业的技术支持,帮助您的业务快速、便捷地实现 Serverless!

Serverless Framework 是构建和运维 Serverless 应用的框架。简单三步,即可通过 Serverless Framework 快速实现服务部署。

1. 安装 Serverless

macOS/Linux 系统:推荐使用二进制安装

Windows 系统:可通过 npm 安装

2. 创建云上应用

在空文件夹下输入 serverless 命令

访问命令行中输出的链接,即可访问成功部署后的应用。

3. 查看部署信息

进入到部署成功的文件夹,运行如下命令,查看部署状态和资源信息:

腾讯云轻量服务器搭建彩虹聚合 DNS 聚合管理系统教程

彩虹聚合 DNS 管理系统具备诸多实用功能,其中包括 SSL 证书申请与自动部署功能,它能够从多个渠道申请 SSL 证书,像 Let\’s Encrypt 等,并自动将证书部署到各式各样的面板、云服务商以及服务器等环境中,同时还支持 CNAME 代理功能,为域名管理和安全访问提供了有力保障。

系统支持以下多种 SSL 证书申请方式:

  • Let\’s Encrypt:这是一款广泛使用的免费、自动化的 SSL 证书颁发机构,为众多网站提供了便捷的证书获取途径。
  • ZeroSSL:同样能帮助用户获取有效的 SSL 证书,在安全加密方面发挥重要作用。
  • Google SSL:由谷歌提供相关支持,具备较高的可靠性和安全性。
  • 自定义 ACME:方便有特殊需求的用户按照自定义的规则和配置来申请 SSL 证书。
  • 腾讯云免费 SSL:依托腾讯云平台,为用户提供免费的 SSL 证书资源,适配腾讯云相关服务。
  • 阿里云免费 SSL:针对阿里云用户,可免费获取 SSL 证书用于保障网站安全通信。
  • UCloud 免费 SSL:UCloud 云服务所提供的免费 SSL 证书选项,满足对应平台用户的安全需求。

涵盖了众多常见的面板、云服务及服务器类型,具体如下:

  • 面板类
    • 宝塔面板:一款广受欢迎的服务器管理面板,操作相对简便,功能丰富,能满足多种服务器环境下的网站搭建与管理需求。
    • 1Panel:为用户提供一站式的服务器运维管理解决方案,在部署应用等方面有着出色表现。
    • Kangle:具备高效的 web 服务器管理功能,可用于构建稳定的网站运行环境。
    • 雷池 WAF:专注于网站应用防火墙,保障网站免受各类网络攻击,同时也支持 SSL 证书部署。
    • Cdnfly、LeCDN、GoEdge(FlexCDN):这些都是和内容分发网络(CDN)相关的服务或平台,SSL 证书部署有助于保障通过 CDN 传输的数据安全。
  • 云服务商相关服务
    • 阿里云(CDN、ESA、SLB、OSS、WAF、FC 等):阿里云提供的多个服务模块,如内容分发网络、企业级分布式应用服务、负载均衡、对象存储服务、网站应用防火墙以及函数计算等,都可进行 SSL 证书部署,全方位保障云服务中的数据安全与合规访问。
    • 腾讯云(CDN、EO、CLB、COS、TKE、SCF 等):腾讯云对应的各项服务,像腾讯云 CDN、弹性公网 IP、负载均衡、对象存储、容器服务以及无服务器云函数等,也支持 SSL 证书部署,确保在腾讯云生态体系下的业务安全运行。
    • 华为云(CDN、ELB、WAF):华为云的内容分发网络、弹性负载均衡以及网站应用防火墙等服务,同样适配 SSL 证书部署,助力用户打造安全可靠的云服务环境。
    • UCloud CDN:在 UCloud 的内容分发网络场景中,SSL 证书部署可保障数据传输的加密与安全。
    • 七牛云(CDN、OSS):七牛云的 CDN 和对象存储服务,通过 SSL 证书部署来增强数据交互的安全性。
    • 多吉云 CDN、百度云 CDN、火山引擎 CDN、白山云:这些云服务商的 CDN 服务在 SSL 证书部署后,能更好地为用户提供安全的内容分发体验。
    • AllWAF:专注于网站应用防火墙领域,SSL 证书部署是其保障网站安全访问的重要一环。
    • AWS(CloudFront):亚马逊云服务的 CloudFront 内容分发网络,SSL 证书部署能确保全球范围内的数据传输安全。
    • Gcore、Cachefly:在各自的网络服务架构中,SSL 证书部署有助于提升服务的安全性和可靠性。
  • 服务器类型
    • SSH 服务器(同时支持 Linux/Windows):无论是 Linux 还是 Windows 操作系统下的 SSH 服务器,都能实现 SSL 证书部署,满足不同系统环境下的远程安全连接需求。
    • IIS:Internet Information Services,是微软 Windows 系统下常用的 web 服务器软件,支持 SSL 证书部署以保障网站的安全访问。
    • FTP 服务器:文件传输协议服务器,SSL 证书部署可确保文件传输过程中的数据加密与安全。
    • 复制到本机:意味着可以将证书相关配置复制到本地环境,便于在本地进行相应的安全设置和调试等操作。

除此之外,彩虹聚合 DNS 管理系统的 2.0 版本还新增了登录 TOTP 二次验证功能,进一步增强了系统登录的安全性;同时还有灾备自动切换、cf 优选等功能,提升了系统整体的稳定性和使用效率。

今天我们要详细介绍的教程就是利用腾讯云轻量服务器来进行彩虹聚合 DNS 聚合管理系统的部署操作。

在正式开始教程之前,需要完成两个关键的准备工作:

把域名解析到轻量服务器的 IP 上面。需要注意的是,如果使用的是国内的轻量服务器,按照相关规定还需要先完成备案哦。在本次演示中,我使用的是二级域名来进行操作展示,方便大家理解整个流程。

轻量服务器的防火墙需要放通 8888 端口,这是宝塔面板的默认端口,若不放开此端口,后续将无法正常打开宝塔面板进行相关操作。

以下附上对应准备工作涉及的关键截图示例,方便大家对照查看:

我们可以使用轻量云服务器的宝塔应用模版来安装系统,这种方式操作相对便捷,适合大多数新手用户。当然了,如果您对服务器安装操作比较熟悉,也可以自行安装宝塔面板。

以下是安装过程中的部分截图示例,便于您直观了解操作界面情况:

安装完成后,来这里查看面板登录地址!复制最后那条命令,然后点击登录,将命令复制到终端里面运行,就可以获取到面板的初始用户名跟密码。操作界面参考如下截图:

成功登录宝塔面板后,我们需要到软件商店安装以下运行环境,以确保后续彩虹聚合 DNS 管理系统能够正常运行:

  • nginx1.24:一款高性能的 web 服务器软件,在处理网页请求、静态资源服务等方面表现出色,为系统提供稳定的网络服务基础。
  • mysql5.7:常用的关系型数据库管理系统,用于存储和管理系统运行过程中产生的各类数据,如用户信息、域名配置等。
  • php8.2:作为一种广泛应用的服务器端脚本语言,能与上述的 web 服务器和数据库协同工作,实现系统的各种功能逻辑。

在软件商店中选择上述软件,使用极速安装即可,对于技术大佬来说,如果有特定的性能优化或者功能定制需求,也可以选择编译安装方式。整个安装过程大概需要 10 分钟左右,请耐心等待安装完成。

安装完成后的操作界面截图示例如下:

运行环境安装好后,点击左边菜单里面的“网站”选项,开始新建网站。在相应的设置页面中,填写之前解析好的域名,同时创建数据库,其他的配置选项保存默认即可,然后点击“确定”按钮完成网站创建操作。

参考截图如下:

接下来,访问 https://github.com/netcccyun/dnsmgr/releases 这个网址,下载最新的安装包,注意要下载 zip 格式的文件哦。

下载完成后,把下载好的 zip 压缩包上传到网站根目录,然后解压到根目录。相关操作界面截图如下:

完成上述步骤后,点击网站设置,进入相关配置页面,进行以下关键设置:

  • 设置运行目录:点击网站目录选项,将运行目录设置为 /public ,然后点击保存,其他保持默认设置即可。操作界面参考如下:
  • 设置伪静态:将伪静态设置为 thinkphp,点击保存按钮,使网站的 URL 路由等能符合系统要求,更好地支持彩虹聚合 DNS 管理系统的运行。

经过前面一系列的准备和设置工作后,这个时候,我们就可以在浏览器中访问域名进行系统安装了。安装界面示例如下:

点击“安装完成”按钮,之后使用之前设置的管理员用户名和密码进行登录操作,登录界面参考如下截图:

至此,彩虹聚合 DNS 聚合管理系统在腾讯云轻量服务器上的部署就完成啦!

部署完成后,我们首先需要添加域名管理账户,也就是根据您的域名实际解析所在的平台进行添加,比如域名是在阿里云解析的,那就添加阿里云相关的账户信息等。添加好需要管理的域名后,就可以去 ssl 证书里面申请证书了,整个操作过程相对比较简单,大家可以自行摸索实践,逐步熟悉系统的各项功能使用方法哦。

#小白接口# 使用云函数,人人都能编写和发布自己的API接口

你只需编写简单的云函数,就可以实现自己的业务逻辑,发布后就可以生成自己的接口给客户端调用。

果创云支持对云函数进行在线接口编程,进入开放平台我的接口 – 在线接口编程,设计一个新接口,设计和配置好接口参数、接口名称、接口返回后,再把云函数源代码填上,提交审核通过并发布后即可使用。

云函数编写入口:在线接口编程。

云函数具有以下特点和优势:

  • 1、无需管理服务器即可运行移动后端代码
  • 2、可在线接口编程,自动生成云接口和接口文档
  • 3、代码简单,功能强大,一行代码就可以实现数据库、短信发送等功能
  • 4、可以开发自己的接口,实现自己的业务逻辑

云函数由开发者自己编写,发布后可生成自己的云接口,即MyAPI,而云函数底层则依赖于果创云提供的基础服务。

因此,云函数整体架构如下:

整体架构分为四层:

  • 第一层:MyAPI我的接口 提供给客户端调用的云接口。
  • 第二层:云函数。 由开发者自己编写,可在线接口编程,编写云函数,生成接口。
  • 第三层:果创云聚合服务 由果创云提供,封装了常用的服务,可进行数据库、CURL、短信等服务操作。
  • 第四层:云服务 由第三方提供的云服务,包括但不限于自建数据库、云数据库、企业邮箱、短信接口、开放平台接口和内部接口等。

当前只支持PHP云函数,开发者自定义的云函数,需要符合PHP语法。其云函数签名和云函数模板如下:

云函数参数说明:

  • $params,类型:数组,为当前客户端的接口参数,由开发者配置的接口参数和客户端动态传递的参数而定,例如:array(\’uuid\’ => null, \’left\’ => 1, \’right\’ => 2)
  • $di,类型:数组,为DI容器,里面封装并提供了众多强大而实用的PHP服务,例如数据库操作等,对于后端编程有非常大的帮助,后面会详细介绍。

如何获取客户端传递过来的接口参数?

在果创云开放接口参数配置,添加参数后,就可以在源代码中获取。如下:

假设,配置的接口参数名字为:abc,那么在PHP源代码中,获取接口参数的方式是从$params参数中获取,如:

参数名称和配置的接口名称一致。并且,此时获取的接口参数会根据配置的接口参数规则进行过滤、转换和检测。

温馨提示:接口会自动对客户端的参数进行校验、核对和转换,通过$params参数获取的是最终可用的参数。

开头不需要<?php标签,结束不需要?>标签。你可以在本地调试好PHP代码函数,或者通过在线工具编写和运行你的PHP代码。

特别注意以下几点:

  • 1、接口代码需要符合PHP语法,PHP语法可参考PHP 教程
  • 2、一些敏感的PHP函数和API接口会被禁用,例如读写本地文件、获取系统信息等。

如何进行本地调试? 在本地调试时,可以这样执行你的PHP代码。首先,创建一个PHP文件,例如:yesapi.php,然后在里面放置代码:

即这样执行,通过CLI方式运行。

温馨提示:在本地没有$di服务,可以使用空数组来代替,或进行模拟测试。

如何返回接口结果呢?

以下是一个返回示例:

注意,应该在函数的最后一行代码通过return关键字返回结果。结果的类型是数组,且应包括:err_code、err_msg这两个基本字段,以及其他需要自定义的返回字段。其中,约定err_code为0表示成功。

以下是一个简单的例子,进行两个数的相加。

添加一个新接口,并进行编辑:

编写接口时,设置接口参数、接口返回、云函数代码等,如(局部截图):

保存后,你可以看到类似这样的在线接口文档(部分截图):

在完成接口设计和云函数开发后,就可以勾选“申请发布”。等审核通过后即可发布和使用。

发布通过后,你就可以生成了自己的云接口,以及在线接口文档。

在线接口文档,可以提供给客户端开发人员查看和接入使用;云接口可以提供给客户端进行调用。

生成的完整在线接口文档类似:

接口文档地址:

客户端调用后,就可以得到云函数执行后的结果。

编写好云函数后,会自动生成云接口,和接口文档。如果需要,也可以自己手动编写接口文档。

温馨提示:如果需要手动编写API接口文档,可以进入我的在线文档编辑,保存后可发布接口文档。

文档编辑后台:

保存后,外部查看的接口文档效果:

如果需要支持多个客户端调用API接口,可以【客户端管理】,添加客户端应用,然后分配app_key和密钥。

以下通过代码示例和模板,介绍云函数如何进行开发,大家可以把代码复制过去,稍作修改。只需要简短的几行PHP代码,或者一段代码,你就实现自己的业务逻辑,无需管理服务器即可运行移动后端代码。

在开始,以下是一些重要的知识点和注意事项。

  • 我的模型数据库操作请使用:$di[\’db\’]->模型英文名称_tbl,例如文章模型:$di[\’db\’]->article_tbl,后面要固定加上_tbl;
  • 直连数据库(MySQL/SQLServer等)操作请使用:$di[\’db_super\’]->数据库表完整名称,例如:$di[\’db_super\’]->article;使用前请配置接入你的数据库。

再重复说明下,直连数据库和我的模型数据库操作一样,区别在于:直连数据库在使用前需要先配置接入你的数据库,DI服务使用$di[\’db_super\’],最后需要填写完整的表名称,不需要额外的_tbl后缀。

DI服务 功能说明 备注 $di[\’db\’] 我的模型数据库 可进行CURD数据库操作,针对单表 $di[\’db_super\’] 直连数据库 可进行CURD数据库操作,针对单表,使用前需要进行MySQL数据库直连服务配置 $di[\’logger\’] 日志服务 纪录各种日志 $di[\’email\’] 邮箱服务 发送邮件,使用前需要进行邮箱服务配置 $di[\’pinyin\’] 拼音服务 将汉字转成拼音 $di[\’curl\’] CURL服务 请求远程接口,仅支持80端口 $di[\’crypt\’] 安全服务 对数据进行加密和解密 $di[\’sms_aliyun\’] 阿里云短信 通过阿里云服务发送短信,使用前需要进行阿里云服务配置

假设传递参数为:left=1&right=2,请求此云函数后,将会得到如下结果:

假设你有模型如下,有23条数据:

请求此云函数后,将会得到如下结果:

温馨提示:获取列表数据时,一定要使用limit限制分页数量,否则会审核不通过。

温馨提示:通过云函数以及CURL,可以对原有的API接口进行封装,形成对外开放的接口API。

温馨提示:日志纪录后,可以到开放平台查看日志。

温馨提示:使用前请先配置邮箱服务配置。

温馨提示:每个app_key加密的数据,只能由自己的app_key进行解密。

温馨提示:使用前需要进行阿里云服务配置

更多示例,即将到来!

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。