یک وب سایت نمونه کارها با استفاده از هوگو و با استفاده از Pulumi به AWS مستقر شده است

این یک ارسال برای استقرار Pulumi و Document Challenge است: استقرار سریع وب سایت استاتیک
آنچه من ساختم
یک وب سایت نمونه کارها به صورت آماری با استفاده از هوگو و با استفاده از Pulumi به AWS مستقر شده است. این پروژه تهیه یک سطل S3 برای میزبانی ، CloudFront CDN برای توزیع و Route53 DNS Records را خودکار می کند. شامل HTTP های خودکار از طریق گواهینامه های ACM و اقدامات GitHub برای CI/CD را ادغام می کند.
README شامل:
-
نمودار کامل معماری
-
دستورالعمل های تنظیم محیط
-
پیاده روی استقرار Pulumi
-
راهنمای تخمین هزینه
-
شیوه های سخت کننده امنیتی
سفر من
-
راه اندازی اولیه: 2 ساعت صرف یادگیری ساختار ارائه دهنده SDK و AWS Pulumi Typescript SDK و AWS
-
اجرای اصلی:
-
سایت هوگو با موضوع سفارشی تولید شده است
-
سطل S3 پیکربندی شده با دسترسی عمومی و میزبانی وب سایت استاتیک
-
توزیع Cloudfront را با دامنه سفارشی و SSL تنظیم کنید
- چالش ها:
-
تأخیر در انتشار DNS با مسیر 53
-
پیکربندی سیاستهای صحیح CORS برای CDN
-
اشکال زدایی پیش نمایش Pulumi در مقابل تفاوت های استقرار واقعی
- راه حل ها:
-
Pulumi را پیاده سازی کرد
waitUntil
برای تثبیت منابع -
از الگوهای CDK Terraform برای روابط پیچیده منابع استفاده شده است
-
تست های واحد جامع با چارچوب تست Pulumi اضافه شده است
معمول
Pulumi برای آن انتخاب شد:
-
پشتیبانی از نوع قوی با تایپ کردن Typescript واقعی
-
قابلیت های چند ابر (به راحتی می تواند به Azure/GCP بفرستد)
-
تجسم وابستگی به منابع در VScode
-
قابلیت های برگشت در هنگام خرابی استقرار
ویژگی های کلیدی Pulumi مورد استفاده:
// Infrastructure components
const websiteBucket = new s3.Bucket('WebsiteBucket', {
website: {
indexDocument: 'index.html',
},
});
const distribution = new cloudfront.Distribution('WebsiteDistribution', {
origins: [{
domainName: websiteBucket.bucketRegionalDomainName,
originPath: '',
}],
enabled: true,
defaultRootObject: 'index.html',
priceClass: PriceClass.PriceClass_100,
});
// DNS automation
const record = new route53.ARecord('WebsiteAlias', {
zoneId: zone.zoneId,
name: 'dev-portfolio.com',
aliases: [{
name: distribution.domainName,
zoneId: distribution.hostedZoneId,
}],
});
بهترین روشها:
-
تنظیمات خاص محیط با استفاده از
.env
پرونده ها -
انتخاب کننده پشته Pulumi سفارشی برای مدیریت چند محیط
-
تخمین هزینه خودکار از طریق
pulumi import
دستورات -
قوانین گروه امنیتی محدود به محدوده IP Cloudfront
-
اعلان های استقرار خودکار از طریق ادغام Slack
لیست چک
✅ استقرار تولید کار
✅ مستندات جامع
✅ گردش کار تست خودکار
analysis تجزیه و تحلیل بهینه سازی هزینه
scan نتایج اسکن آسیب پذیری امنیتی
ممنون ….