العربية

أدوات المطور · محولات بناء الجملة

تحويل إخراج kubectl JSON إلى بيان يمكنك قراءته بالفعل

· لماذا يهم

json yaml سير عمل المطور

يتم فتح مورد JSON كثيف في شجرة YAML ذات مسافة بادئة للفحص
الرسم التوضيحي المتجه الأصلي ToolAcre

تُصدر أدوات Kubernetes JSON وهي دقيقة ولكن يصعب فحصها، بينما تتم كتابة البيانات باللغة YAML. يوضح هذا المنشور لماذا يؤدي التحويل بينهما إلى تسريع قراءة تعريفات الموارد ومقارنتها وإعادة استخدامها.

مائتي سطر من الأقواس في 2 صباحًا - تم جلب عملية النشر كـ JSON والحقل الذي تحتاجه مدفون في كتلة الحالة

أثناء وقوع حادث ما، يمكن لكائن مورد كبير دفن المحدد أو الشرط ذي الصلة بين بيانات التعريف والحالة. يؤدي تحويل JSON الملتقط إلى مسافة بادئة YAML إلى إزالة علامات الترقيم دون تغيير الكائن العادي والصفيف والقيم المنطقية والرقمية والسلسلة والقيم الخالية. المكسب هو المسح البصري، وليس مصدرا جديدا للحقيقة.

قم بتنقيح الرموز والعناوين والمعرفات قبل استخدام أي صفحة متصفح. ToolAcre يوزع JSON بدقة ويتخلص من YAML محليًا. ولا يتصل بمجموعة أو يعرف ما إذا كان الكائن قد جاء من kubectl أو عميل آخر أو تثبيت محفوظ.

لماذا يتحدث API JSON ويكتب البشر YAML - تنسيق خادم API، والتقليد الواضح، ولماذا يصف كلاهما نفس الكائن

يمكن تمثيل نفس شجرة الموارد ذات الشكل JSON كتخطيطات وتسلسلات YAML. لا يوضح هذا المستودع سبب اختيار مكون Kubernetes معين لتمثيل سلكي واحد أو كيف تتفاوض كل نقطة نهاية API مع أنواع الوسائط، لذلك تتجنب المقالة تحويل الممارسة الشائعة إلى مطالبة تنفيذ حول الأجزاء الداخلية لـ Kubernetes.

ما يمكن إثباته هو أضيق: JSON يتم تحليل الإدخال إلى قيمة JavaScript ويقوم js-yaml بتسلسل تلك القيمة بأسلوب الكتلة. تظل المصفوفات مرتبة، وتظل مفاتيح الكائنات مرتبطة بنفس القيم، وتتلقى السلاسل الغامضة علامات اقتباس وقائية.

يمكن أن يحمل JSON وYAML نفس شجرة الموارد؛ API مطالبات النقل خارج نطاق دليل هذا المحول

المسافة البادئة والشرطات تجعل عملية التداخل أسهل في المسح، في حين أن الكميات العددية يمكن أن تجعل السلاسل متعددة الأسطر قابلة للقراءة. هذه هي اختيارات التسلسل. وهي لا تقوم بإزالة الحالة، أو التحقق من صحة إصدار API، أو إنشاء كائن حي مناسب لإعادة التطبيق. تظل السلسلة المقتبسة التي تشبه التاريخ نصًا حتى عندما تبدو YAML أقل وضوحًا من JSON.

استخدم التحويل لتحديد موقع الحقول ومقارنة الأشكال وإعداد نسخة مراجعة. احتفظ بالنسخة الأصلية JSON للحصول على الأدلة الدقيقة. إذا تم تمكين خيار المفتاح المفرز، يتغير عرض الكائن بشكل أكبر بينما يظل ترتيب المصفوفة دون تغيير.

YAML يغير العرض التقديمي، وليس كائن Kubernetes أو صلاحيته

غالبًا ما يحتوي الكائن المباشر على حقول يحتفظ بها الخادم أو وحدات التحكم الخاصة به. قد تكون إزالة `status` أو `managedFields` أو `uid` أو `resourceVersion` مناسبة للبيان القابل لإعادة الاستخدام، ولكن ToolAcre لا يعرف هذه السياسة ولا يزيلها أبدًا. يجب أن يكون كل حذف عبارة عن تعديل متعمد مدرك لـ Kubernetes بعد التحويل.

قد يتم إنشاء حقول أخرى ولكنها لا تزال ضرورية للحفاظ على النية. قارن مع الإصدار الموجود في git واستشر الوثائق الحالية للنظام المالك بدلاً من تطبيق قائمة التنظيف المحفوظة. المحول أعمى عمدا لدلالات المجال.

مثال عملي: تم جلب خدمة كـ JSON - التحويل إلى YAML، وإزالة الحقول المملوءة بالخادم ومقارنتها بالإصدار الموجود في git

خذ كائنًا منقحًا على شكل خدمة يحتوي على بيانات التعريف ومنافذ المواصفات وكتلة الحالة. قم بتحويله إلى YAML، وحدد الحقول المملوءة بالخادم باستخدام الإجراء التشغيلي الخاص بك، وقم بإزالة تلك المعتمدة للعنصر القابل لإعادة الاستخدام فقط. قارن بين التسميات والمحددات والمنافذ والأنواع مع التحكم في الإصدار قبل أي خطوة تطبيق.

يمكن للكاتب YAML أن يقتبس سلاسل مثل `NO`، `yes`، `1.0` أو نص يبدو تاريخيًا لحماية أنواعها. هذه الاقتباسات ليست فوضوية لحذفها عرضًا. قم بإعادة تحويل YAML الذي تم تحريره إلى JSON وقارن شجرة البيانات، مع تذكر أن التعليقات المضافة أثناء التحرير لا يمكن أن تنجو من هذا التمرير العكسي.

الاتجاه العكسي — تحويل بيان YAML إلى JSON لمعرفة ما سيحصل عليه API بالضبط، بما في ذلك كيفية كتابة القيم المقتبسة

الاتجاه العكسي متاح. تتم قراءة YAML ضمن مخطط JSON الصارم أو المخطط الأساسي، ثم تتم كتابة JSON بمسافة بادئة محددة. يحتفظ الوضع الصارم بـ `~` والقيم الفارغة و`0o755` كنص؛ الأساسية يحلها بشكل مختلف. ولا يعامل أي منهما `NO` على أنه خطأ.

وهذا يعطي رؤية واضحة لما سيرسله المحلل اللغوي ToolAcre كبيانات على شكل JSON. ولا يثبت ما ستفعله مكتبة YAML أو قبول المخطط للمجموعة، خاصة بالنسبة للعلامات المخصصة أو الحقول الخاصة بالتطبيق.

ما لا يغطيه هذا - التحقق من صحة البيان مقابل مخطط Kubernetes، الذي يحتاج إلى التشغيل التجريبي لـ kubectl أو أداة المخطط

لم يتم تحميل مخطط Kubernetes أو تعريف CRD أو قاعدة القبول. قد يتم تحويل الحقول غير المعروفة والإصدارات المهملة والمجموعات غير الصالحة بشكل مثالي. استخدم أداة التحقق من التشغيل التجريبي للنظام الأساسي المستهدف أو أداة التحقق من المخطط لهذه الأسئلة.

لا يمكن لـ ToolAcre أيضًا المصادقة أو جلب مورد مباشر أو مقارنة الحالة المطلوبة والحالة الملاحظة. تنتهي مهمتها عند تعيين بناء الجملة. يؤدي الحفاظ على هذا الحد بشكل صريح إلى منع الخلط بين الملف القابل للقراءة وبين بيان مقبول.

الوجبات الجاهزة: اقرأ في YAML، وتحقق في JSON - وكيف تقوم لوحة محولات Syntax بالتبديل بين الاثنين دون مغادرة علامة التبويب

اقرأ أحد الموارد في التدوين الذي يساعد في المهمة، ولكن تحقق من بياناته وقواعد المجال بشكل منفصل. JSON يوفر علامات ترقيم واضحة؛ يوفر YAML عرضًا مدمجًا للكتلة. بالنسبة للقيم العادية ذات الشكل JSON، يمكن للاثنين الحفاظ على الشجرة على الرغم من أن التعليقات والنمط لا يمكن أن يتكررا ذهابًا وإيابًا.

تقوم محولات بناء الجملة بالتبديل بين طرق العرض هذه في المتصفح وتكشف عن خيارات المخطط والتحذيرات. استخدمها كمرحلة فحص، وليس كمرجع لإزالة الحقول أو نشر أحد الموارد.

بالنسبة لملاحظات الحوادث، سجل مخرجات الأمر الأصلي ونسخة الفحص المحولة وكل حذف يدوي كعناصر منفصلة. يتيح هذا المسار لمهندس آخر التمييز بين ما أعادته المجموعة وما تمت إزالته لسهولة القراءة أو إعادة الاستخدام. كما يمنع أيضًا مقتطفًا نظيفًا YAML من الخلط بينه وبين المورد المباشر الكامل. يساهم المحول بتغيير التدوين فقط؛ يظل المصدر والتحكم في التغيير جزءًا من سير العمل التشغيلي.