مقدمة
تسريع البيانات يمكن استخدامه لاستخراج معلومات عن موارد البنية التحتية من حالة المشروع. ومن خلال استخدام ميزات لغة تكوين هاشيكورب (HCL)، تستخدم تسريع البيانات، يمكن استعمال هذه المعلومات للبحث وتحويلها إلى 结构 بيانات أكثر تعقيدًا مثل قوائم وخرائط. تساعد الخروجات في توفير المعلومات للبرمجيات الخارجية التي يمكن عملها على موارد البنية التحتية المنشئة.
في هذا الدرس التعليمي، سوف تتعلم حول نمط تسريع البيانات وقيمته بإنشاء بنية بسيطة تتم توزيع الDroplets. سوف تتحلل الخروجات بالبرمجيات بتحويلها إلى JSON.
المتقدمات
- توكيل شخصي لـ DigitalOcean الذي يمكن إنشاؤه عن طريق لوحة المحرك الخاصة بـ DigitalOcean. يمكنك إيجاد تعليمات توجيهية في المستندات المنتجة من منتجات DigitalOcean كيفية إنشاء توكيل شخصي:.
- تثبيت Terraform على جهازك المحلي وتأسيس مشروع بمزود الخدمة DigitalOcean. اكمل خطوة 1 و خطوة 2 من التورية كيف تستخدم Terraform مع DigitalOcean، وأنت بحاجة إلى تسمية مجلد المشروع
terraform-outputs
بدلاً عنloadbalance
. أثناء خطوة 2، لا تضم متغيرpvt_key
ومورد المفتاح الخاص بالSSH. - اعتادة على أنواع البيانات HCL والدورات. للمزيد من المعلومات، انظر إلى التورية كيف تحسين مرونة Terraform باستخدام المتغيرات والاعتمادات والشروط التين.
ملاحظة: تم اختبار هذا التورية بتعريف Terraform 1.0.2
بوجه خاص.
تعريف الخارجات
في هذه المرحلة ستدعم جهاز قمري وتحديدًا ستتوفر على الخارجات عن طريق تعريف خارجة ستظهر عنوان الIP للقمري.
من مجلد terraform-outputs
الذي أنشأته كشرط واجب، قم بإنشاء وفتح ملف droplets.tf
للتعديل:
أضف المورد التالي للقمري وتعريف الخارجة:
أولاً يتم اعلان مورد Droplet
يطلق عليه web
، والذي يسمى في السحابة test-droplet
في المنطقة fra1
، ويشتغل بال Ubuntu 20.04.
ومن ثم تُدeclare خارجة تدعى droplet_ip_address
، وفي Terraform يُستخدم الخارجات للتصدير وعرض القيم ومعلومات الموارد الداخلية والمحاسبة. هنا تضع المادة value
، التي تقبل البيانات التي تُستخدم في الخارجة، في عنوان العنصر التالي:
أخيرًا يتم حفظ الملف وإغلاقه، ومن ثم تنفيذ المشروع بواسطة الأمر التالي:
أدخل yes
للتطبيق عندما يتم طرح السؤال. سيكون نهاية الخارجة مماثلة لهذه الأمور:
سيكون عنوان البريد الإلكتروني المبرز يخص دولة الDroplet الجديدة المنتجة. تطبيق المشروع ينفذ موارد السحابة ويعرض الخارجات في النهاية عندما تكون جميع خصائص الموارد متاحة. بدون droplet_ip_address
الخارجة، ستظهر Terraform بدون معلومات أكثر عن الDroplet، بإستثناء أنه يتم تنفيذه.
يمكن أيضًا عرض الخارجات بواسطة أمر output
:
سيتم عرض قائمة بجميع outputs
في المشروع:
Outputdroplet_ip_address = ip_address
يمكنك أيضًا سؤال خارجة معينة بتعيينها مادة تعني value
فقط:
لـ droplet_ip_address
سيكون الخارج يختلف عن العنوان البريدي الإلكتروني فقط:
Outputip_address
باستثناء تحديد المادة الإلزامية value
، توفر للخارجات بعض المادات الخيارية الأخرى:
الوصف
: يدمج مساعدة قصيرة تتفقد ما يظهر في المخرج.يعتمد_على
: ما يلي ما يسمى معامل متاح في كل مورد والذي يسمح لك بتحديد بواقعية تقريبًا بمفهوم التخطيط.حساس
: يتقبل قيمة بوليوكية، وهي تمنع من عرض المحتوى الخاص بالمخرج بعد تنفيذه إذا كان محددًا بـtrue
.
المامور الحساس
مفيد عندما تكون معلومات التنفيذ لتعريف الTerraform متاحة عامًا ولكن يتوجب إبعاد المحتويات الخاصة. سوف تضيفه الآن إلى تعريف موردك الخاص بالDroplet.
افتح droplets.tf
للتحرير وأضف السطر المبرز:
حفظ وغلق الملف عندما يتم الانتهاء. تنفيذ المشروع مجددًا بتنفيذ:
إدخل yes
عند التقا prompt. سوف تلاحظ أن المخرج مرشح:
حتى وإن كان معلومًا أنه حساس
، سيكون المخرج ومحتوياته متاحة مرة أخرى عن طريق قنوات أخرى، مثل مشاهدة حالة Terraform أو سؤال المخرجات مباشرة.
في الخطوة القادمة، سوف تخلق بنية مختلفة للDroplet والمخرج، لذا قم بتدمير الموارد المتوفرة بتنفيذ:
المخرج في النهاية سيكون:
Output...
Destroy complete! Resources: 1 destroyed.
قمت بإعداد وتنفيذ مورد الDroplet وأنشأت مخرجًا يظهر عنوان IPه. سوف تتعلم الآن عن استخدام المخرجات لعرض بنيات أكثر تعقيدًا مثل قوائم وخرائط.
إختبار المنتجات المعملية
في هذا القسم، ستستعمل كلمة المفاتيح count
لإنشاء مُعدلًا من جهازات الميكروفون من نظرية واحدة وإرسال أدوات الIP بصيغة مختلفة.
استخدام المادة for
يجب عدم إدخال الخطوات المبيدة أدناه إلى ملف المعدل الثلاثي. افتح للمعدل لتعديله:
أدخله بالتالي:
لم يتم إدخال خطوات إرسال أدوات أدناه بدقة. إذا كانت الإدخالات سيبدلت بالإدخال من خالل count
لإنشاء مُعدلًا من جهازات الميكروفون وإضافة مفتاح المعدل الحالي إلى إسم الميكروفون لكنه سيستمنه للاستخدام في المستقبل. حذف الخطوات المبيدة من أدوات الإرسال أدناه. عند ماء إدخالك إلى ملف المعدل وحفظه وغلقه.
إعمل بالكود بالتفاعل:
Terraform سيقرر إنشاء ثلاث جهازات من نظرية واحدة بالإسم test-droplet-0
, test-droplet-1
, و test-droplet-2
. إرسال yes
إذا كانت الإجابة على إنشاء المستقبلات. سيرسل إختبار الإنشاء في نهاية المستقبلات في نهاية الإنشاء.
Output...
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
هذا يعني أن جهاز الميكروفون الثلاثي مباشراً مباشراً وأن كل معلومة عنهم مباشراً في حالة الإنشاء وذلك بحفظ جهاز المعدل في الحالة المبيدة.
أسهل طريقة للوصول إلى خصائصهم الموردية هي عبر استخدام الخاتمات، ولكن إنشاءها لكل دوبليت لا يمكن التكاليف به. والحل هو استخدام الدورة for
لمسافرة خلال قائمة الدوبليات وجمع خصائصهم، أو الاختيار البديل للاستخدام تعابير التعبير (والتي سوف تتعلم عنها في خطوة لاحقة هذه).
سوف تقرأ أولاً تعريف لخارج سيساعد في إخراج أي عناوين التواصل التي تتم إخراجها من مجموعة البيانات. افتح droplets.tf
للتحرير:
أضف تلك السطور التالية:
قيمة خارج droplet_ip_addresses
تم بناءها باستخدام دورة for
. لأنها محاصرة بين أقواس، ستكون النوع الناجم عنها خارج نوع خريطة. تتم مسافرة خلال قائمة الدوبليات ولكل مجموعة، ولكل منها تتم تزويدها بأسمها وعنوانها التي تتم إضافتها إلى الخريطة الناجمة.
حفظ وغلق الملف ثم تطبيق المشروع مجدداً:
أدخل yes
عندما يتم السؤال وسوف تحصل على محتويات الخارج في النهاية:
تفاصيل droplet_ip_addresses
تبين العنوانات التي لثلاثة الدوبليات المنشأة.
باستخدام أمر output
Terraform يمكنك أن تحصل على المحتويات من الخارج كJSON باستخدام ما يليه في إشارة أو ما يليه في الأحداثية:
سيكون النتيجة مماثلة للتالية:
تعبير التعبير التي يتم استخدامها بشكل و
استخدام التعبيرات المتناثرة
توفر التعبيرات المتناثرة طريقة مختصرة للتجول فوق جميع العناصر من قائمة، وجمع محتويات الخصائص من كل واحد منهم، مما ينتهي بقائمة. ستستخدم تعبيرة متناثرة لتنقل عناصر ثلاث قطعات التسخين المتوفرة وسيكون لها هذا النمط:
الرمز [*]
يتم تدفقه خلال القائمة التي تحيط به على جهة ولكل من العناصر منها، يأخذ محتويات خصائصه المحددة على اليسار. إذا كان المرجع على اليسار ليس قائمة بمفهوم ذاته ، سيتم تحويله إلى قائمة حيث سيكون الفقرة الوحيدة التي ستكون فيها المرجع.
يمكنك فتح droplets.tf
للتحرير وتعديل الأخطاء التالية لتنفيذ هذا:
بعد حفظ الملف، تطبيق المشروع على الحساب عن طريق الأوامر التالية:
سوف تحصل على من الخروج قائمة والتي تحتوي فقط على أي عناصر تعني أي أدوار التسخين:
للحصول على الخروج بالJSON، قم بتشغيل الأوامر التالية:
سيكون الخروج قائمة واحدة فقط:
لقد استخدمت الخروجات مع التعبيرات المتناثرة والدورات اللامنتظرية لتصدير أي أدوار التسخين المتوفرة. ولقد حصلت على محتويات خروج المحتويات بالJSON، وسوف تستخدم jq
—أداة لتصفية الJSON الديناميكية وفقاً للتعبيرات المعطية— لتحليلها.
تحليل منابع الخروج باستخدام jq
في هذه الخطوة سوف ت Instalar y aprender los conceptos básicos de jq
, una herramienta para manipular documentos JSON. Usará este tool para parsear las salidas de su proyecto Terraform.
Si estás en Ubuntu, ejecuta el siguiente comando para instalar jq
:
En macOS, puedes usar Homebrew para instalarlo:
jq
aplica la expresión de procesamiento proporcionada sobre la entrada dada, la cual puede ser canalizada. La tarea más fácil en jq
es imprimir bonito la entrada:
Pasando el operador de identidad (.
) significa que el documento JSON parseado completamente de la entrada debe ser salida sin modificaciones:
Puedes pedir solo la segunda dirección IP usando la notación de corchetes de arreglo, contando desde cero:
La salida será:
Para hacer que el resultado del procesamiento sea un arreglo, envuelve la expresión en corchetes:
Obtendrás un arreglo JSON impreso bonito:
Puedes recuperar partes de los arreglos en lugar de elementos individuales especificando un rango de índices dentro de los corchetes:
La salida será:
المدى 0:2
يجب أن ترسل كلمات المرور الخاصة بحسابك عبر نماذج GoDaddy لإدخالها في قبلك. لكنها ليست مفتوحة بعد، لذا لا تستطيع إدخالها حتى تبديل الحساب إلى حساب مفتوح.
لكنك يمكنك حذف مواد الإنشاء باستخدام:
في هذا المرحلة، 你已经学习了Terraform输出,使用它们来显示部署资源的详细信息并导出数据结构以供以后外部处理。你已经安装了jq
并且使用它来解析和操作Terraform项目的输出,该输出部署了三个Droplets。
ماذا بعد
كنت تعلم عن خدمات Terraform الخاصة بإنشاء خدمات معلومات من خالل المواد المبيعة، واستخدامها لإظهار خصوصيات وملفات ومصفوفات من خالل المواد المبيعة. كما أنت بدعم jq
للاستخدام لتفاعل بالمعلومات والمصفوفات المبيعة بعد الإنشاء.
لمزيد معلومات عن خدمات jq
، قُم بالزمن المطلوب بالمزيد من المستندات الإلكترونية المعلوماتية عن .
هذا الدرس من سeries كيف تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تماماً تمام