mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
1217 字
6 分钟
将静态博客迁移至Microsoft Azure托管

封面来自:不知道哪个壁纸网站

我的Blog经过一年多的运行,不得不说Astro静态博客真的是省钱又好用。

但是放在Cloudflare托管,国内访问延迟爆炸,有时候加载几十秒都不能加载出来。

在2025年的某天,我漫无目的地翻着Github Education Benefit的权益,突然发现权益里有Microsoft Azure免费静态网页托管,并且有香港CDN节点,于是就把部署在Cloudflare Pages上的Blog迁移到Azure上了。

写这篇文章的目的不仅是记录一下变迁,也给大家提供一些教程与问题解决。

准备#

你需要:

1.Azure学生账户(申请Github Education Benefit后就有,申请方法这里不赘述)

2.耐心

开始迁移#

Azure的静态网站构建是通过Github Actions来实现的

想必大家的Blog文件都是托管在Github仓库里的吧

当然如果在其他托管平台Azure也支持文件上传,只是有点麻烦

打开 Azure静态网页 仪表盘#

链接直达:点这里

点左上角创建即可进入创建表单

填写表单#

项目详细信息 一栏的 订阅 选项卡选择 Azure for Students

下面的资源组选项卡如果没有的话就新建一个

托管计划 一栏的 计划类型 选项卡选择 免费: 适用于业余爱好或个人项目

否则会计费,免费计划所包含的内容可以通过上方 比较计划 链接查看

部署详细信息 栏关联你的Github账户并选择你的Blog仓库

然后会出现 生成详细信息 一栏,在 生成预设 选项卡中会有很多网站架构的预设,你可以选择适合自己的网站的预设

如果你和我同样用的是Astro框架,请选择 Custom 预设,选择后下面会弹出三个文本框,空着不填

点击 下一步 而不是 创建+查看

部署授权策略 中选择 部署令牌

点击 下一步 而不是 创建+查看

Azure Functions API 和暂存环境的区域 中,你可以自由选择你的暂存区域,这里我选择了East Asia,据我所知这个区域的节点在香港,所以延迟会比较低,如果你有其他需求,按需选择即可

点击创建+查看,等待创建完毕,这时Github Actions会构建失败,这是正常现象,接着往下看

Github Actions配置#

打开你Blog所在的Github仓库页面

进入 /.github/workflows 文件夹,你会看到一个 azure-static-web-apps-xxxxxxx.yml 的文件,打开它

找到第26行,应该会看到格式为 azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_XXXXXXX }} 的一行,复制他备用

然后修改这个.yml文件为以下内容(因为我懒得写所以让Claude Sonnet 4写的,亲测能用):

name: Azure Static Web Apps CI/CD
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened, closed]
branches:
- master
jobs:
build_and_deploy_job:
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
name: Build and Deploy Job
steps:
- uses: actions/checkout@v3
with:
submodules: true
lfs: false
- name: 安装 pnpm
uses: pnpm/action-setup@v2
with:
version: 8
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
cache: 'pnpm'
- name: 安装依赖
run: pnpm install
- name: 构建项目
run: pnpm run build
- name: 部署到 Azure Static Web Apps
id: builddeploy
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_XXXXX }}
repo_token: ${{ secrets.GITHUB_TOKEN }}
action: "upload"
app_location: "dist"
api_location: ""
output_location: ""
skip_app_build: true
close_pull_request_job:
if: github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
name: Close Pull Request Job
steps:
- name: 关闭 Pull Request
id: closepullrequest
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_XXXXX }}
action: "close"

然后将第44行和第61行替换为刚刚我们复制备用的那一行的内容,注意缩进

此时Github Actions会重新构建,不出意外,这次能顺利通过,然后回到Azure仪表盘,发现你的网站状态已经为 就绪 了。这时你可以通过Azure提供的二级域名访问你的Blog。

迁移自此完成,接下来是修改域名解析。

修改域名解析#

打开Azure仪表盘,找到你刚刚创建的网站进入概述,点击页面中的 添加自定义域

点击左上角 添加 ,然后选择TXT验证,在域名的DNS解析里添加TXT解析以及Azure提供的内容,等待验证通过(大约需要三四个小时甚至更长)

上图上方为正在验证,下方为验证已通过

验证通过后,在你的域名DNS解析里添加CNAME解析,指向Azure给你提供的二级域名

然后访问你的域名,不出意外你的Blog已经能正常访问了,大功告成~

题外话#

这次其实也给Blog的模板从Fuwari换到了Mizuki,感觉更加丰富好看了呢~

写到这里已经子夜了,不说了去追番了(

晚安

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

将静态博客迁移至Microsoft Azure托管
https://12am.moe/posts/other2azure/
作者
ZiYe_12PM
发布于
2026-01-17
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时