Web开发 腾讯云-云函数(Java版) 低成本搭建轻量级服务器

旧巷老猫 提交于 2019-12-22 08:36:31

腾讯云是免费的, 但有额度, 貌似100万请求来着… 做个追剧更新爬虫什么的自用 还是可以的!
开始:

创建API key

https://console.cloud.tencent.com/cam/capi
(貌似不需要这一步,因为后面暂时用不到)

创建云函数

打开
https://console.cloud.tencent.com/scf/list?rid=8&ns=default
点创建云函数, 选java平台
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

打开IDEA 创建Gradle java工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
next next … finish

修改build.gradle

创建完成后 添加 sdk以及打包zip脚本, 等会要打包提交到服务器

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile('com.tencentcloudapi:scf-java-events:0.0.1')
    // compile fileTree(dir: 'jars', include: '*.jar')
}

apply plugin: 'java'

task buildZip(type: Zip) {
    from compileJava
    from processResources
    into('lib') {
        from configurations.runtime
    }
}

build.dependsOn buildZip

tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}

新建example包名
新建Main类,
在这里插入图片描述

写mainHandler(APIGatewayProxyRequestEvent event)函数
如下:

public class Main {
    public String mainHandler(APIGatewayProxyRequestEvent event) {
       //Map<String, String> queryString = event.getQueryString();
        //传入的参数这样判断
       // if (queryString.containsKey("keyword")) {
        //    try {
        //        return query(queryString.get("keyword"));
         //   } catch (Exception e) {
        //        e.printStackTrace();
        //        return e.getMessage();
         //   }
       // }
        return  event+"";//打印 event, 获取参数见上面的注释
    }
}

注意 代码里可以执行一个http请求操作,这样就可以实现服务爬虫什么的
就普通的http get post即可 , 记得不可使用异步支持, 必须同步执行
如:

public String mainHandler(APIGatewayProxyRequestEvent event) {
        return HttpUtil.request(...);
}

具体这里就不演示了

填执行方法

在这里插入图片描述

打包项目为zip

回到工程
在右侧工具类 点击build
在这里插入图片描述

然后生成一个zip文件(看我路径)
在这里插入图片描述

上传源码

然后回到云函数平台选择上传这个zip
记得要选择模板为 API网关, 保存, 界面会刷新 , 步骤如图

在这里插入图片描述

测试

最后点击测试 看日志是否输出想要的内容

添加触发方式

在这里插入图片描述
选api网关 方式
在这里插入图片描述
其它默认 点保存即可
最后生成一个地址
在这里插入图片描述

这个地址直接指向刚才开发的java代码的 mainHandler 函数
可以用自己的域名做域名解析到这个腾讯官方的域名

其它:

创建触发规则时你会发现 可以做定时任务 什么的 对应的类名以api网关为例APIGatewayProxyRequestEvent 类,
其它功能 看源码自己理解:
在这里插入图片描述

(腾讯云官网没有java 版的sdk文档以上都是我摸索出来的 (php python nodejs倒是有很多文档, 包括例子, 真的坑))

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!