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

本文介绍了如何利用腾讯云的云函数服务,免费搭建轻量级Java服务器。通过创建API Key,建立云函数,配置IDEA Gradle项目,编写处理函数,上传并测试代码,实现了低成本的服务器解决方案。同时提到了可以使用HTTP请求执行爬虫任务,并提醒注意同步执行。此外,还分享了如何设置定时任务和处理JSON触发事件的技巧。
摘要由CSDN通过智能技术生成

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

开始:

创建API key

https://console.cloud.tencent.com/cam/capi

(貌似不需要这一步,因为后面暂时用不到)

创建云函数

打开

https://console.cloud.tencent.com/scf/list?rid=8&ns=default

点创建云函数, 选java平台

9370ff826eaed0775c7fd44d6e6f8239.png

377e77f9625a66ee3fb08ebe96760a8c.png

200675fac8776554f469120ae9c0a422.png

打开IDEA 创建Gradle java工程

c0e592981fe5aa1a39231ac0d32e2619.png

0bc69261341eb07021373f2a43503914.png

5d6876da73428e738a72d88b7d137155.png

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类,

20cf477970a59f032c666b3e359cba96.png

写mainHandler(APIGatewayProxyRequestEvent event)函数

如下:

public class Main {

public String mainHandler(APIGatewayProxyRequestEvent event) {

//Map 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(...略);

}

具体这里就不演示了

填执行方法

bb47cc5e2b88da50b02ba20a8bccf012.png

打包项目为zip

回到工程

在右侧工具类 点击build

eb658d6407d7b3f28be212d7e4d725b3.png

然后生成一个zip文件(看我路径)

e979e327cbd107a786e0a3fced434013.png

上传源码

然后回到云函数平台选择上传这个zip

记得要选择模板为 API网关, 保存, 界面会刷新 , 步骤如图

55191e05350c542f4f71d631186e470e.png

测试

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

添加触发方式

3b56e70c761612924361b865b4b00853.png

选api网关 方式

86efc2fe8fbe1c7003206071fe554903.png

其它默认 点保存即可

最后生成一个地址

6e29e82fd8a3a22afc77ab4ee22e8c06.png

这个地址直接指向刚才开发的java代码的 mainHandler 函数

可以用自己的域名做域名解析到这个腾讯官方的域名

其它:

创建触发规则时你会发现 可以做定时任务 什么的 对应的类名以api网关为例APIGatewayProxyRequestEvent 类,

其它功能 看源码自己理解:

2e0239f7e9521b96f7cb6ceccc7653fb.png

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

补充(20191223)

我看了sdk源码, 发现API网关与官网的模板有关, 但上图中的sdk源码中没写触发方式里的自动任务怎么实现

其实很简单

就是先新建模板

f6928a9c10af2b81d277b4ce3a23f4a5.png

选对应的触发事件, 如定时器

b37f0ab13d416ed9778c6031eb3de5c6.png

此时会出现一个json, 把这个json转java对象即可

如:

public class AutoJob {

//官网例子有问题, 这里需要写注解JsonProperty

//强制设置json类型大小写开头

//(不设置的话, 解析错误, 变成小写开头不知道为什么)

@JsonProperty("Type")

private String Type;

@JsonProperty("TriggerName")

private String TriggerName;

@JsonProperty("Time")

private String Time;

@JsonProperty("Message")

private String Message;

public String getType() {

return Type;

}

public void setType(String Type) {

this.Type = Type;

}

public String getTriggerName() {

return TriggerName;

}

public void setTriggerName(String TriggerName) {

this.TriggerName = TriggerName;

}

public String getTime() {

return Time;

}

public void setTime(String Time) {

this.Time = Time;

}

public String getMessage() {

return Message;

}

public void setMessage(String Message) {

this.Message = Message;

}

}

注意 一开始我没加@JsonProperty 会导致解析出问题, 官网压根没说, 真的坑

其它功能也是一样的, 就是找到json, 然后转对象即可, 注意如果首字母大写就要用@JsonProperty 强行设置

其余就没什么了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值