Konektivitas ke layanan yang dihosting di lingkungan serverless

Halaman ini menjelaskan cara mengonfigurasi Konektor Integrasi untuk terhubung ke layanan yang dihosting di lingkungan serverless seperti Cloud Run di Google Cloud.

Gambar berikut menunjukkan penyiapan konektivitas jaringan pribadi dari Konektor Integrasi ke layanan yang dihosting di lingkungan Cloud Run di Google Cloud:

Halaman ini mengasumsikan bahwa Anda sudah memahami konsep berikut:

Pertimbangan

Saat Anda membuat lampiran layanan PSC, pertimbangkan poin-poin penting berikut:

  • Lampiran layanan PSC dan load balancer dibuat di subnet yang berbeda dalam VPC yang sama. Secara khusus, lampiran layanan selalu dibuat di subnet NAT.
  • Traffic dari load balancer dan probe health check harus dikirim ke port yang sama.
  • Konfigurasikan aturan firewall untuk memfasilitasi aliran traffic.

    Aturan traffic masuk

    Traffic dari subnet lampiran layanan PSC harus menjangkau layanan backend Anda.

    Aturan traffic keluar

    Traffic keluar diaktifkan secara default di project Google Cloud, kecuali jika aturan penolakan tertentu dikonfigurasi.

  • Semua komponen Google Cloud Anda seperti lampiran layanan PSC dan load balancer harus berada di region yang sama.

Membuat lampiran layanan PSC

Untuk membuat konektivitas pribadi dari Integration Connectors, layanan Anda harus diekspos ke Integration Connectors menggunakan lampiran layanan PSC. Lampiran layanan selalu menggunakan load balancer. Oleh karena itu, jika layanan Anda tidak berada di balik load balancer, load balancer harus dikonfigurasi.

  1. Buat load balancer. Jika sudah memiliki load balancer, lewati langkah ini.

    Buat load balancer aplikasi menggunakan NEG serverless sebagai backend dengan mengikuti petunjuk di Menyiapkan Load Balancer Aplikasi internal regional dengan Cloud Run.

  2. Membuat lampiran layanan
    1. Buat subnet untuk PSC NAT. Perintah berikut membuat subnet dengan nama psc-nat-subnet1 dan tujuannya adalah PRIVATE_SERVICE_CONNECT.
      gcloud compute networks subnets create psc-nat-subnet1 \
                --network=VPC_NETWORK --range=SUBNET_RANGE_1 \
                --purpose=PRIVATE_SERVICE_CONNECT
    2. Buat aturan firewall untuk mengizinkan traffic dari NAT PSC ke load balancer.
      gcloud compute network-firewall-policies rules create PRIORITY --firewall-policy FIREWALL_POLICY_NAME_SA \
          --direction=INGRESS  --network=VPC_NETWORK \
          --action=allow --allow=tcp:BACKEND_SERVER_PORT --src-ip-ranges=SUBNET_RANGE_1
    3. Buat lampiran layanan dengan persetujuan eksplisit.
      gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME --producer-forwarding-rule=FORWARDING_RULE_NAME  --connection-preference=ACCEPT_MANUAL --consumer-accept-list=SERVICE_DIRECTORY_PROJECT_ID=LIMIT --nat-subnets=psc-nat-subnet1

      Dalam perintah ini, LIMIT adalah batas koneksi untuk project. Batas koneksi adalah jumlah endpoint PSC konsumen yang dapat terhubung ke layanan ini. Untuk mendapatkan SERVICE_DIRECTORY_PROJECT_ID, lakukan langkah berikut:

      • Anda dapat membuat lampiran layanan PSC sehingga hanya menerima permintaan dari project Google Cloud yang ditentukan. Namun, untuk melakukannya, Anda memerlukan project ID direktori layanan yang terkait dengan project Google Cloud Anda. Untuk mendapatkan project ID direktori layanan, Anda dapat menggunakan List Connections API seperti yang ditunjukkan dalam contoh berikut.

        Sintaks

        curl -X GET \
            -H "authorization: Bearer $(gcloud auth print-access-token)" \
            -H "Content-Type: application/json" \
            "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"

        Ganti kode berikut:

        • CONNECTORS_PROJECT_ID: ID project Google Cloud tempat Anda membuat koneksi.

        Contoh

        Contoh ini mendapatkan project ID direktori layanan untuk project Google Cloud connectors-test.

        curl -X GET \
            -H "authorization: Bearer $(gcloud auth print-access-token)" \
            -H "Content-Type: application/json" \
            "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"

        Menjalankan perintah ini di terminal akan menampilkan output yang mirip dengan berikut:

        .....
        {
          "connections": [
            {
              "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa",
              "createTime": "2022-10-07T09:02:31.905048520Z",
              "updateTime": "2022-10-07T09:22:39.993778690Z",
              "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1",
              "status": {
                "state": "ACTIVE"
              },
              "configVariables": [
                {
                  "key": "project_id",
                  "stringValue": "connectors-test"
                },
                {
                  "key": "dataset_id",
                  "stringValue": "testDataset"
                }
              ],
              "authConfig": {},
              "serviceAccount": "564332356444-compute@developer.gserviceaccount.com",
              "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime",
              "nodeConfig": {
                "minNodeCount": 2,
                "maxNodeCount": 50
              }
            },
        ....
        

        Pada contoh output, untuk project Google Cloud connectors-test, project ID direktori layanan adalah abcdefghijk-tp.

Membuat lampiran endpoint untuk menggunakan lampiran layanan PSC

Lampiran endpoint sebagai alamat IP

Untuk petunjuk cara membuat lampiran endpoint sebagai alamat IP, lihat Membuat lampiran endpoint sebagai alamat IP.

Lampiran endpoint sebagai nama host

Dalam kasus tertentu seperti backend yang mengaktifkan TLS, tujuan mengharuskan Anda menggunakan nama host, bukan IP pribadi, untuk melakukan validasi TLS. Jika DNS pribadi digunakan, bukan alamat IP untuk tujuan host, selain membuat lampiran endpoint sebagai alamat IP, Anda juga harus mengonfigurasi zona terkelola. Untuk petunjuk cara membuat lampiran endpoint sebagai nama host, lihat Membuat lampiran endpoint sebagai nama host.

Kemudian, saat mengonfigurasi koneksi untuk menggunakan lampiran endpoint, Anda dapat memilih lampiran endpoint ini.

Mengonfigurasi koneksi untuk menggunakan lampiran endpoint

Setelah membuat lampiran endpoint, gunakan lampiran endpoint di koneksi Anda. Saat Anda membuat koneksi baru atau memperbarui koneksi yang ada, di bagian Tujuan, pilih Lampiran endpoint sebagai Jenis Tujuan dan pilih lampiran endpoint yang Anda buat dari daftar Lampiran Endpoint.

Jika Anda membuat zona terkelola, pilih Host Address sebagai Destination Type dan gunakan A-record yang Anda buat saat membuat zona terkelola.

Tips pemecahan masalah

Ikuti panduan yang tercantum di bagian ini untuk menghindari masalah umum: