برنامه نویسی

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

این یک ارسال برای استقرار Pulumi و Document Challenge است: استقرار سریع وب سایت استاتیک

آنچه من ساختم

یک وب سایت نمونه کارها به صورت آماری با استفاده از هوگو و با استفاده از Pulumi به AWS مستقر شده است. این پروژه تهیه یک سطل S3 برای میزبانی ، CloudFront CDN برای توزیع و Route53 DNS Records را خودکار می کند. شامل HTTP های خودکار از طریق گواهینامه های ACM و اقدامات GitHub برای CI/CD را ادغام می کند.

README شامل:

  • نمودار کامل معماری

  • دستورالعمل های تنظیم محیط

  • پیاده روی استقرار Pulumi

  • راهنمای تخمین هزینه

  • شیوه های سخت کننده امنیتی


سفر من

  1. راه اندازی اولیه: 2 ساعت صرف یادگیری ساختار ارائه دهنده SDK و AWS Pulumi Typescript SDK و AWS

  2. اجرای اصلی:

  • سایت هوگو با موضوع سفارشی تولید شده است

  • سطل S3 پیکربندی شده با دسترسی عمومی و میزبانی وب سایت استاتیک

  • توزیع Cloudfront را با دامنه سفارشی و SSL تنظیم کنید

  1. چالش ها:
  • تأخیر در انتشار DNS با مسیر 53

  • پیکربندی سیاستهای صحیح CORS برای CDN

  • اشکال زدایی پیش نمایش Pulumi در مقابل تفاوت های استقرار واقعی

  1. راه حل ها:
  • 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,

    }],

});

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


بهترین روشها:

  1. تنظیمات خاص محیط با استفاده از .env پرونده ها

  2. انتخاب کننده پشته Pulumi سفارشی برای مدیریت چند محیط

  3. تخمین هزینه خودکار از طریق pulumi import دستورات

  4. قوانین گروه امنیتی محدود به محدوده IP Cloudfront

  5. اعلان های استقرار خودکار از طریق ادغام Slack

لیست چک

✅ استقرار تولید کار

✅ مستندات جامع

✅ گردش کار تست خودکار

analysis تجزیه و تحلیل بهینه سازی هزینه

scan نتایج اسکن آسیب پذیری امنیتی

ممنون ….

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا