> ## 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.

# GCP Private Service Connect لـ ClickPipes

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

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

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

<Check>
  يدعم ClickPipes اتصال PSC **عبر المناطق** من خلال [الوصول العام](https://docs.cloud.google.com/vpc/docs/about-accessing-vpc-hosted-services-endpoints#global-access). يُطلب الوصول العام لنقاط النهاية الموجودة في منطقة مختلفة عن المنطقة التي تعمل فيها البنية التحتية لـ ClickPipes. راجع [وثائق مناطق GCP الخاصة بـ ClickPipes](/ar/integrations/clickpipes/networking/static-ips#google-cloud-static-nat-ips) لمزيد من التفاصيل.
</Check>

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

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

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

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

<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 لكي يتمكن ClickPipes من حلّه إلى عنوان IP الداخلي الثابت للـ نقطة نهاية.

تنطبق [قواعد تسمية DNS الخاص المخصص](/ar/integrations/clickpipes/networking/aws-privatelink#custom-private-dns) القياسية في ClickPipes: إذ يُفرض دعم wildcards، والتفرّد عبر نقاط النهاية الخاصة العكسية للخدمة، وقيود اللاحقات المحجوزة بالطريقة نفسها لدى جميع المزوّدين. وتكون wildcards مفيدة بصورة خاصة، *على سبيل المثال*، إذ يغطي تعيين واحد مثل `*.<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 (`clickpipes-production`) إلى قائمة القبول التلقائي لمرفق الخدمة، ليُقبل الاتصال تلقائيًا. إذا تخطيت ذلك، سيبقى 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`:

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

```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` المعلّق الخاص بمرفق الخدمة.
</Warning>

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

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

1. من الشريط الجانبي لوحدة تحكم ClickHouse Cloud، انتقل إلى `Settings`.

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

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

لتغيير تعيينات DNS الخاص المخصص لنقطة نهاية، استخدم [Cloud API](/ar/integrations/clickpipes/programmatic-access/openapi) أو [Terraform](/ar/integrations/clickpipes/programmatic-access/terraform). يستبدل التحديث قائمة التعيينات كاملةً بدلًا من الإضافة إليها.

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

<div id="limitations">
  ## القيود المعروفة
</div>

* لا يمكن أن يُطالب بمرفق خدمة PSC سوى من قِبل خدمة ClickHouse Cloud واحدة في الوقت نفسه، ولا يمكن إعادة استخدامه عبر خدمات متعددة. لنقل مرفق خدمة إلى خدمة أخرى، [تواصل مع دعم ClickHouse](https://clickhouse.com/support/program) لتحرير المطالبة الحالية.
