← 返回项目索引

旗舰项目 / 云计算 / 已验证

Azure Student Cloud Portfolio

以 Azure for Students 为入口,把 Astro 静态站点、OIDC 身份链路和可核验的公开交付整理成一个真实项目案例。

AstroGitHub ActionsAzure StorageOIDCRBAC

项目重点已完成首次公开站点交付与构建产物门禁,公开范围仍限定为个人学习与工程实践。

INTERVIEW BRIEF

面试速览

先看问题、本人工作、关键结果和当前状态。

问题
把 Astro 静态站点、构建产物与公开站点交付之间的关系写清楚,并建立不依赖长期云密钥的自动发布链。
本人工作
负责作品集目标和公开范围、资源人工创建、OIDC/RBAC 配置、部署检查与线上/移动端历史验收。
关键结果
首次运行归档记录 validate、build、upload 和 logout 完成,首次部署上传 14/14 个历史构建文件。
当前状态
已验证;本页复用历史部署事实,本次不重新访问 Azure 或重新部署,且不宣称当前云端状态或 SLA。
Azure Student Cloud Portfolio 事实型流程图
公开事实型示意图,不代表真实运行截图。

项目背景|项目概述

这是一个中文优先的工程实践作品集,用来整理生物医学工程学习、数据分析、云计算和自动化实践。项目在 Azure for Students 的成本、权限和区域限制下部署静态作品集,网站已上线,但内容仍持续完善。

问题与目标|问题与约束

目标不只是让页面可访问,还要把本地 Astro 内容、静态构建产物和公开站点交付之间的关系写清楚,并构建一条不依赖长期云密钥的自动发布链。原 Static Web Apps Free 路径受到订阅允许区域策略限制,因此已有前端资产转为 Storage Static Website 上的静态站点;本项目不声称企业生产级能力、SLA、高并发、容灾、CDN、WAF 或自定义域名。

范围与边界|项目范围

本项目只描述 Astro 静态站点、Azure Storage Static Website、自动化身份链路和公开成果组织,不扩展为企业 DevOps 或生产云架构结论。

我的工作|本人贡献

本人负责:

  • 作品集目标和公开范围;
  • Azure Portal 中资源人工创建;
  • OIDC、Managed Identity、Federated Credential 和 RBAC 配置;
  • GitHub Secrets 配置;
  • 权限、费用和隐私边界;
  • 部署结果检查;
  • 线上页面和移动端验收;
  • 是否继续或停止的阶段判断。

技术方案|AI/Codex 参与

AI/Codex 辅助:

  • Astro 页面;
  • Content Collection;
  • TypeScript;
  • CSS;
  • workflow;
  • validate/build 脚本;
  • 技术文档。

本人负责公开内容边界、Azure 权限与费用约束、实际配置或监督运行、部署证据审核和当前状态判断。

架构或流程|方法或系统结构

Astro 负责页面生成和 Markdown Content Collections;GitHub Actions 负责自动化构建与发布;GitHub OIDC 提供短期身份联结;User-assigned Managed Identity 与 Azure RBAC 负责授权;Azure Storage Static Website 提供静态文件托管。自动部署链路为:源码与 Markdown → validate → Astro build → OIDC → Managed Identity → $web 容器级 RBAC → upload。

结果与证据|已验证结果

首次运行归档显示 validate、build、upload 和 logout 完成;首次部署上传了 14/14 个历史构建文件;home、about、projects、privacy、404 完成历史 smoke test。这里保留的是历史归档证据,不宣称本 Goal 重新访问 Azure,也不宣称当前云端状态、持续监控或 SLA。

公开站点 URL 为 https://sthuangjunpengpf260804.z11.web.core.windows.net。14/14 仅代表首次部署时的构建文件数量,不代表当前或未来网站固定的文件总数。

相关材料|公开证据

公开包包含案例说明、OIDC 验收摘要、workflow 示例、架构图、10 张脱敏证据图、manifest、SHA-256、许可证与第三方声明。部署证据和内部验收材料不在本页面复制;当前仅提供脱敏公开摘要。

局限|当前限制和状态

当前状态为“已验证”。这些结果不证明后续每次部署必然成功,也不证明当前云端状态、持续监控、SLA、高并发或容灾能力。当前未实现 CDN、WAF、容灾和自定义域名,公开内容仍是工程实践摘要。

当前状态与限制|当前状态

当前内容仍持续完善;本页复用历史部署与验收事实,不在本次内容实现中重新访问 Azure、重新部署或重新运行云端实验。

隐私与数据说明|隐私与公开边界

本项目不在页面中公开账号、订阅标识、租户标识、客户端标识、密钥、令牌或内部路径。页面描述的是公开架构与验收摘要,不构成平台日志、隐私或合规保证。

PUBLIC ARTIFACTS

成果文件与复核材料

14 个公开成果,按中文说明、文件大小和 SHA-256 复核。

成果分组

项目说明与报告

说明项目背景、方法、范围、结果和限制,帮助先理解成果边界。 当前组 4 个文件。

Azure 静态作品集案例说明

case-study.md

案例说明 · Markdown · 1.2 KB

脱敏后公开
内容说明
说明学生作品集从 Astro 内容、validate/build 门禁到 OIDC 授权上传的边界化实现,并解释为什么把结果定位为历史工程实践而不是企业生产承诺。
能够证明
支持公开案例中记录的技术决策、流程边界和历史证据使用方式。
不能证明
不证明高并发、容灾、WAF、CDN、自定义域名、持续监控、SLA 或未来部署可靠性。
许可和第三方条款
CC BY 4.0 国际署名许可(自行编写的案例叙述)
来源和公开处理
来自仓库 Azure 公开包的自行编写案例正文;保留历史说明,不访问云端补写当前状态。

SHA-256 摘要 168d2708f6ec…

展开完整 SHA-256168d2708f6ec577c9a63ee333f242d1c1e6412107e622095812dbdd77a651758

Azure 证据图公开索引

evidence-index.md

证据索引 · Markdown · 2.0 KB

脱敏后公开
内容说明
逐项记录五张保留证据图的裁剪、精确遮罩、证据边界以及旧版 06–10 页面图被排除的原因,并如实保留 Azure CLI 版本解析 warning。
能够证明
支持公开图像是经过人工查看的历史派生副本,以及每张图能支持的最小事实范围。
不能证明
不把一次有非阻断 warning 的历史运行扩大成完全无 warning,也不把历史截图扩大成当前云端验收。
许可和第三方条款
CC BY 4.0 国际署名许可(自行整理的索引说明)
来源和公开处理
根据本地只读母版和站点最终五张 PNG 编写;不包含账户、完整 hostname 或桌面身份信息。

SHA-256 摘要 c4dbdc2b1632…

展开完整 SHA-256c4dbdc2b16328b47c1003cab76a9c70f6d18454f8f64dc780ca37f2a91f5220a

OIDC 首次部署验收摘要

oidc-acceptance.md

验收摘要 · Markdown · 942 B

脱敏后公开
内容说明
汇总历史首次 push run 中的 checkout、Node、依赖、validate、build、dist/index.html 门禁、OIDC 登录、上传、logout 和清理步骤。
能够证明
支持本地归档记录过一条完整的历史部署链,并记录了 14/14 静态文件上传完成事实。
不能证明
不证明当前云端仍可访问、不证明权限未变化、不证明运行没有 warning,也不代表本 Goal 重新部署。
许可和第三方条款
CC BY 4.0 国际署名许可(自行整理的验收摘要)
来源和公开处理
来自本地历史验收归档的脱敏摘要;账户、订阅、租户、资源和完整站点地址均不公开。

SHA-256 摘要 fd1d305e7b78…

展开完整 SHA-256fd1d305e7b78f5a05827e1b1fc63ff2bcc76591aeaf1cfbe4d5f2581e2a11a7d

Azure 公开成果包说明

README.md

包说明 · Markdown · 1.3 KB

脱敏后公开
内容说明
说明 Azure 包的历史证据性质、14 个 artifact 的组成、五张保留证据图的处理方式和 06–10 旧页面图被排除的公开边界。
能够证明
支持访问者理解该下载包提供什么、如何处理截图以及为什么不宣称当前站点可用。
不能证明
不证明当前云端状态、未来部署、持续监控、SLA 或第三方界面素材的再授权。
许可和第三方条款
包级说明:代码/工作流适用 MIT License,叙述/架构适用 CC BY 4.0,界面图片按第三方通知处理
来源和公开处理
由当前站点公开包根据只读源包和本地展示层重新整理;未访问 GitHub 或 Azure。

SHA-256 摘要 075fde820c68…

展开完整 SHA-256075fde820c6868f579f23dcc9140661f920a1b8d2c0abe41ed368623d55459ec

成果分组

数据、代码与可复现资产

提供可以下载、核对或离线复用的数据表、代码和结构化资产。 当前组 1 个文件。

GitHub Actions OIDC 部署示例

oidc-workflow-sample.yml

工作流示例 · YAML · 1.5 KB

脱敏后公开
内容说明
展示公开结构化示例中的权限声明、Node 设置、validate/build、dist/index.html 门禁、OIDC 登录和 upload-batch 步骤;真实资源值使用占位符。
能够证明
支持工作流采用短期 OIDC 身份、最小化权限表达和构建后上传顺序。
不能证明
不证明示例可直接用于任意仓库、不包含真实 secret 值,也不证明当前工作流配置仍在云端运行。
许可和第三方条款
MIT License(自行编写的 workflow 示例)
来源和公开处理
根据本地 workflow 结构生成的公开 structural sample,已使用占位符且不含真实账户或资源值。

SHA-256 摘要 9f19a87140de…

展开完整 SHA-2569f19a87140de1df332ad93bbc37478ec776b8bdebd40e9c4d0a2c6a11bc7e71f

成果分组

图表与验收证据

展示图表、历史界面证据和固定协议下的可见结果。 当前组 6 个文件。

Azure OIDC 自动部署架构图

architecture.svg

架构图 · SVG · 2.0 KB

脱敏后公开
内容说明
用通用方框和箭头说明源码、CI workflow、validate/build 门禁、OIDC 短期会话以及静态存储之间的关系;图中明确没有账户或资源标识。
能够证明
支持该项目采用源码→CI 校验与构建→OIDC 登录→静态存储上传的工程流程。
不能证明
不证明某次云端运行的每一项配置、当前资源状态、权限仍然有效或网站持续在线。
许可和第三方条款
CC BY 4.0 国际署名许可(自绘架构与叙述内容)
来源和公开处理
来自 Azure 公开派生包的通用自绘图,已省略账户、资源、租户和本机路径信息。

SHA-256 摘要 cc4168cc8f5c…

展开完整 SHA-256cc4168cc8f5ca4e7a90e43b29c2100ad178aa60252e6f07326f910da2a976f1c

GitHub Actions 工作流列表证据

evidence/01-actions-workflow-list.png

历史界面证据 · PNG · 127 KB

脱敏后公开
内容说明
裁剪后的 GitHub Actions 工作流列表,保留 Deploy portfolio to Azure Storage、一次运行、master 分支、时间和时长等可见信息。
能够证明
支持该工作流在历史页面中存在过一次运行。
不能证明
不证明当前仓库、当前工作流、当前云端或运行后网站仍处于相同状态。
许可和第三方条款
GitHub 界面历史证据(第三方权利;不含自行编写的界面授权)
来源和公开处理
从只读 Azure OIDC 首次运行母版裁掉顶部仓库身份和下方桌面区域,并对运行行身份文字作深蓝灰遮罩。

SHA-256 摘要 9b44c0d0e747…

展开完整 SHA-2569b44c0d0e7473955ec4f24e619881736b3aa37e6fead4e42d45ae4a7eac15126

首次自动部署运行摘要

evidence/02-run-summary.png

历史运行证据 · PNG · 60 KB

脱敏后公开
内容说明
保留历史运行的 Success、deploy job Success 和 51s 总时长,同时保留 Annotations 中的 Azure CLI 版本解析非阻断 warning。
能够证明
支持该次历史运行有成功摘要和成功 deploy job。
不能证明
不证明运行完全无 warning,不证明当前云端在线、当前权限或后续运行结果。上传完成由独立 05 图支持。
许可和第三方条款
GitHub Actions 界面历史证据(第三方权利;脱敏后公开)
来源和公开处理
从只读母版裁掉顶部身份、任务栏和无关右侧区域,并遮罩摘要行头像/身份文字;保留 warning 事实。

SHA-256 摘要 c7962083664b…

展开完整 SHA-256c7962083664bb4e087f6637812ee2252baf8ab0a7a6b5f17714dafd810508a8b

自动部署 Job 步骤证据

evidence/03-deploy-job-steps.png

Job 步骤证据 · PNG · 108 KB

脱敏后公开
内容说明
列出历史 deploy job 的 setup、checkout、Node、依赖安装、validate、build、构建产物核验、OIDC 登录、上传和清理步骤,并保留成功图标。
能够证明
支持这些步骤在该历史 job 页面上显示成功。
不能证明
不证明隐藏日志内容、当前云端状态、未来运行可靠性或每次都没有 warning。
许可和第三方条款
GitHub Actions 界面历史证据(第三方权利;裁剪后公开)
来源和公开处理
从只读母版裁去右侧搜索和无关桌面浮层区域,保留核心步骤文本和成功状态。

SHA-256 摘要 ee318a6c3ea9…

展开完整 SHA-256ee318a6c3ea979ed6ce70e1b1b50597d77f225f7d1fe6a59bee570837debdb0a

Astro 构建产物门禁证据

evidence/04-verify-build-output.png

构建门禁证据 · PNG · 20 KB

脱敏后公开
内容说明
显示工作流中的 `test -d dist` 与 `test -f dist/index.html` 检查以及成功退出状态,聚焦构建产物存在性门禁。
能够证明
支持历史 workflow 确认 dist 和 dist/index.html 存在。
不能证明
不证明 HTML 内容正确性、当前源代码已构建或本 Goal 已重新执行该门禁。
许可和第三方条款
GitHub Actions 日志历史证据(第三方界面权利;脱敏后公开)
来源和公开处理
来自只读母版的紧凑控制台裁剪;未添加遮罩,也未执行其中命令。

SHA-256 摘要 fdb427e06926…

展开完整 SHA-256fdb427e06926dcb7ab6d9a55e831947cd8d3251ec47999f8880cd01f0e39e128

14 个静态文件上传完成证据

evidence/05-upload-to-azure-storage.png

上传日志证据 · PNG · 108 KB

脱敏后公开
内容说明
保留 Upload to Azure Storage 步骤、1/14 到 14/14 的文件进度和 Finished 状态,并保留 `$web`、dist 与 login 模式等结构信息。
能够证明
支持历史日志中 14 个静态文件完成批量上传。
不能证明
不证明真实账户名称、当前存储内容、当前云端在线、后续上传可靠性或 SLA。
许可和第三方条款
GitHub Actions/Azure CLI 历史日志证据(第三方权利;敏感值已遮罩)
来源和公开处理
从只读母版裁掉右侧桌面浮层,仅遮罩 `--account-name` 后的真实名称,保留 14/14 和 Finished。

SHA-256 摘要 cea2906c43fe…

展开完整 SHA-256cea2906c43fe81666bdc651205f0dea85257ce54ec9e03597ab0ae00a5d7e638

成果分组

许可与第三方说明

集中说明自行编写的内容、数据来源和第三方权利边界。 当前组 3 个文件。

Azure 代码与工作流 MIT 许可

LICENSE-CODE.txt

许可证文本 · TXT · 742 B

脱敏后公开
内容说明
给出公开包中自行编写的代码、workflow 示例和相关软件材料的 MIT License 正文、版权声明和无担保条款。
能够证明
支持公开代码材料的许可证授权范围和免责声明。
不能证明
不改变 GitHub、Azure 界面图片、服务商商标或第三方数据各自的权利边界。
许可和第三方条款
MIT License(自行编写的代码和 workflow;第三方界面除外)
来源和公开处理
来自 Azure 公开包的许可证文件,未改写许可证正文。

SHA-256 摘要 aa5fde66955f…

展开完整 SHA-256aa5fde66955fce53afde5654de0d9ad74b5d378e652595bdaf13fc9d6fa15899

Azure 叙述与架构内容 CC BY 4.0 许可

LICENSE-CONTENT.txt

许可证文本 · TXT · 553 B

脱敏后公开
内容说明
说明案例叙述、文档、架构图和自行编写的内容可在署名条件下使用,同时明确 GitHub/Azure 界面和第三方材料不包含在该授权中。
能够证明
支持公开内容的署名要求与排除项。
不能证明
不授予使用服务商商标、界面素材或未公开内部资料的权限。
许可和第三方条款
Creative Commons Attribution 4.0 International(CC BY 4.0,国际署名许可)
来源和公开处理
来自 Azure 公开包的内容许可证说明;与代码 MIT License 和第三方通知分开。

SHA-256 摘要 5c4b279fdc78…

展开完整 SHA-2565c4b279fdc786a3633e303fce1aaf31baa50a6b838aed0cfafbb5356f993a577

Azure 第三方界面与服务说明

THIRD_PARTY_NOTICES.md

第三方声明 · Markdown · 671 B

脱敏后公开
内容说明
说明 GitHub Actions、Azure 和 Azure Storage 界面图仅作为脱敏历史证据使用,商标与界面权利仍归各自权利人。
能够证明
支持公开包没有把第三方界面图片误标为自行编写的内容或服务商背书。
不能证明
不替代第三方官方条款,也不授予使用商标、界面或云服务的额外许可。
许可和第三方条款
第三方权利声明(不授予额外许可证)
来源和公开处理
来自 Azure 公开包的第三方通知,并补充说明旧版 06–10 图已从站点包排除。

SHA-256 摘要 11d9918447f9…

展开完整 SHA-25611d9918447f9d520138a2c98520a4c9a6a99540e6cfde2594a39e23ac197b783