انتقل إلى المحتوى الرئيسي

اختبار التحقق - الوحدة 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 إجابة صحيحة على الأقل.