- 在项目根目录下新建
.github/workflows/publish.yml
文件。 - 内容如下:
name: Build and Publish Docker Image
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
build-and-publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GHCR_PAT || secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ghcr.io/${{ github.repository_owner }}/local-monitor:latest
- name: Show published image
run: echo "Published to ghcr.io/${{ github.repository_owner }}/local-monitor:latest"
- 提交并推送到 main 分支,GitHub Actions 会自动构建并推送镜像。
二、为什么需要 permissions 配置?
在组织仓库或部分个人仓库中,GitHub Actions 默认的 GITHUB_TOKEN 没有推送容器包(package)的权限。如果 workflow 没有显式声明 permissions
,会出现如下报错:
写local-monitor
时,因为涉及到时间序列及序列查询,在转换UTC时间和本地时间的时候出现了一些BUG,记录如下。
时区与 UTC
- UTC(协调世界时):全球统一的时间标准,示例:不受时区影响。
2025-09-11T04:44:02Z
(Z 表示 UTC,注意如果没有Z,至少js会当作本地时间处理) - 时区:地球划分的区域,每个区域有自己的标准时间。例如中国标准时间 CST(UTC+8)。示例:
2025-09-11T12:44:02+08:00
(带时区偏移)
BUG1:时间选择器与数据库时区不一致
现象:
- 前端时间选择器选择的是本地时间(如东八区),但提交给后端的时间未做时区转换,直接传递本地时间。
- 后端数据库统一存储为 UTC 时间,导致查询时出现偏差,
后端相关代码:
# db.py
# 插入数据时,要求 timestamp 必须为 UTC 格式字符串
def insert_ping_result(db_file, ip_address, response_time, timestamp):
# timestamp 必须为 UTC 格式字符串
...
- 查询历史时,后端也是用
datetime.datetime.utcnow()
作为基准时间:
# db.py
now = datetime.datetime.utcnow()
推测原因:
- 前端时间选择器组件默认输出本地时间字符串。
- 前端未将本地时间转换为 UTC 格式再提交。
- 后端收到的时间与数据库实际存储的 UTC 时间不一致,查询结果异常。
解决建议:
- 前端提交前,统一将选择器得到的本地时间转换为 UTC 时间字符串(如 ISO 8601 格式)。
- 后端所有时间字段统一用 UTC 存储和查询。
BUG2:字符串格式导致 JS 解析错误
现象:
- 后端返回
2025-09-11 04:44:02
,前端用 JS 解析后,发现本地时间和原始时间一致,没有加上时区偏移。
原因分析
起因
今天本来打算用 Cloudflare Pages 跑一个静态博客,但在新建项目时看到提示:
我们建议在新项目中使用 Cloudflare Workers。
请在我们的兼容性矩阵中查看 Workers 与 Pages 的比较。
于是我就研究了一下,发现其实 Cloudflare Workers 也能直接部署 Hugo 静态博客,而且过程非常简单。
1. 安装 Hugo
首先需要在本地安装 Hugo。
sudo apt install hugo
安装好后检查一下版本:
hugo version
2. 初始化博客项目
创建一个新的 Hugo 站点:
hugo new site blog
cd blog
接下来挑选一个主题,例如 Diary。 把主题拉到本地:
git init
git submodule add -b main https://github.com/AmazingRise/hugo-theme-diary.git themes/diary
然后复制主题的 exampleSite
配置文件:
cp -r themes/diary/exampleSite/* .
这样站点就具备了可运行的配置和示例内容。
本地启动预览:
hugo server -D
浏览器打开 http://localhost:1313,可以看到主题示例站点。
3. 配置 wrangler.jsonc
部署设置文件
{
"name": "example-com",
"compatibility_date": "2025-07-20",
"assets": {
"directory": "./public",
"html_handling": "auto-trailing-slash",
"not_found_handling": "404-page",
"run_worker_first": false
},
"build": {
"command": "hugo build --gc --minify"
},
"workers_dev": true,
"preview_urls": true
}
4. 推送到 GitHub
接下来把项目推送到 GitHub 仓库(Workers 会直接拉取这个仓库进行构建):
华为云 2025.8 开发者活动攻略 考试资料
成本:每门认证(优惠券后)需要1元购买;需要参与线上结业考试,超过 70 分合格,获取证书后才能兑换积分;
积分 兑换: 4分 200元云资源券 / 8分 400元云资源券 / 12分 600元云资源券 400元云资源券+开发者定制帆布包 14分 700元云资源券 1099元工作级开发者认证券—限量50 16分 800元云资源券 600元云资源券+云宝盲盒—限量100
首先在 https://edu.huaweicloud.com/signup/8a8472ec5f054f1596747afbe3e219f5?medium=share_kfzlb 报名
领取优惠券(改成 表格形式) (1)活动报名后,每个账户共可以领取6张微认证代金券:点此领取3张27元微认证代金券(满28元可用);点此领取2张37元微认证代金券(满38元可用);点此领取1张47元微认证代金券(满48元可用)。
兑换
(2)开发者认证代金券满700可用,仅在购买700元入门级开发者认证时可抵扣。
六、积分兑换好礼(点此填写积分兑换问卷-仅可兑换1次,兑换后不可更改!填写时间截止到10月8日24:00,请及时填写)
积分数
奖品(2选1)-奖品限量,必须足够积分再填写兑换问卷
4分
200元云资源券
/
8分
400元云资源券
/
12分
600元云资源券
400元云资源券+开发者定制帆布包
14分
700元云资源券
1099元工作级开发者认证券—限量50
16分
800元云资源券
600元云资源券+云宝盲盒—限量100
以下是您第二次发送的图片压缩相关题目的答案整理(格式为 题目: 答案),基于搜索结果中的信息:
判断题 1. 代码运行时需要的资源,在函数工作流创建时就始终存在,不是动态调配。: B(错误)
函数工作流采用动态资源调配,按需分配资源,不使用时释放。
实现图片压缩的步骤是:输入源图片-后台处理-输出压缩后图片。: A(正确)
标准流程为上传源图至OBS→函数处理→输出压缩图至目标桶。
函数工作流FunctionGraph采用按需付费的方式,不使用不收费。: A(正确)
FunctionGraph按实际执行资源计费,无请求时不产生费用。
复杂场景下,IAM委托可以跨账号或跨AZ调用,方便更大范围内的资源调度和权限管理。: A(正确)
IAM委托支持跨账号授权及跨区域资源调度。
华为云上不同云服务默认可以互相调用。: B(错误)
local-monitor 本地节点延迟监控
一、项目简介
起源:xxx
本项目用于本地到服务器的 Ping 延迟监控,支持多节点批量采集、历史曲线可视化,并可自动从哪吒面板拉取服务器列表。
三、文件结构
run.py
:主程序,负责数据采集和 Web 服务db.py
:数据库操作,延迟数据存储与查询nezha.py
:哪吒面板交互,自动生成 server.csvtemplate.html
:前端页面,数据展示与交互data/server.csv
:节点列表配置requirements.txt
:依赖包列表Dockerfile
:容器构建文件.github/workflows/publish.yml
:自动构建并推送 Docker 镜像的 workflow
## 四、环境变量说明
- `NEZHA_API_URL`:哪吒面板 API 地址
- `NEZHA_USER`:哪吒面板用户名
- `NEZHA_PASSWORD`:哪吒面板密码(如有特殊字符建议加引号)
# local-monitor 本地节点延迟监控
## 一、项目简介
本项目用于本地到服务器的 Ping 延迟监控,支持多节点批量采集、历史曲线可视化,并可自动从哪吒面板拉取服务器列表。
## 二、配置
1. 编辑 `data/server.csv`,格式如下:
```csv
ip,name,desc
1.2.3.4,节点A,描述A
5.6.7.8,节点B,描述B
...
- 或配置
.env
后直接使用python nezha.py
从哪吒面板拉取服务器数据。
三、文件结构
run.py
:主程序,负责数据采集和 Web 服务db.py
:数据库操作,延迟数据存储与查询nezha.py
:哪吒面板交互,自动生成 server.csvtemplate.html
:前端页面,数据展示与交互data/server.csv
:节点列表配置requirements.txt
:依赖包列表Dockerfile
:容器构建文件.github/workflows/publish.yml
:自动构建并推送 Docker 镜像的 workflow
四、命令行运行
- 安装依赖:
pip install -r requirements.txt
- 采集服务器列表(如需自动生成 server.csv):
python nezha.py
- 启动服务:
python run.py
- 浏览器访问
http://localhost:5000
查看监控界面。
五、Docker 运行
1. 拉取最新镜像
docker pull ghcr.io/vpslog/local-monitor:latest
2. 生成/更新服务器列表(server.csv)
docker run --rm \
-v $(pwd)/local-monitor:/app/data \
-e NEZHA_API_URL='XXXX' \
-e NEZHA_USER='XXX' \
-e NEZHA_PASSWORD='XXXX' \
ghcr.io/vpslog/local-monitor:latest python3 nezha.py
说明: