يقوم هذا التطبيق بإنشاء موارد AWS متنوعة لاستضافة تطبيق صفحة واحدة. يحتوي التطبيق أيضًا على نموذج اتصال لحفظ بيانات الاتصال في قاعدة البيانات وإرسال بريد إلكتروني أيضًا إلى مؤلف التطبيق.
خدمات AWS المستخدمة في هذا التطبيق.
في هذا العرض التوضيحي، أستخدم اسم نطاق Namecheap الخاص بي والذي تم توجيهه إلى Amazon Route53 حتى أتمكن من استخدام شهادة HTTPS دون أي ضجة إضافية. يمكنك اتباع هذا الرابط لتكوين إعادة توجيه Namecheap إلى Route53 وACM لشهادة SSL.
لاستخدام شهادة ACM مع Amazon CloudFront، يجب عليك طلب الشهادة أو استيرادها في منطقة شرق الولايات المتحدة (شمال فيرجينيا).
ملاحظة: يرجى التأكد من أن اسم حاوية S3 الخاص بك يطابق اسم المجال الخاص بك. على سبيل المثال، اسم النطاق الخاص بي هو newarc.io
، لذلك قمت بتكوين اسم الحاوية الخاص بي ليكون newarc.io
.
https://benjamincongdon.me/blog/2017/06/13/How-to-Deploy-a-Secure-Static-Site-to-AWS-with-S3-and-CloudFront/
قبل النشر، قم بإنشاء config.dev.json
من ملف sample.config.json
وقم بتعيين القيم.
{
"BUCKET_NAME": "S3 bucket name. For example, mysite.com",
"TABLE_NAME": "DynamoDB table name",
"CONTACT_RECEIVED_TOPIC": "contact-received-email",
"FORWARD_EMAIL": "Email where you want to receive contact message",
"ACM_CERT_ARN": "arn:aws:acm:us-east-1:<AWS ACCOUNT>:certificate/<CERTIFICATION ID>",
"HOSTED_ZONE_ID": "Route53 Hosted Zone ID"
}
قم بتشغيل أمر sls deploy
لنشر التغييرات على AWS.
لدفع التغييرات الخاصة بالموقع (Html، CSS، JS، إلخ)
aws s3 sync app/ s3://<bucket name>
بعد نشر الخدمة، إذا كنت تقوم فقط بدفع التغيير إلى موقعك. سيستغرق توزيع CloudFront بعض الوقت لتحديث المحتوى المخزن مؤقتًا. لتحديث CloudFront على الفور، ستحتاج إلى invalidate
ذاكرة التخزين المؤقت.
انتقل إلى وحدة تحكم CloudFront الخاصة بك وانسخ معرف التوزيع الذي تم إنشاؤه من خلال هذه الخدمة وقم بتشغيل الأمر التالي. يرجى ملاحظة أن الأمر التالي سوف يمسح ذاكرة التخزين المؤقت بأكملها. يمكنك مسح الملفات الانتقائية باستخدام --paths
أيضًا.
aws cloudfront create-invalidation --distribution-id <ID> --paths /*
لمزيد من التفاصيل، راجع الوثائق هنا - https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html
عندما يقوم شخص ما بملء نموذج الاتصال في واجهة المستخدم. ستحفظ واجهة برمجة التطبيقات (API) البيانات في DynamoDB وستنشر أيضًا رسالة في موضوع SNS الذي تم تكوينه. يحتوي موضوع SNS أيضًا على اشتراك بالبريد الإلكتروني، حيث يمكنك وضع البريد الإلكتروني حيث تريد تلقي تفاصيل الرسالة.
بعد نشر الخدمة، ستتلقى رسالة تأكيد عبر البريد الإلكتروني من AWS لتنشيط اشتراكك. يرجى اتباع التعليمات الموجودة في البريد الإلكتروني.
لمزيد من التفاصيل، راجع الوثائق هنا - https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html
امسح محتوى مجموعة الموقع أولاً.
aws s3 rm s3://<bucket name> --recursive
إزالة مكدس التطبيق
sls remove --profile <your profile> --aws-region <region>
رخصة معهد ماساتشوستس للتكنولوجيا
حقوق الطبع والنشر (ج) 2021 دافال ناجار