الاستعلام عن البيانات باستخدام مصادر البيانات
استخدم مصادر البيانات لجلب معلومات حول البنية التحتية الموجودة أو الخدمات الخارجية، ما يتيح تهيئات أكثر ديناميكية وتكيفًا.
الاستعلام عن البيانات باستخدام مصادر البيانات درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ما مصادر البيانات؟
نحتاج في Terraform غالبًا إلى الإشارة إلى بنية تحتية حالية أو بيانات خارجية لا تديرها إعداداتنا الحالية.
وهنا يأتي دور مصادر البيانات! فهي تتيح لإعدادات Terraform جلب معلومات حول الموارد التي جرى توفيرها مسبقًا أو حول الخدمات الخارجية.
مصادر البيانات مقابل الموارد
من المهم التمييز بين مصادر البيانات والموارد.
- تعرّف الموارد البنية التحتية التي سينشئها Terraform أو يحدّثها أو يحذفها.
- تجلب مصادر البيانات معلومات عن البنية التحتية أو البيانات الحالية فقط. ولا تنشئ أي شيء أو تعدّله.
فكّروا فيها على أنها استعلامات للقراءة فقط عن بنيتكم التحتية.
حالات استخدام عملية
تُعد مصادر البيانات مفيدة للغاية في الحالات التالية:
- العثور على معرّف شبكة السحابة الخاصة الافتراضية (VPC) الحالية.
- الحصول على أحدث صورة Amazon Machine Image (AMI) لمثيل EC2.
- استرداد الأسرار من خدمة لإدارة الأسرار.
- البحث عن سجلات DNS أو إعدادات الشبكة.
وتجعل إعداداتكم أكثر ديناميكية وأقل اعتمادًا على القيم الثابتة.
تعريف مصدر بيانات
تشبه كتلة مصدر البيانات كتلة المورد. فهي تبدأ بالكلمة المفتاحية data، تليها الجهة الموفرة والنوع، ثم اسم محلي.
data "aws_vpc" "selected" {
filter {
name = "tag:Name"
values = ["my-existing-vpc"]
}
}استخدام البيانات التي جرى جلبها
بمجرد أن يجلب مصدر البيانات المعلومات، تصبح سماته متاحة لأجزاء أخرى من إعداداتكم. ويمكنكم الإشارة إليها باستخدام الصيغة: data.<TYPE>.<NAME>.<ATTRIBUTE>.
على سبيل المثال، للحصول على معرّف VPC الذي اخترناه:
output "vpc_id" {
value = data.aws_vpc.selected.id
}جلب أحدث AMI
من المهام الشائعة العثور على أحدث صورة Amazon Machine Image (AMI) لمثيل EC2. ويؤدي ذلك إلى تجنّب تثبيت معرّفات AMI في الإعدادات، مما يجعل إعداداتكم أكثر موثوقية.
إليكم كيفية جلب أحدث AMI لنظام Amazon Linux 2:
provider "aws" {
region = "us-east-1"
}
data "aws_ami" "amazon_linux_2" {
most_recent = true
owners = ["amazon"]
filter {
name = "name"
values = ["amzn2-ami-hvm-*-x86_64-gp2"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
}
output "latest_ami_id" {
value = data.aws_ami.amazon_linux_2.id
}مستند سياسة S3 ديناميكي
لا تقتصر مصادر البيانات على موارد السحابة. إذ يساعد مصدر البيانات aws_iam_policy_document في إنشاء سياسات IAM المعقدة بطريقة منظمة.
فهو لا ينشئ سياسة، بل يُولّد مستند JSON يمكنكم بعد ذلك تطبيقه على مورد مثل حاوية S3.
provider "aws" {
region = "us-east-1"
}
data "aws_iam_policy_document" "s3_read_only_policy" {
statement {
principals {
type = "AWS"
identifiers = ["arn:aws:iam::123456789012:user/example-user"]
}
actions = [
"s3:GetObject",
"s3:ListBucket"
]
resources = [
"arn:aws:s3:::my-example-bucket",
"arn:aws:s3:::my-example-bucket/*"
]
}
}
output "policy_json" {
value = data.aws_iam_policy_document.s3_read_only_policy.json
}تحسين البحث
تدعم العديد من مصادر البيانات كتل filter. وتتيح لكم هذه الكتل تحديد معايير لتضييق نطاق النتائج وضمان جلب المورد أو البيانات الصحيحة.
تقبل عوامل التصفية عادةً name (السمة المراد التصفية وفقًا لها) وvalues (قائمة بالقيم المقبولة لتلك السمة).
data "aws_instance" "web" {
instance_state_names = ["running"]
filter {
name = "tag:Environment"
values = ["production"]
}
filter {
name = "instance-type"
values = ["t2.micro", "t3.micro"]
}
}أفضل ممارسات مصادر البيانات
للحفاظ على إعداداتكم مرتبة وفعّالة:
- كونوا محددين: استخدموا عوامل التصفية لضمان جلب البيانات المطلوبة بدقة وتجنّب الالتباس.
- القابلية للتكرار: تتميز مصادر البيانات بطبيعتها القابلة للتكرار، ما يعني أن تشغيلها عدة مرات ينتج النتيجة نفسها.
- قلّلوا الاستدعاءات: اجلبوا البيانات عند الحاجة فقط لتسريع عمليات
terraform plan. - ادمجوها مع المخرجات: استخدموا المخرجات لكشف البيانات التي جرى جلبها، والتي قد تحتاج إليها إعدادات أخرى أو مستخدمون آخرون.
اختبار مصادر البيانات
أي العبارات التالية صحيحة بشأن مصادر بيانات Terraform؟
ملخص: الاستعلام عن البيانات
تعلمتم كيف تتيح مصادر بيانات Terraform لإعداداتكم الاستعلام عن معلومات البنية التحتية الحالية أو الخدمات الخارجية وجلبها.
تتيح هذه الميزة القوية إعدادات ديناميكية ومرنة وموثوقة، وذلك بتجنّب القيم الثابتة والتكيف مع الحالة الحالية لبيئتكم. تذكّروا أن مصادر البيانات تقرأ فقط، ولا تنشئ أو تعدّل أي شيء مطلقًا!
الأسئلة الشائعة
هل درس «الاستعلام عن البيانات باستخدام مصادر البيانات» مجاني؟
نعم — نص درس «الاستعلام عن البيانات باستخدام مصادر البيانات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «الاستعلام عن البيانات باستخدام مصادر البيانات»؟
استخدم مصادر البيانات لجلب معلومات حول البنية التحتية الموجودة أو الخدمات الخارجية، ما يتيح تهيئات أكثر ديناميكية وتكيفًا. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «الاستعلام عن البيانات باستخدام مصادر البيانات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الاستعلام عن البيانات باستخدام مصادر البيانات
- موفرا التهيئة `local-exec` و`remote-exec`
- الموارد الفارغة والمحفزات
- استخدام البيانات الخارجية والقوالب