IaC 实战:使用 Pulumi、AWS 和 Cloudflare 部署静态网站
这是参加Pulumi 部署和文档挑战赛:快速静态网站部署的参赛作品。
🚀我打造的
本项目展示了如何使用 Python 和 Pulumi 从零开始部署静态网站,并使用 Amazon S3 进行网站托管,以及使用 Cloudflare 进行 DNS 和 CDN 服务。
该网站托管在one-million.tech,完全采用基础设施即代码 (IaC) 进行配置,从而实现了可重复、自动化和版本控制的部署。
🔗在线演示链接
📦项目仓库
🔗 https://github.com/onlyfave/Pulumi-deploy-static
请务必查看README 文件,其中包含完整的逐步指南。
✍️ 我的旅程
我启动这个项目的初衷只有一个:获得使用 Python 和 Pulumi 部署基础设施的实践经验,而不仅仅是在 AWS 控制台上点击按钮。我之前也做过静态网站,但这一次,我想要一种简洁、可重复、自动化的方式来管理网站的完整生命周期,从代码编写到云端部署,并使用基础设施即代码 (IaC) 技术。
🛠️初始设置
我选择 Pulumi 是因为它允许我用 Python(我最喜欢的语言)编写基础设施。我创建了一个新的 Pulumi 项目,并开始搭建托管静态网站所需的资源:
-
具有静态站点配置的 S3 存储桶
-
公共访问政策(但要谨慎,以确保安全)
-
使用 Pulumi 的 FileAsset 将本地站点文件上传到 S3。
-
使用 Cloudflare 设置 DNS,将我的自定义域名one-million.tech指向 S3 托管的网站。
计划就是这样。纸面上看起来很简单。但云部署从来都不像你第一眼看到的那样顺利😅
我分享了遇到的所有挑战,从 S3 存储桶错误到 DNS 传播难题,以及我是如何解决它们的。内容涵盖了大量经验教训、代码片段和真实的开发困境。📖
我如何驯服云——排查我的 S3、Cloudflare 和 Pulumi 静态网站故障
🧠 使用 Pulumi
Pulumi是这个项目的支柱。
- 我使用Python SDK定义并配置了一个用于静态网站托管的 S3 存储桶。
- 我通过 Pulumi 添加了Cloudflare DNS 配置,将我的自定义域名 ( ) 路由
one-million.tech到 S3 端点。 - 我使用 Pulumi 上传了具有正确类型的静态 HTML 文件
FileAsset。 - 我使用 . 安全地存储了密钥和配置
pulumi config。
为什么选择 Pulumi?
- 使用真正的编程语言(Python💻)进行基础设施即代码(IaC)
- 无需手动设置或点击AWS/Cloudflare控制面板
- 版本控制 + 快速重新部署
- 无缝集成多个云服务提供商
文章来源:https://dev.to/onlyfave/iac-in-action-deploying-a-static-site-with-pulumi-aws-cloudflare-29cj

