20240701:腾讯云函数不再支持 API 网关触发器, 建议使用阿里云 Serverless

语雀+Github Action+Hexo

见《Hexo+Github Page+Github Action+语雀》

网址 1:https://19970622.xyz/posts/63230/

网址 2:https://xie-dd.github.io/posts/63230/

语雀+云函数+Github Action

修改 Github Action 的 main.yml 文件

1
2
3
4
5
6
7
8
9
10
11
name: Deploy Hexo Blog

on:
push:
branches:
- master
schedule:
- cron: "0 23 * * *"
repository_dispatch:
types:
- start

基于腾讯云函数

参考:https://blog.lisongqian.cn/2022/02/06/yuque/eizdmx/

  1. 点击网址进入 Serverless—从头开始—事件函数—Python 3.6(不要选择其它版本)

  1. 将下面代码粘贴到写代码的编辑器里面
1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf8 -*-
import requests
def main_handler(event, context):
r = requests.post("https://api.github.com/repos/xie-dd/blog_hexo/dispatches",
json = {"event_type": "start"},
headers = {"User-Agent":'curl/7.52.1',
'Content-Type': 'application/json',
'Accept': 'application/vnd.github.everest-preview+json',
'Authorization': 'token ghp_L3*********78rURQ1F0Gtvzn'})
if r.status_code == 204:
return "This's OK!"
else:
return r.status_code
  1. 在编辑器里面—运行—安装 Python 扩展
  2. 浏览器滑到最后—点击测试—可以在编辑器输出栏看到”This’s OK!”—然后 Github Action 也会被触发
  3. 点击部署
  4. 创建 API 网关触发器即可,完了(腾讯云函数 20240701 后不再支持 API 网关触发器了,新的方法还不会

基于阿里云函数

参考:https://www.xiayinchang.top/post/b2362878.html

  1. 进入这个网址—函数—创建函数—事件函数—运行环境:Python 3.6—实例代码—创建—在代码编辑器中替换下面代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: utf-8 -*-
import logging
import requests
OK = b'ok\n'

def handler(environ, start_response):
status = '200 OK'
response_headers = [('Content-Type', 'text/plain')]
sync_yuque()
start_response(status, response_headers)
return [OK]

def sync_yuque():
requests.post("https://api.github.com/repos/xie-dd/blog_hexo/dispatches",
json = {"event_type": "start"},
headers = {"User-Agent":'curl/7.52.1',
'Content-Type': 'application/json',
'Accept': 'application/vnd.github.everest-preview+json',
'Authorization': 'token ghp_******Gtvzn'})

  1. 点击代码编辑器左上角的测试函数—在 Github 确认 Github Action 已经被触发(可能显示测试失败,但实际 Github Action 已经被触发)
  2. 配置—触发器—HTTP 触发器—全部默认—确定—得到一个公网访问地址,公网访问地址大致如下所示
1
https://***.cn-hangzhou.fcapp.run
  1. 将上面的公网访问地址粘贴到语雀的 webhook 里面就行了,现在有个小问题,粘贴完毕后点击测试,显示部署失败,但是实际已经触发了 Github Action,先这样吧。