> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-revert-104359-revert-104251-parquet-single.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# مرجع Terraform لـ ClickHouse Managed Postgres

> مرجع لإدارة خدمات ClickHouse Managed Postgres باستخدام موفّر Terraform من ClickHouse.

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Beta</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>ميزة Beta</span>
        </a>;
};

<BetaBadge link="https://clickhouse.com/cloud/postgres" galaxyTrack={true} galaxyEvent="docs.managed-postgres.terraform-beta" />

يمكن إنشاء خدمات ClickHouse Managed Postgres وإدارتها باستخدام المورد `clickhouse_postgres_service` في [موفّر Terraform لـ ClickHouse](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest/docs/resources/postgres_service). تتناول هذه الصفحة إعداد الموفّر وأمثلة على تهيئة هذا المورد ومصادر البيانات المرتبطة به.

<Note>
  هذا المورد في مرحلة alpha، وقد يتغير سلوكه في الإصدارات المستقبلية من الموفّر. وهو متضمن في الإصدار الاعتيادي للموفّر. توثّق هذه الصفحة إصدار الموفّر **v3.21.0** والإصدارات الأحدث. راجع [إصدارات الموفّر](https://github.com/ClickHouse/terraform-provider-clickhouse/releases) للاطلاع على التفاصيل.
</Note>

<div id="provider-setup">
  ## إعداد الموفّر
</div>

أضِف موفّر ClickHouse إلى إعدادات Terraform الخاصة بك:

```hcl theme={null}
terraform {
  required_providers {
    clickhouse = {
      source  = "ClickHouse/clickhouse"
      version = ">= 3.21.0"
    }
  }
}

provider "clickhouse" {
  organization_id = var.organization_id
  token_key       = var.token_key
  token_secret    = var.token_secret
}
```

راجع [إدارة مفاتيح API](/ar/products/cloud/features/admin-features/api/openapi) للاطّلاع على إرشادات إنشاء مفتاح API لاستخدامه مع الموفّر.

<div id="resource-overview">
  ## نظرة عامة على المورد
</div>

يحتوي المورد `clickhouse_postgres_service` على الوسيطات التالية:

| الوسيطة                    | مطلوب                                              | الوصف                                                                                                                                                                                                                                                                                     |
| -------------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                     | نعم                                                | اسم سهل القراءة للخدمة. غير قابل للتغيير — ويؤدي تغييره إلى حذف الخدمة وإعادة إنشائها.                                                                                                                                                                                                    |
| `cloud_provider`           | عند إنشاء خدمة عادي                                | موفّر السحابة الذي يستضيف المثيل. لا يتوفر الدعم حاليًا إلا لـ `aws`. احذف هذه القيمة عند إنشاء نسخة متماثلة للقراءة أو عند الاستعادة إلى نقطة زمنية (تُورث من المصدر).                                                                                                                   |
| `region`                   | عند إنشاء خدمة عادي                                | منطقة السحابة (على سبيل المثال، `us-east-1`). احذف هذه القيمة عند إنشاء نسخة متماثلة للقراءة أو عند الاستعادة إلى نقطة زمنية (تُورث من المصدر).                                                                                                                                           |
| `size`                     | عند إنشاء خدمة عادي                                | حجم المثيل (VM SKU)، على سبيل المثال `m6gd.large`. يمكن تغيير حجمه في مكانه. احذف هذه القيمة عند الاستعادة إلى نقطة زمنية (إذ يعمل المثيل المُستعاد بحجم النسخة الاحتياطية).                                                                                                              |
| `postgres_version`         | لا                                                 | الإصدار الرئيسي من Postgres (على سبيل المثال، `18`). يؤدي تغيير الإصدار الرئيسي إلى حذف الخدمة وإعادة إنشائها.                                                                                                                                                                            |
| `ha_type`                  | لا                                                 | وضع التوافر العالي: `none` أو `async` أو `sync`. راجع [التوافر العالي](#high-availability).                                                                                                                                                                                               |
| `password`                 | عند إنشاء خدمة عادي، ما لم يتم تعيين `password_wo` | كلمة مرور مستخدم فائق الصلاحيات، وتُدار من خلال الإعدادات لديك. لا يعيد Terraform قراءتها مطلقًا من واجهة برمجة تطبيقات. وتُخزَّن في الحالة باعتبارها قيمة حساسة. احذفها عند إنشاء نسخة متماثلة للقراءة (تُورث) أو عند الاستعادة إلى نقطة زمنية (تُحتفظ بها من النسخة الاحتياطية المصدر). |
| `password_wo`              | عند إنشاء خدمة عادي، ما لم يتم تعيين `password`    | كلمة مرور مستخدم فائق الصلاحيات للكتابة فقط: تُطبَّق على الخدمة، ولكن لا تُخزَّن مطلقًا في الحالة. تتطلب `password_wo_version`، كما تتطلب Terraform 1.11 أو إصدارًا أحدث.                                                                                                                 |
| `password_wo_version`      | مع `password_wo`                                   | رقم الإصدار الخاص بـ `password_wo`. غيّره لتدوير كلمة المرور إلى قيمة `password_wo` الحالية.                                                                                                                                                                                              |
| `pg_config`                | لا                                                 | معاملات خادم Postgres على هيئة خريطة مفاتيح-قيم.                                                                                                                                                                                                                                          |
| `pgbouncer_config`         | لا                                                 | معاملات مُجمِّع الاتصالات PgBouncer على هيئة خريطة مفاتيح-قيم.                                                                                                                                                                                                                            |
| `tags`                     | لا                                                 | علامات المورد على هيئة خريطة مفاتيح-قيم.                                                                                                                                                                                                                                                  |
| `read_replica_of`          | لا                                                 | معرّف الخدمة الأساسية المطلوب النسخ المتماثل منها. راجع [النسخ المتماثلة للقراءة](#read-replicas). ولا يمكن استخدامه مع `restore_to_point_in_time`.                                                                                                                                       |
| `restore_to_point_in_time` | لا                                                 | أنشئ الخدمة عبر استعادة خدمة أخرى إلى نقطة زمنية محددة. راجع [الاستعادة إلى نقطة زمنية](#point-in-time-restore). ولا يمكن استخدامه مع `read_replica_of`.                                                                                                                                  |

السمات التالية للقراءة فقط، ويقوم ClickHouse Cloud بتعبئتها بعد الإنشاء: `id` و`state` و`created_at` و`is_primary` و`hostname` و`port` و`username`. ولا توجد سمة `connection_string`: أنشئ عناوين URI للاتصال من `hostname` و`port` و`username` وكلمة المرور التي تُصرّح بها، على سبيل المثال `postgres://${username}:${password}@${hostname}:${port}/postgres?sslmode=require`.

<Warning>
  تُخزَّن قيمة `password` كنص عادي في حالة Terraform لديك. لذلك احمِ ملف الحالة بالشكل المناسب، على سبيل المثال باستخدام backend بعيد مع التشفير أثناء التخزين، أو استخدم `password_wo` لإبقاء كلمة المرور خارج الحالة بالكامل.
</Warning>

<div id="create-a-service">
  ## إنشاء خدمة
</div>

```hcl theme={null}
resource "clickhouse_postgres_service" "example" {
  name           = "my-postgres"
  cloud_provider = "aws"
  region         = "us-east-1"
  size           = "m6gd.large"
  password       = var.postgres_password

  # High-availability mode — number of standby replicas:
  #   "none"  – primary only, no standby (default)
  #   "async" – 1 standby, asynchronous replication
  #   "sync"  – 2 standbys, synchronous replication
  ha_type = "async"

  tags = {
    environment = "production"
    team        = "data"
  }
}
```

يجب أن تُصرِّح الخدمة القياسية بـ `password` أو `password_wo`. يجب ألا يقل طول القيمة عن 12 حرفًا، وأن تتضمن حرفًا صغيرًا واحدًا على الأقل، وحرفًا كبيرًا واحدًا على الأقل، ورقمًا واحدًا. يطبّق `password_wo` (مع `password_wo_version`) قواعد كلمة المرور نفسها، لكنه لا يُخزَّن أبدًا في الحالة؛ غيّر `password_wo_version` لإجراء التدوير. ونظرًا لأن واجهة برمجة تطبيقات لا تُرجع بيانات الاعتماد، يجب أن تظل Terraform الجهة الوحيدة التي تعيّن كلمة المرور: لا يُكتشَف تدوير كلمة المرور خارج Terraform (وحدة التحكم أو واجهة برمجة تطبيقات)، وتعيد عملية التدوير التالية التي تُدار بواسطة Terraform تعيين القيمة المُصرَّح بها.

<div id="high-availability">
  ## التوافر العالي
</div>

تتحكم الوسيطة `ha_type` في عدد النسخ الاحتياطية الجاهزة:

| `ha_type` | النسخ الاحتياطية الجاهزة  | النسخ المتماثل                                                           |
| --------- | ------------------------- | ------------------------------------------------------------------------ |
| `none`    | لا شيء (الأساسي فقط)      | —                                                                        |
| `async`   | نسخة احتياطية جاهزة واحدة | غير متزامن — تُثبَّت عمليات الكتابة دون انتظار النسخة الاحتياطية الجاهزة |
| `sync`    | نسختان احتياطيتان جاهزتان | متزامن — ينتظر الأساسي تأكيدًا من نسخة احتياطية جاهزة واحدة على الأقل    |

يمكن تغيير `ha_type` بعد الإنشاء؛ ويؤدي تغييرها إلى انتقال في التوافر العالي. راجع [التوافر العالي](/ar/products/managed-postgres/high-availability) للتفاصيل.

<div id="read-replicas">
  ## النسخ المتماثلة للقراءة
</div>

عيّن `read_replica_of` إلى قيمة `id` الخاصة بخدمة أساسية لإنشاء نسخة متماثلة للقراءة بتدفّق مستمر. ترث النسخة المتماثلة `cloud_provider` و`region` و`postgres_version` ومستخدم فائق الصلاحيات من الخدمة الأساسية، لذا اترك هذه القيم (و`password`) فارغة:

```hcl theme={null}
resource "clickhouse_postgres_service" "replica" {
  name            = "my-postgres-replica"
  size            = "m6gd.large"
  read_replica_of = clickhouse_postgres_service.example.id
}
```

راجع [النسخ المتماثلة للقراءة](/ar/products/managed-postgres/read-replicas) لمزيد من التفاصيل.

<div id="point-in-time-restore">
  ## الاستعادة إلى نقطة زمنية
</div>

عيّن `restore_to_point_in_time` لإنشاء خدمة من خلال استعادة نسخة احتياطية لخدمة أخرى إلى نقطة زمنية محددة. تكون `cloud_provider` و`region` و`postgres_version` موروثة من المصدر (لذا احذفها)، كما يجب حذف `size` و`ha_type`:

```hcl theme={null}
resource "clickhouse_postgres_service" "restored" {
  name = "my-postgres-restored"

  restore_to_point_in_time = {
    source_id      = clickhouse_postgres_service.example.id
    restore_target = "2026-06-01T12:00:00Z"
  }
}
```

هذه الكتلة بأكملها مخصّصة لوقت الإنشاء فقط: إن تغيير `source_id` أو `restore_target`، أو إزالة الكتلة، يؤدي إلى حذف الخدمة وإعادة إنشائها. راجع [النسخ الاحتياطي والاستعادة](/ar/products/managed-postgres/backup-and-restore) للاطلاع على التفاصيل.

<div id="data-sources">
  ## مصادر البيانات
</div>

تتيح لك ثلاثة مصادر بيانات مرافقة العثور على الخدمات الحالية:

```hcl theme={null}
# A single service by ID.
data "clickhouse_postgres_service" "example" {
  id = clickhouse_postgres_service.example.id
}

# All ClickHouse Managed Postgres services in the organization.
data "clickhouse_postgres_services" "all" {}

# The CA certificates for a service, for TLS connections.
data "clickhouse_postgres_service_ca_certificates" "certs" {
  service_id = clickhouse_postgres_service.example.id
}
```

<div id="importing-existing-services">
  ## استيراد الخدمات الحالية
</div>

يمكن استيراد خدمات ClickHouse Managed Postgres الحالية إلى حالة Terraform باستخدام معرّف الخدمة:

```bash theme={null}
terraform import clickhouse_postgres_service.example xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

لا تُستعاد كلمة المرور عند الاستيراد (إذ لا تُرجعها واجهة برمجة تطبيقات). بعد الاستيراد، تؤدي أول عملية apply إلى تبديل الخدمة إلى `password` أو `password_wo` المعرَّفين في الإعدادات الخاصة بك.

<div id="unsupported-operations">
  ## العمليات غير المدعومة
</div>

العناصر التالية غير موجودة عمدًا في مخطط المورد:

* الأوامر التشغيلية (إعادة التشغيل، ترقية العقدة، تبديل الأدوار).
* قوائم السماح لعناوين IP، ونقاط النهاية الخاصة، وإعدادات النسخ الاحتياطي، ونوافذ الصيانة، ومفاتيح التشفير التي يديرها العميل، وBYOC.
* مهل دورة الحياة القابلة للتهيئة — لا توجد كتلة `timeouts {}`.
