106
.github/workflows/deploy_tencent_scf.yml
vendored
Normal file
106
.github/workflows/deploy_tencent_scf.yml
vendored
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
name: 部署到腾讯云函数
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: github.event.repository.owner.id == github.event.sender.id
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: ${{ github.repository }}
|
||||||
|
|
||||||
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
|
||||||
|
- name: "安装依赖和serverless工具"
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
sudo npm install serverless -g
|
||||||
|
|
||||||
|
- name: "将Secrets里面配置的变量添加到severless.yml里面作为环境变量"
|
||||||
|
run: |
|
||||||
|
if [ $JD_COOKIE ]; then sed -i "/variables/a\ JD_COOKIE: $JD_COOKIE" serverless.yml; fi;
|
||||||
|
if [ $JD_BEAN_STOP ]; then sed -i "/variables/a\ JD_BEAN_STOP: $JD_BEAN_STOP" serverless.yml; fi;
|
||||||
|
if [ $JD_BEAN_SIGN_STOP_NOTIFY ]; then sed -i "/variables/a\ JD_BEAN_SIGN_STOP_NOTIFY: $JD_BEAN_SIGN_STOP_NOTIFY" serverless.yml; fi;
|
||||||
|
if [ $JD_BEAN_SIGN_NOTIFY_SIMPLE ]; then sed -i "/variables/a\ JD_BEAN_SIGN_NOTIFY_SIMPLE: $JD_BEAN_SIGN_NOTIFY_SIMPLE" serverless.yml; fi;
|
||||||
|
if [ $JD_DEBUG ]; then sed -i "/variables/a\ JD_DEBUG: $JD_DEBUG" serverless.yml; fi;
|
||||||
|
if [ $PUSH_KEY ]; then sed -i "/variables/a\ PUSH_KEY: $PUSH_KEY" serverless.yml; fi;
|
||||||
|
if [ $BARK_PUSH ]; then sed -i "/variables/a\ BARK_PUSH: $BARK_PUSH" serverless.yml; fi;
|
||||||
|
if [ $BARK_SOUND ]; then sed -i "/variables/a\ BARK_SOUND: $BARK_SOUND" serverless.yml; fi;
|
||||||
|
if [ $TG_BOT_TOKEN ]; then sed -i "/variables/a\ TG_BOT_TOKEN: $TG_BOT_TOKEN" serverless.yml; fi;
|
||||||
|
if [ $TG_USER_ID ]; then sed -i "/variables/a\ TG_USER_ID: $TG_USER_ID" serverless.yml; fi;
|
||||||
|
if [ $DD_BOT_TOKEN ]; then sed -i "/variables/a\ DD_BOT_TOKEN: $DD_BOT_TOKEN" serverless.yml; fi;
|
||||||
|
if [ $DD_BOT_SECRET ]; then sed -i "/variables/a\ DD_BOT_SECRET: $DD_BOT_SECRET" serverless.yml; fi;
|
||||||
|
if [ $IGOT_PUSH_KEY ]; then sed -i "/variables/a\ IGOT_PUSH_KEY: $IGOT_PUSH_KEY" serverless.yml; fi;
|
||||||
|
if [ $PET_NOTIFY_CONTROL ]; then sed -i "/variables/a\ PET_NOTIFY_CONTROL: $PET_NOTIFY_CONTROL" serverless.yml; fi;
|
||||||
|
if [ $FRUIT_NOTIFY_CONTROL ]; then sed -i "/variables/a\ FRUIT_NOTIFY_CONTROL: $FRUIT_NOTIFY_CONTROL" serverless.yml; fi;
|
||||||
|
if [ $JD_JOY_REWARD_NOTIFY ]; then sed -i "/variables/a\ JD_JOY_REWARD_NOTIFY: $JD_JOY_REWARD_NOTIFY" serverless.yml; fi;
|
||||||
|
if [ $JD_818_SHAREID_NOTIFY ]; then sed -i "/variables/a\ JD_818_SHAREID_NOTIFY: $JD_818_SHAREID_NOTIFY" serverless.yml; fi;
|
||||||
|
if [ $JOY_FEED_COUNT ]; then sed -i "/variables/a\ JOY_FEED_COUNT: $JOY_FEED_COUNT" serverless.yml; fi;
|
||||||
|
if [ $JOY_HELP_FEED ]; then sed -i "/variables/a\ JOY_HELP_FEED: $JOY_HELP_FEED" serverless.yml; fi;
|
||||||
|
if [ $JOY_RUN_FLAG ]; then sed -i "/variables/a\ JOY_RUN_FLAG: $JOY_RUN_FLAG" serverless.yml; fi;
|
||||||
|
if [ $JD_JOY_REWARD_NAME ]; then sed -i "/variables/a\ JD_JOY_REWARD_NAME: $JD_JOY_REWARD_NAME" serverless.yml; fi;
|
||||||
|
if [ $MARKET_COIN_TO_BEANS ]; then sed -i "/variables/a\ MARKET_COIN_TO_BEANS: $MARKET_COIN_TO_BEANS" serverless.yml; fi;
|
||||||
|
if [ $MARKET_REWARD_NOTIFY ]; then sed -i "/variables/a\ MARKET_REWARD_NOTIFY: $MARKET_REWARD_NOTIFY" serverless.yml; fi;
|
||||||
|
if [ $SUPERMARKET_UPGRADE ]; then sed -i "/variables/a\ SUPERMARKET_UPGRADE: $SUPERMARKET_UPGRADE" serverless.yml; fi;
|
||||||
|
if [ $BUSINESS_CIRCLE_JUMP ]; then sed -i "/variables/a\ BUSINESS_CIRCLE_JUMP: $BUSINESS_CIRCLE_JUMP" serverless.yml; fi;
|
||||||
|
if [ $SUPERMARKET_LOTTERY ]; then sed -i "/variables/a\ SUPERMARKET_LOTTERY: $SUPERMARKET_LOTTERY" serverless.yml; fi;
|
||||||
|
if [ $FRUIT_BEAN_CARD ]; then sed -i "/variables/a\ FRUIT_BEAN_CARD: $FRUIT_BEAN_CARD" serverless.yml; fi;
|
||||||
|
if [ $UN_SUBSCRIBES ]; then sed -i "/variables/a\ UN_SUBSCRIBES: $UN_SUBSCRIBES" serverless.yml; fi;
|
||||||
|
if [ $FruitShareCodes ]; then sed -i "/variables/a\ FruitShareCodes: $FruitShareCodes" serverless.yml; fi;
|
||||||
|
if [ $PETSHARECODES ]; then sed -i "/variables/a\ PETSHARECODES: $PETSHARECODES" serverless.yml; fi;
|
||||||
|
if [ $PLANT_BEAN_SHARECODES ]; then sed -i "/variables/a\ PLANT_BEAN_SHARECODES: $PLANT_BEAN_SHARECODES" serverless.yml; fi;
|
||||||
|
if [ $SUPERMARKET_SHARECODES ]; then sed -i "/variables/a\ SUPERMARKET_SHARECODES: $SUPERMARKET_SHARECODES" serverless.yml; fi;
|
||||||
|
if [ $TG_PROXY_HOST ]; then sed -i "/variables/a\ TG_PROXY_HOST: $TG_PROXY_HOST" serverless.yml; fi;
|
||||||
|
if [ $TG_PROXY_PORT ]; then sed -i "/variables/a\ TG_PROXY_PORT: $TG_PROXY_PORT" serverless.yml; fi;
|
||||||
|
cat serverless.yml
|
||||||
|
env
|
||||||
|
env: #因为直接读取secrets里面的值很多字符不会自动转译,导致写入serverless.yml异常,所以设置到环境变量,在读取环境变量转译过的值
|
||||||
|
JD_COOKIE: ${{ secrets.JD_COOKIE}}
|
||||||
|
JD_BEAN_STOP: ${{ secrets.JD_BEAN_STOP}}
|
||||||
|
JD_BEAN_SIGN_STOP_NOTIFY: ${{ secrets.JD_BEAN_SIGN_STOP_NOTIFY}}
|
||||||
|
JD_BEAN_SIGN_NOTIFY_SIMPLE: ${{ secrets.JD_BEAN_SIGN_NOTIFY_SIMPLE}}
|
||||||
|
JD_DEBUG: ${{ secrets.JD_DEBUG}}
|
||||||
|
PUSH_KEY: ${{ secrets.PUSH_KEY}}
|
||||||
|
BARK_PUSH: ${{ secrets.BARK_PUSH}}
|
||||||
|
BARK_SOUND: ${{ secrets.BARK_SOUND}}
|
||||||
|
TG_BOT_TOKEN: ${{ secrets.TG_BOT_TOKEN}}
|
||||||
|
TG_USER_ID: ${{ secrets.TG_USER_ID}}
|
||||||
|
DD_BOT_TOKEN: ${{ secrets.DD_BOT_TOKEN}}
|
||||||
|
DD_BOT_SECRET: ${{ secrets.DD_BOT_SECRET}}
|
||||||
|
IGOT_PUSH_KEY: ${{ secrets.IGOT_PUSH_KEY}}
|
||||||
|
PET_NOTIFY_CONTROL: ${{ secrets.PET_NOTIFY_CONTROL}}
|
||||||
|
FRUIT_NOTIFY_CONTROL: ${{ secrets.FRUIT_NOTIFY_CONTROL}}
|
||||||
|
JD_JOY_REWARD_NOTIFY: ${{ secrets.JD_JOY_REWARD_NOTIFY}}
|
||||||
|
JD_818_SHAREID_NOTIFY: ${{ secrets.JD_818_SHAREID_NOTIFY}}
|
||||||
|
JOY_FEED_COUNT: ${{ secrets.JOY_FEED_COUNT}}
|
||||||
|
JOY_HELP_FEED: ${{ secrets.JOY_HELP_FEED}}
|
||||||
|
JOY_RUN_FLAG: ${{ secrets.JOY_RUN_FLAG}}
|
||||||
|
JD_JOY_REWARD_NAME: ${{ secrets.JD_JOY_REWARD_NAME}}
|
||||||
|
MARKET_COIN_TO_BEANS: ${{ secrets.MARKET_COIN_TO_BEANS}}
|
||||||
|
MARKET_REWARD_NOTIFY: ${{ secrets.MARKET_REWARD_NOTIFY}}
|
||||||
|
SUPERMARKET_UPGRADE: ${{ secrets.SUPERMARKET_UPGRADE}}
|
||||||
|
BUSINESS_CIRCLE_JUMP: ${{ secrets.BUSINESS_CIRCLE_JUMP}}
|
||||||
|
SUPERMARKET_LOTTERY: ${{ secrets.SUPERMARKET_LOTTERY}}
|
||||||
|
FRUIT_BEAN_CARD: ${{ secrets.FRUIT_BEAN_CARD}}
|
||||||
|
UN_SUBSCRIBES: ${{ secrets.UN_SUBSCRIBES}}
|
||||||
|
FruitShareCodes: ${{ secrets.FruitShareCodes}}
|
||||||
|
PETSHARECODES: ${{ secrets.PETSHARECODES}}
|
||||||
|
PLANT_BEAN_SHARECODES: ${{ secrets.PLANT_BEAN_SHARECODES}}
|
||||||
|
SUPERMARKET_SHARECODES: ${{ secrets.SUPERMARKET_SHARECODES}}
|
||||||
|
TG_PROXY_HOST: ${{ secrets.TG_PROXY_HOST}}
|
||||||
|
TG_PROXY_PORT: ${{ secrets.TG_PROXY_PORT}}
|
||||||
|
|
||||||
|
- name: "部署到腾讯云函数"
|
||||||
|
run: serverless deploy
|
||||||
|
env:
|
||||||
|
STAGE: dev
|
||||||
|
SERVERLESS_PLATFORM_VENDOR: tencent
|
||||||
|
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }}
|
||||||
|
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }}
|
@@ -67,6 +67,7 @@
|
|||||||
- 需自行有云服务器,云函数等
|
- 需自行有云服务器,云函数等
|
||||||
- 腾讯云云函数 [快速部署教程](tencentscf.md)(免费)
|
- 腾讯云云函数 [快速部署教程](tencentscf.md)(免费)
|
||||||
- 腾讯云云函数控制台使用 [教程说明](iCloud.md)
|
- 腾讯云云函数控制台使用 [教程说明](iCloud.md)
|
||||||
|
- 腾讯云云函数 [GitHub Action部署教程](tencentscf.md#github-action-部署)
|
||||||
|
|
||||||
|
|
||||||
### 方法三:Docker(NAS或VPS用户)
|
### 方法三:Docker(NAS或VPS用户)
|
||||||
|
@@ -11,9 +11,9 @@ inputs:
|
|||||||
src: ./
|
src: ./
|
||||||
handler: index.main_handler #入口
|
handler: index.main_handler #入口
|
||||||
runtime: Nodejs12.16 # 运行环境 默认 Nodejs10.15
|
runtime: Nodejs12.16 # 运行环境 默认 Nodejs10.15
|
||||||
region: ap-guangzhou # 函数所在区域
|
region: ap-hongkong # 函数所在区域
|
||||||
description: This is a function in ${app} application.
|
description: This is a function in ${app} application.
|
||||||
memorySize: 64 # 内存大小,单位MB
|
memorySize: 128 # 内存大小,单位MB
|
||||||
timeout: 900 # 超时时间,单位秒
|
timeout: 900 # 超时时间,单位秒
|
||||||
events: # 触发器
|
events: # 触发器
|
||||||
- timer: # 定时触发器
|
- timer: # 定时触发器
|
||||||
@@ -22,3 +22,6 @@ inputs:
|
|||||||
cronExpression: "0 0 0 */1 * * *" # 每天零点执行一次
|
cronExpression: "0 0 0 */1 * * *" # 每天零点执行一次
|
||||||
enable: true
|
enable: true
|
||||||
argument: argument # 额外的参数
|
argument: argument # 额外的参数
|
||||||
|
environment: # 环境变量
|
||||||
|
variables: # 环境变量对象
|
||||||
|
AAA: BBB # 不要删除,用来格式化对齐追加的变量的
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
|
|
||||||
# 云函数快速部署京东脚本
|
# 云函数快速部署京东脚本
|
||||||
|
>
|
||||||
|
> - 本地安装依赖使用serverless部署,[点这里](tencentscf.md#1-安装-nodejs-环境)
|
||||||
|
> - Github Action 部署[点这里](tencentscf.md#github-action-部署)
|
||||||
|
|
||||||
## 1. 安装 Node.js 环境
|
## 1. 安装 Node.js 环境
|
||||||
|
|
||||||
@@ -93,3 +96,26 @@ triggers:
|
|||||||

|

|
||||||
|
|
||||||
> 如果需要配置永久秘钥,则可以在[访问秘钥页面](https://console.cloud.tencent.com/cam/capi)获取账号的 TENCENT_SECRET_ID,TENCENT_SECRET_KEY,并配置在代码根目录 .env 文件中。
|
> 如果需要配置永久秘钥,则可以在[访问秘钥页面](https://console.cloud.tencent.com/cam/capi)获取账号的 TENCENT_SECRET_ID,TENCENT_SECRET_KEY,并配置在代码根目录 .env 文件中。
|
||||||
|
|
||||||
|
|
||||||
|
# Github Action 部署
|
||||||
|
## 1. 开通服务
|
||||||
|
|
||||||
|
依次登录 [SCF 云函数控制台](https://console.cloud.tencent.com/scf) 和 [SLS 控制台](https://console.cloud.tencent.com/sls) 开通相关服务,确保账户下已开通服务并创建相应[服务角色](https://console.cloud.tencent.com/cam/role) **SCF_QcsRole、SLS_QcsRole**
|
||||||
|
|
||||||
|
> 注意!为了确保权限足够,获取这两个参数时不要使用子账户!此外,腾讯云账户需要[实名认证](https://console.cloud.tencent.com/developer/auth)。
|
||||||
|
|
||||||
|
## 2. 在这里新建一个访问密钥[新建密钥](https://console.cloud.tencent.com/cam/capi)
|
||||||
|
> 将SecretId和SecretKey分别配置在仓库的secrets变量里面, TENCENT_SECRET_ID对应你的SecretId的值,TENCENT_SECRET_KEY对应你的SecretKey的值
|
||||||
|
|
||||||
|
## 3. 配置自己需要secrets变量[参考这里](githubAction.md#下方提供使用到的-secrets全集合)
|
||||||
|
|
||||||
|
## 4.执行action workflow进行部署,workflow未报错即部署成功
|
||||||
|

|
||||||
|
## 5. 查看和测试
|
||||||
|
登录后,在 [腾讯云函数地址](https://console.cloud.tencent.com/scf/index) 点击管理控制台,查看最新部署的函数。
|
||||||
|
|
||||||
|
在左侧栏的日志查询中,可以查看到触发的日志,包括是否打卡成功等。
|
||||||
|
|
||||||
|

|
||||||
|
## 6. 设置触发器[看这里](iCloud.md#5设置触发器)
|
||||||
|
Reference in New Issue
Block a user