اختبار التحقق - الوحدة 15
يتيح لك هذا الاختبار المكون من 30 سؤالًا التحقق من معرفتك بـ CloudFormation والبنية التحتية ككود.
السؤال 1
ما هي البنية التحتية ككود (IaC)؟
A) كود يتم تنفيذه على البنية التحتية
B) إدارة البنية التحتية عبر ملفات تكوين إعلانية
C) لغة برمجة
D) خدمة AWS
عرض الإجابة
الإجابة: B
تتعلق IaC بتعريف وإدارة البنية التحتية عبر ملفات الكود/التكوين بدلاً من القيام بذلك يدويًا. الفوائد: القابلية للتكرار، النسخ، الأتمتة، التناسق، التوثيق الحي.
السؤال 2
ما هو AWS CloudFormation؟
A) خدمة طقس
B) خدمة AWS للبنية التحتية ككود لتوفير الموارد عبر القوالب
C) خدمة تخزين
D) موازن تحميل
عرض الإجابة
الإجابة: B
يسمح CloudFormation بتعريف موارد AWS في قوالب (YAML أو JSON). يقوم بإنشاء، تحديث، وحذف الموارد تلقائيًا بإدارة التبعيات.
السؤال 3
ما هي صيغ الملفات التي يدعمها CloudFormation؟
A) XML فقط
B) JSON و YAML
C) Python فقط
D) Terraform
عرض الإجابة
الإجابة: B
يدعم CloudFormation JSON و YAML. يفضل YAML عمومًا لأنه أكثر قابلية للقراءة (يدعم التعليقات، أقل تفصيلاً). كلاهما متكافئ وظيفيًا.
السؤال 4
ما هي "Stack" في CloudFormation؟
A) مجموعة من الخوادم
B) مجموعة من موارد AWS تُدار كوحدة واحدة من قالب
C) نوع من التخزين
D) مجموعة أمان
عرض الإجابة
الإجابة: B
الـ Stack هي مجموعة من موارد AWS التي تُنشأ وتُدار معًا. عند إنشاء stack، يقوم CloudFormation بتوفير جميع الموارد المعرفة في القالب. حذف الـ stack يحذف جميع موارده.
السؤال 5
ما هي الأقسام الرئيسية لقالب CloudFormation؟
A) فقط Resources
B) Parameters, Mappings, Conditions, Resources, Outputs
C) فقط Inputs و Outputs
D) Variables و Functions
عرض الإجابة
الإجابة: B
الأقسام: AWSTemplateFormatVersion, Description, Metadata, Parameters (مدخلات), Mappings, Conditions, Transform, Resources (إلزامي), Outputs. فقط Resources إلزامي.
السؤال 6
ما هو القسم الوحيد الإلزامي في قالب CloudFormation؟
A) Parameters
B) Resources
C) Outputs
D) Description
عرض الإجابة
الإجابة: B
قسم Resources هو الوحيد الإلزامي. يحدد الموارد AWS التي سيتم إنشاؤها (EC2، S3، VPC، إلخ). بدون موارد، لا ينشئ القالب شيئًا.
السؤال 7
ما هو "Parameter" في CloudFormation؟
A) ثابت
B) قيمة تُقدم عند إنشاء/تحديث الـ stack
C) مورد
D) مخرج
عرض الإجابة
الإجابة: B
الـ Parameters هي قيم مدخلات قابلة للتخصيص أثناء النشر. تجعل القوالب قابلة لإعادة الاستخدام (مثل: اختيار نوع المثيل، اسم البيئة). يمكن تحديد قيم افتراضية وقيود.
السؤال 8
كيف يتم الإشارة إلى معلمة في قالب CloudFormation؟
A) صيغة الدولار-الأقواس
B) !Ref NomParametre
C) @Parameter
D) #Ref Parameter
عرض الإجابة
الإجابة: B
الدالة الداخلية !Ref تُرجع قيمة معلمة أو معرف مورد. صيغة YAML: !Ref NomParametre. صيغة JSON: Ref مع NomParametre بين علامات الاقتباس.
السؤال 9
ما هو "Output" في CloudFormation؟
A) ملف إخراج
B) قيمة مُصدرة من الـ stack (مثل: URL، ID) يمكن استخدامها بواسطة الـ stacks الأخرى
C) سجل
D) خطأ
عرض الإجابة
الإجابة: B
الـ Outputs تُصدر قيمًا بعد إنشاء الـ stack: معرفات الموارد، URLs، ARNs. يمكن عرضها في الكونسول، إرجاعها بواسطة الـ API، أو استيرادها في الـ stacks الأخرى (مراجع عبر الـ stacks).
السؤال 10
كيف يتم استيراد قيمة من stack آخر؟
A) !Import
B) !ImportValue NomExport
C) !CrossStack
D) غير ممكن
عرض الإجابة
الإجابة: B
!ImportValue يسمح باستيراد قيمة مُصدرة بواسطة stack آخر. يجب أن يكون لدى الـ stack المصدر Output مع Export:Name. يستخدم الـ stack المستورد !ImportValue NomExport لاسترداد القيمة.
السؤال 11
ما هي وظيفة !GetAtt؟
A) الحصول على سمة
B) استرداد سمة محددة من مورد (مثل: ARN، اسم DNS)
C) الحصول على جميع السمات
D) حذف سمة
عرض الإجابة
الإجابة: B
!GetAtt تُرجع سمة محددة من مورد. مثال: !GetAtt MyEC2.PublicIp تُرجع عنوان IP العام. كل نوع من الموارد لديه سمات مختلفة موثقة في مرجع CloudFormation.
السؤال 12
ماذا تفعل وظيفة !Sub؟
A) طرح
B) استبدال المتغيرات في سلسلة نصية
C) روتين فرعي
D) اشتراك
عرض الإجابة
الإجابة: B
!Sub تستبدل المتغيرات في سلسلة. مثال: !Sub مع arn:aws:s3:::NomBucket/* يستبدل المتغير بالقيمة. يدعم المتغيرات في القالب والمعلمات الزائفة.
السؤال 13
ما هو المعامل الزائف في CloudFormation؟
A) معامل زائف
B) معامل مُعرف مسبقًا بواسطة AWS (مثل: AWS::Region، AWS::AccountId)
C) معامل مخفي
D) معامل اختياري
عرض الإجابة
الإجابة: B
المعاملات الزائفة تُقدم تلقائيًا بواسطة AWS: AWS::Region (المنطقة الحالية)، AWS::AccountId (معرف الحساب)، AWS::StackName (اسم الـ stack)، AWS::StackId، AWS::NoValue.
السؤال 14
ماذا يفعل CloudFormation إذا فشل إنشاء مورد؟
A) يستمر مع الآخرين
B) تراجع تلقائي - يحذف الموارد المُنشأة ويعود إلى الحالة الأصلية
C) يتجاهل الخطأ
D) يرسل بريدًا إلكترونيًا
عرض الإجابة
الإجابة: B
افتراضيًا، إذا فشل مورد، يقوم CloudFormation بالتراجع: يحذف جميع الموارد التي تم إنشاؤها أثناء هذه العملية. يعود الـ stack إلى حالته السابقة (أو يُحذف إذا كان إنشاء).
السؤال 15
كيف ترى سبب فشل stack؟
A) غير ممكن
B) تحقق من أحداث الـ stack في الكونسول أو عبر CLI
C) في S3
D) عبر البريد الإلكتروني
عرض الإجابة
الإجابة: B
تُظهر أحداث الـ stack حالة كل مورد ورسائل الخطأ. يعرض الكونسول جدول زمني. CLI: aws cloudformation describe-stack-events --stack-name NomStack.
السؤال 16
ما هو Change Set؟
A) مجموعة من التغييرات النقدية
B) معاينة للتعديلات التي سيجريها CloudFormation على stack
C) نسخة احتياطية
D) قالب جديد
عرض الإجابة
الإجابة: B
يُظهر Change Set التعديلات التي سيتم تطبيقها قبل تنفيذها. يوضح الموارد التي ستُضاف، تُعدل أو تُحذف. يسمح بالتحقق من التغييرات قبل تطبيقها.
السؤال 17
ما هي "Drift Detection"؟
A) اكتشاف الانحراف
B) اكتشاف الفروق بين التكوين الحالي والقالب الأصلي
C) اكتشاف الحركة
D) اكتشاف الأخطاء
عرض الإجابة
الإجابة: B
Drift Detection تقارن الحالة الحالية للموارد بما هو محدد في القالب. تكتشف التعديلات اليدوية (الانحراف) التي تمت خارج CloudFormation. مهم للحفاظ على التناسق في IaC.
السؤال 18
ما هو Nested Stack؟
A) stack مخفي
B) stack يتضمن stacks أخرى كموارد
C) stack محذوف
D) stack اختبار
عرض الإجابة
الإجابة: B
الـ Nested Stack هو stack يُنشأ كموارد (AWS::CloudFormation::Stack) في stack آخر. يسمح بتقسيم القوالب المعقدة إلى وحدات قابلة لإعادة الاستخدام.
السؤال 19
ما هو AWS SAM بالنسبة لـ CloudFormation؟
A) بديل
B) امتداد مبسط لـ CloudFormation للتطبيقات الخالية من الخوادم
C) خدمة مختلفة تمامًا
D) إصدار قديم
عرض الإجابة
الإجابة: B
AWS SAM (نموذج التطبيق الخالي من الخوادم) هو امتداد لـ CloudFormation يُبسط تعريف Lambda، API Gateway، DynamoDB، إلخ. تُحول قوالب SAM إلى قوالب CloudFormation أثناء النشر.
السؤال 20
كيف تحذف stack CloudFormation؟
A) حذف القالب
B) aws cloudformation delete-stack --stack-name NomStack أو عبر الكونسول
C) إيقاف المثيلات
D) غير ممكن
عرض الإجابة
الإجابة: B
احذف عبر الكونسول أو CLI: aws cloudformation delete-stack --stack-name NomStack. يقوم CloudFormation بحذف جميع موارد الـ stack بالترتيب الصحيح (التبعيات العكسية). قد تحتوي بعض الموارد على DeletionPolicy.
السؤال 21
ما هو DeletionPolicy؟
A) سياسة حذف الموظفين
B) سياسة تحدد ما يحدث لمورد عند حذف الـ stack
C) سياسة احتفاظ بالسجلات
D) سياسة IAM
عرض الإجابة
الإجابة: B
DeletionPolicy تحدد السلوك عند الحذف: Delete (يحذف المورد)، Retain (يحتفظ بالمورد)، Snapshot (ينشئ لقطة قبل الحذف - لـ RDS، EBS). يحمي من الحذف العرضي.
السؤال 22
ما هو UpdateReplacePolicy؟
A) سياسة تحديث
B) سياسة تحدد ما يحدث لمورد عند استبداله أثناء تحديث
C) سياسة استبدال الموظفين
D) سياسة تراجع
عرض الإجابة
الإجابة: B
UpdateReplacePolicy تحدد السلوك عندما يتطلب التحديث استبدال مورد (إعادة الإنشاء). مشابه لـ DeletionPolicy ولكن للتحديثات التي تستبدل.
السؤال 23
ما هو !Condition في CloudFormation؟
A) حالة طبية
B) منطق شرطي لإنشاء أو عدم إنشاء موارد وفقًا للمعلمات
C) خطأ
D) حلقة
عرض الإجابة
الإجابة: B
تسمح Conditions بإنشاء الموارد بشكل شرطي. مثال: إنشاء مثيل قاعدة بيانات فقط إذا كانت المعلمة Environment هي "Production". تُستخدم مع !If، !Equals، !And، !Or، !Not.
السؤال 24
كيف تختبر قالب CloudFormation قبل النشر؟
A) النشر في الإنتاج
B) aws cloudformation validate-template، Change Sets، أو cfn-lint
C) غير ممكن
D) عبر البريد الإلكتروني
عرض الإجابة
الإجابة: B
الطرق: aws cloudformation validate-template (التحقق من الصياغة)، cfn-lint (مدقق مع أفضل الممارسات)، Change Sets (معاينة التغييرات)، TaskCat (اختبارات متعددة المناطق)، النشر في حساب اختبار.
السؤال 25
ما هو StackSets؟
A) مجموعات من القوالب
B) نشر stack في حسابات ومناطق متعددة في وقت واحد
C) stacks مجمعة
D) نسخ احتياطية من stacks
عرض الإجابة
الإجابة: B
StackSets يسمح بنشر stack CloudFormation في حسابات AWS ومناطق متعددة بعملية واحدة. مثالي للتكوينات التنظيمية (الضوابط، الامتثال).
السؤال 26
كيف تمنع التعديلات اليدوية على موارد CloudFormation؟
A) غير ممكن
B) سياسة Stack، سياسات IAM التقييدية، SCPs، وتنبيهات CloudTrail
C) حذف المستخدمين
D) تشفير الموارد
عرض الإجابة
الإجابة: B
استراتيجيات: سياسة Stack (تحمي بعض الموارد من التحديثات)، سياسات IAM (تقييد التعديلات المباشرة)، SCPs (على مستوى المنظمة)، تنبيهات CloudTrail للتعديلات غير CF، كشف الانحراف المنتظم.
السؤال 27
ما هو cfn-init؟
A) تهيئة CloudFormation
B) سكربت مساعد لتكوين مثيلات EC2 عند التشغيل عبر Metadata
C) خدمة شبكة
D) نوع من القوالب
عرض الإجابة
الإجابة: B
cfn-init هو أداة تقرأ metadata AWS::CloudFormation::Init وتكوّن المثيل: تثبيت الحزم، إنشاء الملفات، بدء الخدمات. يُستخدم مع UserData و cfn-signal للإشارة إلى النجاح.
السؤال 28
ما هو cfn-signal؟
A) إشارة راديو
B) مساعد للإشارة إلى CloudFormation بأن تكوين المثيل قد اكتمل
C) سجل
D) مشغل
عرض الإجابة
الإجابة: B
cfn-signal يرسل إشارة نجاح أو فشل إلى CloudFormation. يُستخدم مع CreationPolicy أو WaitCondition لكي ينتظر CloudFormation حتى يتم تكوين المثيل بالكامل قبل المتابعة.
السؤال 29
ما الذي يسمح به LocalStack مع CloudFormation؟
A) لا شيء
B) اختبار قوالب CloudFormation محليًا بدون حساب AWS
C) النشر في الإنتاج
D) حفظ القوالب
عرض الإجابة
الإجابة: B
LocalStack يحاكي CloudFormation محليًا. يمكنك اختبار قوالبك بدون حساب AWS أو تكاليف. استخدم: awslocal cloudformation create-stack --stack-name test --template-body file://template.yaml
السؤال 30
ما هي أفضل ممارسة لتنظيم قوالب CloudFormation؟
A) ملف ضخم واحد
B) تقسيم إلى وحدات (nested stacks)، استخدام المعلمات، النسخ مع Git
C) بدون هيكل
D) قالب لكل مورد
عرض الإجابة
الإجابة: B
أفضل الممارسات: تقسيم إلى وحدات منطقية (الشبكة، الحوسبة، قاعدة البيانات)، استخدام nested stacks أو المراجع عبر الـ stacks، التمكين لإعادة الاستخدام، النسخ في Git، التسمية بوضوح، التوثيق مع Description و Metadata.
النتيجة
احسب إجاباتك الصحيحة:
- 27-30: ممتاز - أنت تتقن CloudFormation
- 22-26: جيد - بعض النقاط تحتاج إلى مراجعة
- 17-21: متوسط - أعد قراءة الدورة قبل المختبر
- أقل من 17: غير كافٍ - أعد الدورة من البداية
انتقل إلى مختبر CloudFormation بمجرد أن تصل إلى 22 إجابة صحيحة على الأقل.