خطوات الاستخدام
انسخ مخرج خطة Terraform (terraform plan) بالكامل، والذي يظهر عادة بعد تشغيل الأمر `terraform plan` في المحطة الطرفية. تأكد من أن النص يتضمن جميع الموارد المدروسة أو المضافة أو المحذوفة. يجب أن يبدأ النص بـ 'Terraform will perform the following actions:' أو ما شابه ذلك، حيث يتم إدراج الموارد بشكل منظم.
الصق النص في حقل الإدخال المخصص. لا تقم بتعديل النص أو إزالة أي جزء منه، حيث أن الحاسبة تعتمد على تحليل دقيق للسطور التي تبدأ بكلمة 'resource' أو '# ' (تعليقات توضح عدد الموارد). قد تحتوي الخطة على موارد في عدة مزودين مثل aws_instance و azurerm_virtual_network.
اضغط على زر 'احتساب' أو 'تحليل'. ستقوم الحاسبة بفحص النص سطرًا بسطر باستخدام تعبيرات منتظمة للكشف عن كل إعلان مورد (resource). سيتم تجاهل التعليقات والأقسام الأخرى غير المتعلقة بالموارد.
ستظهر النتيجة في صورة عدد إجمالي للموارد الموجودة في الخطة. يمكنك أيضًا رؤية تفصيل حسب كل مزود إذا كان النص يحتوي على أنواع موارد متعددة. استخدم هذه النتائج لتقدير حجم العمل أو للتحقق من صحة الخطة قبل التطبيق.
أمثلة محلولة
تطبيقات عملية على عدد موارد Terraform بخطوات الحل كاملة.
الحل
لنفترض أن لديك خطة Terraform تحتوي على الكود التالي:
```
Terraform will perform the following actions:
# aws_instance.web[0] will be created
resource "aws_instance" "web" {
...
}
# aws_instance.web[1] will be created
resource "aws_instance" "web" {
...
}
# azurerm_resource_group.rg will be created
resource "azurerm_resource_group" "rg" {
...
}
# azurerm_virtual_network.vnet will be created
resource "azurerm_virtual_network" "vnet" {
...
}
Plan: 4 to add, 0 to change, 0 to destroy.
```
عند لصق هذا النص في الحاسبة، ستقوم بتحليل الأسطر التي تبدأ بـ 'resource' (بعد إزالة التعليقات مثل '# ...'). عدد الأسطر التي تحتوي على 'resource' هو 4 (اثنان لـ aws_instance، واحد لـ azurerm_resource_group، واحد لـ azurerm_virtual_network). ستظهر النتيجة: إجمالي الموارد = 4.
لاحظ أن الحاسبة تتعامل مع كل إعلان 'resource' بشكل مستقل، حتى لو كانت من نفس النوع ولكن بمفاتيح مختلفة (مثل web[0] و web[1])، حيث يتم عدها كموارد منفصلة.
الحل
تخيل أن لديك خطة Terraform تحتوي على موارد مثل:
```
Terraform will perform the following actions:
# module.vpc.aws_vpc.main will be created
resource "aws_vpc" "main" {
...
}
# module.vpc.aws_subnet.public[0] will be created
resource "aws_subnet" "public" {
...
}
# module.vpc.aws_subnet.public[1] will be created
resource "aws_subnet" "public" {
...
}
# data.aws_availability_zones.available will be read during apply
# (data source, not counted as resource)
Plan: 3 to add, 0 to change, 0 to destroy.
```
في هذه الحالة، تحتوي الخطة على 3 موارد: aws_vpc واحد و aws_subnet اثنان (بسبب التعداد). البيانات (data) لا تعتبر موارد ولا يتم عدها. الحاسبة ستتعرف على السطور التي تبدأ بـ 'resource' فقط، لذا ستعيد النتيجة 3.
من المهم ملاحظة أن الموارد التي يتم استيرادها أو تعديلها (وليس إنشاءها) تظل تظهر في الخطة كسطر 'resource' (مع 'will be updated in-place' مثلاً) وتُحتسب أيضًا. الحاسبة تعتمد على وجود الكلمة الأساسية 'resource' بغض النظر عن العملية.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة عدد موارد Terraform.
أوراكل — خطة من مزوّدَين بأربعة موارد (مثال ar1)
- نص خطة Terraform
- Terraform will perform the following actions: # aws_instance.web[0] will be created resource "aws_instance" "web" { } # aws_instance.web[1] will be created resource "aws_instance" "web" { } # azurerm_resource_group.rg will be created resource "azurerm_resource_group" "rg" { } # azurerm_virtual_network.vnet will be created resource "azurerm_virtual_network" "vnet" { } Plan: 4 to add, 0 to change, 0 to destroy.
- موارد ستُنشأ
- 4
- موارد ستُدمَّر
- 0
- موارد ستُحدَّث
- 0
- موارد ستُستبدل
- 0
- عدد المزودين
- 2
- التفصيل حسب المزوّد
- aws=2, azurerm=2
- المزوّد الأكثر مواردًا
- aws
- عدد موارد المزوّد الأكثر
- 2
أوراكل — وحدات module ومصدر بيانات مستثنًى (مثال ar2)
- نص خطة Terraform
- Terraform will perform the following actions: # module.vpc.aws_vpc.main will be created resource "aws_vpc" "main" { } # module.vpc.aws_subnet.public[0] will be created resource "aws_subnet" "public" { } # module.vpc.aws_subnet.public[1] will be created resource "aws_subnet" "public" { } # data.aws_availability_zones.available will be read during apply # (data source, not counted as resource) Plan: 3 to add, 0 to change, 0 to destroy.
- موارد ستُنشأ
- 3
- موارد ستُدمَّر
- 0
- عدد المزودين
- 1
- التفصيل حسب المزوّد
- aws=3
- المزوّد الأكثر مواردًا
- aws
- عدد موارد المزوّد الأكثر
- 3
حدّ— خطة بلا تغيير ⇒ صفر موارد بلا استثناء
- نص خطة Terraform
- No changes. Your infrastructure matches the configuration.
- موارد ستُنشأ
- 0
- عدد المزودين
- 0
- المزوّد الأكثر مواردًا
- لا يوجد
- عدد موارد المزوّد الأكثر
- 0