利用腾讯云函数部署.Net 5米游社原神每日签到功能
自从GitHub批量禁止滥用Action功能后,项目不得不考虑另外方案执行应用。其中腾讯云函数被大家作为不错的选择(虽然马上也要收费了)。
但对于.Net的部署目前资源很少,而且我也没学过bash。在去年请教了大佬后,终于误打误撞的配置成功了。本篇博客只是记录过程,有什么遗漏还需要各位大佬指出。
脚本步骤
首先在新建,选择 运行环境 Custom Runtime。
boostrap配置
虽然在文档有给出包需要包含 boostrap,但我并不知道boostrap具体实现方式,以下是我从文档和大佬的指引下写的执行代码,下图是执行输出日志,说明下一步是调用index.sh。其他地方不变。
- 函数引导加载 SCF 首先检索部署包中的可执行引导文件 boostrap,根据检索结果并进行如下操作: 检索到 bootstrap 文件且可执行,加载执行 boostrap 程序,进入函数初始化阶段。 未检索到 bootstrap 文件或文件不可执行,返回 bootstrap 文件不存在,启动失败。
#! /bin/bash
set -euo pipefail FuncFile="$(echo $_HANDLER | cut -d. -f1).sh"
echo "[step 1]初始化,开始加载函数文件 $FuncFile"
source ./$FuncFile
echo "=>完成" echo "[step 2]初始化完成,开始发送ready信号"
curl -d " " -X POST -s "http://$SCF_RUNTIME_API:$SCF_RUNTIME_API_PORT/runtime/init/ready"
echo "=>完成" echo "[step 3]开始循环监听处理事件调用"
while true
do
HEADERS="$(mktemp)"
echo "=>长轮询获取事件"
EVENT_DATA=$(curl -sS -LD "$HEADERS" -X GET -s "http://$SCF_RUNTIME_API:$SCF_RUNTIME_API_PORT/runtime/invocation/next")
echo "=>监听到事件:$EVENT_DATA"
echo "=>调用函数,开始处理事件"
$(echo "$_HANDLER" | cut -d. -f2) "$EVENT_DATA"
RESPONSE=$EVENT_DATA
echo "=>返回 $RESPONSE"
echo "=>推送函数处理结果"
curl -X POST -s "http://$SCF_RUNTIME_API:$SCF_RUNTIME_API_PORT/runtime/invocation/response" -d "$RESPONSE"
done
index.sh配置
参考https://github.com/RayWangQvQ/BiliBiliToolPro/blob/main/tencentScf/index.sh
只需要在合适位置把执行程序放进去即可。因为我没有额外的参数配置,所以只需要执行 GenshinDailyHelper
echo "成功加载index.sh函数文件" function main_handler () {
echo "进入main_handler"
EVENT_DATA=$1
echo "$EVENT_DATA" 1>&2;
echo "开始运行GenshinDailyHelper......"
./GenshinDailyHelper
echo "函数结束"
}
项目步骤
以上已经把云函数需要的两个文件配置好后,接下来该在项目配置怎么再外部获取参数了。
可以使用 Environment.GetEnvironmentVariables() 获取变量。这里就简单粗暴一点。
var environmentVariables = Environment.GetEnvironmentVariables(); if (environmentVariables.Contains("scf_cookie"))
{
cookies = environmentVariables["scf_cookie"]?.ToString()?.Split("#");
}
然后打开虚拟机,将项目编译好(dotnet-publish),打包成zip格式文件。
文件目录如下
├ bootstrap
└ index.sh
参考资料
https://github.com/RayWangQvQ/BiliBiliToolPro/tree/main/tencentScf
https://cloud.tencent.com/document/product/583/47610
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish
项目链接
https://github.com/yinghualuowu/GenshinDailyTools
https://github.com/yinghualuowu/GenshinDailyHelper.Docs
利用腾讯云函数部署.Net 5米游社原神每日签到功能的更多相关文章
- 利用Github Action和.Net 5 自动执行米游社原神每日签到福利
GenshinDailyHelper 原神的签到福利是需要单独下载APP进行才可以领取,并且每天需要打卡,虽然奖励并不是很可观,但有一些摩拉,食材和可观的经验书累计起来还是挺有吸引力的.可能本身不怎么 ...
- 利用.NET 5和Github Action 自动执行米游社原神每日签到福利
背景 众所周知,原神的签到福利是需要下载app才可以领取的.但像我这种一般不怎么刷论坛的人,每天点开app签到很麻烦. 很多大佬利用Github的Action自动执行的模式,实现了很多好东西.加上.n ...
- 腾讯云函数免费搭建onedrive网盘
目录 腾讯云函数 介绍 真免费? 搭建教程 准备条件 创建云函数 创建触发器 配置SecretId和SecretKey 添加onedriver盘 自定义域名 访问路径处理 总结 搭建期间遇到的问题 想 ...
- 如何利用腾讯云COS为静态博客添加动态相册
前言 本文首发于个人网站Jianger's Blog,欢迎访问订阅.个人博客小站刚建站不久,想着除了主题里的功能外再添加上相册模块,于是半搜索半摸索把相册模块搞出来了,最后采用了利用腾讯云对象存储作图 ...
- 基于【腾讯云函数】/【GitHub Actions】/【Docker】的每日签到脚本(支持多账号使用)
每日签到集合 基于[腾讯云函数]/[GitHub Actions]/[Docker]的每日签到脚本 支持多账号使用 特别声明: 本仓库发布的脚本及其中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究 ...
- 在腾讯云上部署Hexo博客
推荐理由 ----搭建个人的空间博客目前深受个人开发者的追捧,然而博客的种类和平台有很多,Hexo是一个开源的静态博客生成器.相比于其他博客而言它只要是web容器就能用.除了闷头专研技术之外,程序员还 ...
- 从QQ音乐开发,探讨如何利用腾讯云SDK在直播中加入视频动画
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 看着精彩的德甲赛事,突然裁判一声口哨,球赛断掉了,屏幕开始自动播放"吃麦趣鸡盒,看德甲比赛&q ...
- Tencent Cloud 腾讯云上部署 EMR Cluster + Kafka + Confluent (Schema-Registry)
腾讯云上有些操作比起 Amazon AWS 还是很方便的, 尤其部署EMR Cluster,下面详细介绍步骤:
- 利用腾讯云COS云对象存储定时远程备份网站
版权声明:本文由张戈 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/942851001487125915 来源:腾云阁 h ...
随机推荐
- docker-compose安装和使用
安装:https://my.oschina.net/thinwonton/blog/2985886 docker-compose和Dockerfile结合使用,创建django项目和postgres数 ...
- NULL 是什么意思 ?
NULL 这个值表示 UNKNOWN(未知):它不表示""(空字符串).对 NULL 这 个值的任何比较都会生产一个 NULL 值.您不能把任何值与一个 NULL 值进行比 较,并 ...
- Centos6 编译安装Python3.6
1. 安装依赖 yum install gcc openssl-devel bzip2-devel 2. 下载Python3.6 cd /usr/src wget https://www.python ...
- Mybatis 开发 dao 的方法
1.分析SqlSession使用范围 1.1.SqlSessionFactoryBuilder 通过 SqlSessionFactoryBuilder 创建会话工厂 SqlSessionFactory ...
- selenium 模块使用
selenium 概念:基于浏览器自动化的一个模块,可以模拟浏览器行为 环境的安装:下载selenium模块 selenium和爬虫之间的关联是什么? 便捷的获取页面中动态加载的数据 requests ...
- 惯性传感器(IMU)
近两年来,车联网.自动驾驶.无人驾驶.汽车智能化.网联化等成为了汽车行业的热点话题,未来汽车一定是朝着安全.可靠及舒适的方向发展.而这一切背后的发展都离不开传感器的作用,今天我们就来聊聊用途越来越广的 ...
- uniapp-npm install 进入版本后 优先运行全局安装,在HBuilder X终端输入 npm install 点击回车
uniapp-npm install 进入版本后 优先运行全局安装,在HBuilder X终端输入 npm install 点击回车
- Qunee for HTML5 v1.6新版本发布
Qunee for HTML5 V1.6正式发布,修复了一些 BUG,增加了滚动条支持,改进了编辑器,增加了JSON 导入导出.告警冒泡.连线流动,UI 定制等扩展示例,欢迎 访问 导航面板 增加了滚 ...
- CSS揭秘之《背景图案》
网格 html { background: #58a; background-image: linear-gradient(white 2px, transparent 0), linear-grad ...
- 体温登记app开发流程
关于体温app,比较难的是获取定位信息,剩下的就是增删改查. 设计思路:首先布局一个添加页面,给每个元件添加id,之后在获取地点的EditText获取位置信息,在添加两个布局文件,体现在一个页面里用来 ...