> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> أنشئ اتصالاً آمناً بين ClickPipes ومصدر بيانات مستضاف على GCP باستخدام Private Service Connect ‏(PSC).

# GCP Private Service Connect لـ ClickPipes

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

يمكنك استخدام GCP‏ [Private Service Connect (PSC)](https://cloud.google.com/vpc/docs/private-service-connect) لإنشاء اتصال آمن بين ClickPipes ومصدر بيانات مستضاف على GCP. ينشئ ClickPipes **نقطة نهاية خاصة عكسية (RPE)** في شبكة VPC الخاصة به، ويوجّهها إلى خدمة نقطة نهاية خاصة منشورة لمصدر بياناتك، بحيث لا تتعرّض حركة المرور للإنترنت العام مطلقًا.

<Note>
  تتوفر إمكانية الاتصال عبر GCP PSC فقط عند نشر خدمة ClickPipes على GCP. راجع [قائمة مناطق GCP التي يُستضاف فيها ClickPipes](/docs/ar/integrations/clickpipes/networking/static-ips#google-cloud-static-nat-ips) قبل البدء.
</Note>

<div id="supported-patterns">
  ## الأنماط المدعومة
</div>

| النمط                 | متى يُستخدم                                                                                                                      | مرفق الخدمة                              |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
| **PSC أصلي**          | الخدمات المُدارة التي تنشر مرفق خدمة PSC تلقائيًا، مثل AlloyDB.                                                                  | يُنشأ تلقائيًا عند تمكين PSC على المثيل. |
| **PSC مملوك للمنتِج** | مصادر البيانات التي لا تنشر مرفق خدمة، مثل Postgres على Compute Engine أو خدمة مُدارة لا يمكن الوصول إليها إلا عبر عنوان IP خاص. | تنشئه وتديره بنفسك.                      |

<div id="prerequisites">
  ## المتطلبات الأساسية
</div>

* خدمة ClickHouse Cloud مستضافة على GCP في [منطقة تتوفر فيها ClickPipes](/docs/ar/integrations/clickpipes/networking/static-ips#google-cloud-static-nat-ips).
* أذونات IAM لتفعيل PSC على مصدرك وإدارة مرفقات خدمة PSC (`roles/compute.networkAdmin`).
* يجب السماح لـ **مشروع مستهلك ClickPipes** بالاتصال بمرفق الخدمة لديك. بالنسبة إلى بيئة الإنتاج في ClickPipes، يكون هذا المشروع هو `clickpipes-production`.
* مفتاح API/السر لـ ClickHouse Cloud الخاص بالمؤسسة المالكة للخدمة (مطلوب فقط إذا أجريت التوفير عبر Terraform أو واجهة برمجة التطبيقات).

<div id="create-rpe">
  ## إنشاء نقطة النهاية الخاصة العكسية
</div>

لإنشاء RPE، ستحتاج إلى المعلومات التالية الخاصة بمصدر بياناتك:

* **عنوان URI لمرفق الخدمة**: `projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>`، وهو
  نقطة نهاية PSC المنشورة أمام مصدر بياناتك.
* **اسم DNS الخاص**: اسم المضيف الذي يتصل به خط الأنابيب. تحصل نقطة نهاية PSC على عنوان IP داخلي ثابت
  دون اسم DNS مرتبط بها، لذا تحل ClickPipes اسم المضيف هذا إلى عنوان IP نيابةً عنك.

<Tabs>
  <Tab title="واجهة ClickPipes">
    1. في ClickHouse Cloud، افتح خدمتك وانتقل إلى **مصادر البيانات** > **ClickPipes**.
    2. حدد مصدر البيانات الذي تريد استيعاب البيانات منه.
    3. ضمن **إعداد اتصال ClickPipe**، فعّل **استخدام اتصال آمن**، ثم انقر على **+ نقطة نهاية خاصة عكسية** واختر **مرفق خدمة GCP PSC**.
    4. أدخل **عنوان URI لمرفق الخدمة** و**اسم DNS الخاص** و**وصفًا**.
    5. انقر على **إنشاء**. تمر نقطة النهاية بالحالتين `Provisioning` ← `Ready`. (يقبل PSC الأصلي تلقائيًا، لذا لن ترى `PendingAcceptance`.)
  </Tab>

  <Tab title="Terraform">
    إن تعيينات DNS الخاصة المخصصة ليست سمةً لـ`clickhouse_clickpipes_reverse_private_endpoint`، بل تُدار بواسطة مورد `clickhouse_clickpipes_reverse_private_endpoint_custom_private_dns` المنفصل، الذي يقبل قائمة استبدال كاملة من التعيينات ويشير إلى نقطة النهاية باستخدام المعرّف:

    ```hcl theme={null}
    resource "clickhouse_clickpipes_reverse_private_endpoint" "gcp_psc" {
      service_id             = var.clickhouse_service_id
      description            = "GCP PSC endpoint"
      type                   = "GCP_PSC_SERVICE_ATTACHMENT"
      gcp_service_attachment = "projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>"
    }

    resource "clickhouse_clickpipes_reverse_private_endpoint_custom_private_dns" "gcp_psc" {
      service_id                  = var.clickhouse_service_id
      reverse_private_endpoint_id = clickhouse_clickpipes_reverse_private_endpoint.gcp_psc.id

      mapping = [
        { private_dns_name = "<PRIVATE_DNS_NAME>" }
      ]
    }
    ```
  </Tab>

  <Tab title="واجهة برمجة التطبيقات">
    ```bash theme={null}
    curl --silent --user $KEY_ID:$KEY_SECRET \
      -X POST -H "Content-Type: application/json" \
      https://api.clickhouse.cloud/v1/organizations/<ORG_ID>/services/<SERVICE_ID>/clickpipesReversePrivateEndpoints \
      -d '{
        "type": "GCP_PSC_SERVICE_ATTACHMENT",
        "description": "GCP PSC endpoint",
        "gcpServiceAttachment": "projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>",
        "customPrivateDnsMappings": [
          { "privateDnsName": "<PRIVATE_DNS_NAME>" }
        ]
      }'
    ```
  </Tab>
</Tabs>

<div id="custom-private-dns-rules">
  ### أسماء DNS الخاصة المخصصة
</div>

نظرًا إلى أن GCP PSC لا ينشر سجلات DNS، يُعد تعيين DNS خاص مخصص ضروريًا لكل نقطة نهاية في GCP PSC — إذ تُوفّر دائمًا اسم DNS الخاص بالمصدر بهذه الطريقة، ويحلّه ClickPipes إلى عنوان IP الداخلي الثابت للـ نقطة نهاية.

تنطبق [قواعد تسمية DNS الخاص المخصص](/docs/ar/integrations/clickpipes/networking/aws-privatelink#custom-private-dns) القياسية في ClickPipes — إذ يُفرض دعم wildcards، والتفرّد عبر نقاط النهاية الخاصة العكسية للخدمة، وقيود اللاحقات المحجوزة بالطريقة نفسها لدى جميع المزوّدين. وتكون wildcards مفيدة بصورة خاصة في GCP: إذ يغطي تعيين واحد مثل `*.<cluster>.<region>.managedkafka.<project>.cloud.goog` جميع brokers في Kafka cluster من نوع Managed.

بالنسبة إلى GCP PSC، لا يُستخدم إلا `privateDnsName` الخاص بالتعيين. الحقل `internalDNSName` غير مدعوم، لأن نقطة نهاية في PSC يوفّر عنوان IP ثابتًا لا اسم DNS لتثبيته عليه — وتُحل التعيينات دائمًا إلى عنوان IP هذا.

<div id="producer-owned">
  ## الموافقة على الاتصالات المملوكة للمنتِج
</div>

بالنسبة إلى PSC المملوك للمنتِج، أضِف مشروع ClickPipes المستهلِك إلى قائمة القبول التلقائي لمرفق الخدمة ليُقبل الاتصال تلقائيًا. إذا لم تفعل ذلك، سيظل RPE في حالة `PendingAcceptance` إلى أن توافق عليه يدويًا.

لقبول الاتصال، يجب أن تتضمن قائمة قبول المستهلكين لمرفق الخدمة عنوان URI المستند إلى المعرّف الرقمي لنقطة النهاية (`projects/<PROJECT>/regions/<REGION>/forwardingRules/<NUMERIC_ID>`). هذه القيمة هي `endpointWithId` للاتصال المعلّق على مرفق الخدمة — صِفه للعثور عليها:

```bash theme={null}
gcloud beta compute service-attachments describe <SERVICE_ATTACHMENT_NAME> \
  --region=<REGION> --project=<YOUR_PROJECT_ID> \
  --format='json(connectedEndpoints)'
```

خذ `endpointWithId` الخاص بالإدخال ذي `status` بقيمة `PENDING`، وأزل البادئة `https://www.googleapis.com/compute/beta/`، ثم مرّر النتيجة إلى `--consumer-accept-list`:

```bash theme={null}
gcloud beta compute service-attachments update <SERVICE_ATTACHMENT_NAME> \
  --region=<REGION> --project=<YOUR_PROJECT_ID> \
  --consumer-accept-list=projects/<PROJECT>/regions/<REGION>/forwardingRules/<NUMERIC_ID> \
  --reconcile-connections
```

<Warning>
  لا تستخدم `endpoint_id` الوارد في استجابة واجهة برمجة تطبيقات ClickPipes أو Terraform هنا — فهذه القيمة هي *اسم* قاعدة إعادة التوجيه، وليست المعرّف الرقمي الذي تتطلبه GCP، لذا لن تتطابق قائمة القبول. احصل دائمًا على المعرّف الرقمي من `endpointWithId` المعلّق الخاص بمرفق الخدمة.

  يؤدي `--consumer-accept-list` أيضًا إلى استبدال قائمة القبول بدلًا من الإضافة إليها. إذا كان مرفق الخدمة يقبل بالفعل مشاريع أو نقاط نهاية أخرى، فمرّرها جميعًا في الأمر نفسه، وإلا فستفقد العناصر التي لم تذكرها إمكانية الوصول.
</Warning>

<div id="managing-rpes">
  ## إدارة نقاط النهاية الخاصة العكسية
</div>

يمكنك إدارة نقاط النهاية الخاصة العكسية الحالية من إعدادات خدمة ClickHouse Cloud:

1. في الشريط الجانبي، ابحث عن زر `Settings` وانقر عليه.

   <Image img="https://mintcdn.com/private-7c7dfe99/KW34O4k4cC0oxlHH/images/integrations/data-ingestion/clickpipes/cp_rpe_settings0.webp?fit=max&auto=format&n=KW34O4k4cC0oxlHH&q=85&s=71e42e9eea9482ef95a7a0268daed9e2" alt="إعدادات ClickHouse Cloud" size="lg" border width="1120" height="928" data-path="images/integrations/data-ingestion/clickpipes/cp_rpe_settings0.webp" />

2. انقر على `Reverse private endpoints` ضمن قسم `ClickPipe reverse private endpoints`.

   <Image img="https://mintcdn.com/private-7c7dfe99/KW34O4k4cC0oxlHH/images/integrations/data-ingestion/clickpipes/cp_rpe_settings1.webp?fit=max&auto=format&n=KW34O4k4cC0oxlHH&q=85&s=085af9a759cfaa002abb814936c14600" alt="إعدادات ClickHouse Cloud" size="md" border width="579" height="705" data-path="images/integrations/data-ingestion/clickpipes/cp_rpe_settings1.webp" />

   تظهر المعلومات التفصيلية لنقطة النهاية الخاصة العكسية في اللوحة المنبثقة.

   هذا العرض للقراءة فقط باستثناء الحذف: انقر على `×` بجانب نقطة نهاية وأكّد الحذف. الحذف نهائي ويعطّل أي ClickPipe يستخدم نقطة النهاية هذه حاليًا.

   لتغيير تعيينات DNS الخاص المخصص لنقطة نهاية، استخدم واجهة برمجة التطبيقات أو Terraform. يستبدل التحديث قائمة التعيينات بالكامل بدلًا من الإضافة إليها.

إذا كانت نقطة النهاية تعرض `Rejected` أو `Failed`، فاقرأ الرسالة أسفل حالتها، إذ توضح ما إذا كان المنتج قد رفض الاتصال، أو ما إذا كان الاتصال قد أُغلق أو يحتاج إلى إجراء. يشير كلاهما عادةً إلى أن قائمة القبول الخاصة بمرفق الخدمة لا تتضمن مشروع مستهلك ClickPipes. للاطلاع على الحالة التي يبلّغ عنها GCP لنقطة النهاية، نفّذ وصفًا لـ `connectedEndpoints` الخاص بمرفق الخدمة لديك.

<div id="limitations">
  ## القيود
</div>

* يجب أن تقع نقطة نهاية RPE ومرفق الخدمة في **منطقة GCP نفسها**. لا يُدعم PSC عبر المناطق باستخدام [الوصول العام](https://docs.cloud.google.com/vpc/docs/about-accessing-vpc-hosted-services-endpoints#global-access) حتى الآن. استخدم [SSH Tunneling](/docs/ar/integrations/clickpipes/networking/index#ssh-tunneling) إذا كان المصدر في منطقة أخرى.
* لا يمكن أن يُطالب بمرفق خدمة PSC سوى من قِبل خدمة ClickHouse Cloud واحدة في الوقت نفسه، ولا يمكن إعادة استخدامه عبر خدمات متعددة. لنقل مرفق خدمة إلى خدمة أخرى، [تواصل مع دعم ClickHouse](https://clickhouse.com/support/program) لتحرير المطالبة الحالية.
