Menentukan jaringan dan subnetwork

Dokumen ini menjelaskan cara menentukan jaringan, subnetwork, atau kedua opsi saat Anda menjalankan tugas Dataflow.

Dokumen ini mengharuskan Anda untuk mengetahui cara membuat jaringan dan subnetwork Google Cloud. Dokumen ini juga mengharuskan Anda untuk memahami istilah jaringan yang dibahas di bagian berikutnya.

Jaringan default memiliki konfigurasi yang memungkinkan tugas Dataflow untuk dijalankan. Namun, layanan lain mungkin juga menggunakan jaringan ini. Pastikan perubahan pada jaringan default kompatibel dengan semua layanan Anda. Atau, buat jaringan terpisah untuk Dataflow.

Untuk mengetahui informasi selengkapnya tentang cara memecahkan masalah jaringan, lihat Memecahkan masalah jaringan Dataflow.

Terminologi jaringan Google Cloud

  • Jaringan VPC. Jaringan VPC, yang terkadang disebut jaringan, menyediakan konektivitas untuk resource dalam suatu project.

    Untuk mempelajari VPC lebih lanjut, lihat Ringkasan jaringan VPC.

  • Jaringan VPC bersama. Jaringan VPC Bersama adalah jaringan yang berada di project terpisah, yang disebut project host, dalam organisasi Anda. Jika Admin VPC Bersama telah menetapkan Anda sebagai Admin Project Layanan, Anda memiliki izin untuk menggunakan setidaknya beberapa subnetwork dalam jaringan project host.

    Untuk mempelajari lebih lanjut VPC Bersama, lihat Ringkasan VPC Bersama.

  • Kontrol Layanan VPC. Kontrol Layanan VPC Dataflow membantu mengamankan resource dan layanan pipeline Anda.

    Untuk mempelajari Kontrol Layanan VPC lebih lanjut, lihat Ringkasan Kontrol Layanan VPC. Untuk mempelajari batasan saat menggunakan Dataflow dengan Kontrol Layanan VPC, lihat produk dan batasan yang didukung.

Jaringan dan subnetwork untuk tugas Dataflow

Saat membuat tugas Dataflow, Anda dapat menentukan jaringan, subnetwork, atau keduanya.

Perhatikan panduan berikut:

  • Jika tidak yakin parameter mana yang akan digunakan, cukup tentukan parameter subnetwork. Kemudian, parameter jaringan secara implisit ditetapkan untuk Anda.

  • Jika Anda menghilangkan parameter subnetwork dan jaringan, Google Cloud akan menganggap Anda ingin menggunakan jaringan VPC mode otomatis bernama default. Jika tidak memiliki jaringan bernama default dalam project, Anda harus menentukan jaringan atau subnetwork alternatif.

Panduan untuk menentukan parameter jaringan

  • Anda dapat memilih jaringan VPC mode otomatis dalam project Anda dengan parameter jaringan.

  • Anda dapat menentukan jaringan hanya dengan menggunakan namanya, bukan URL lengkap.

  • Anda hanya dapat menggunakan parameter jaringan untuk memilih jaringan VPC bersama jika kedua kondisi berikut terpenuhi:

    • Jaringan VPC Bersama yang Anda pilih adalah jaringan VPC mode otomatis.

    • Anda adalah Admin Project Layanan dengan izin level project untuk seluruh project host VPC Bersama. Admin VPC Bersama telah memberi Anda peran Pengguna Jaringan Compute untuk seluruh project host, sehingga Anda dapat menggunakan semua jaringan dan subnetworknya.

  • Untuk kasus lainnya, Anda harus menentukan subnetwork.

Panduan untuk menentukan parameter subnetwork

  • Jika Anda menentukan subnetwork, Dataflow akan memilih jaringan untuk Anda. Oleh karena itu, saat menentukan subnetwork, Anda dapat menghilangkan parameter jaringan.

  • Untuk memilih subnetwork tertentu dalam jaringan, gunakan parameter subnetwork.

  • Tentukan subnetwork menggunakan URL lengkap atau jalur yang disingkat. Jika subnetwork terletak di jaringan VPC Bersama, Anda harus menggunakan URL lengkap.

  • Anda harus memilih subnetwork di region yang sama dengan zona tempat Anda menjalankan pekerja Dataflow. Misalnya, Anda harus menentukan parameter subnetwork dalam situasi berikut:

    • Subnetwork yang Anda tentukan berada dalam jaringan VPC mode kustom.

    • Anda adalah Admin Project Layanan dengan izin tingkat subnet ke subnetwork tertentu di project host VPC Bersama.

  • Ukuran subnetwork hanya membatasi jumlah instance berdasarkan jumlah alamat IP yang tersedia. Ukuran ini tidak berdampak pada performa Kontrol Layanan VPC Dataflow.

Panduan untuk menentukan parameter subnetwork untuk VPC Bersama

  • Saat menentukan URL subnetwork untuk VPC Bersama, pastikan bahwa HOST_PROJECT_ID adalah project tempat VPC dihosting.

  • Jika subnetwork terletak di jaringan VPC Bersama, Anda harus menggunakan URL lengkap.

  • Pastikan subnetwork VPC Bersama dibagikan ke akun layanan Dataflow dan memiliki peran Pengguna Jaringan Compute yang ditetapkan pada subnet yang ditentukan. Peran Compute Network User harus ditetapkan ke akun layanan Dataflow di project host.

    • Di konsol Google Cloud, buka halaman VPC Bersama dan telusuri subnet. Pada kolom Dibagikan dengan, Anda dapat melihat apakah subnetwork VPC dibagikan dengan akun layanan Dataflow.
    • Jika jaringan tidak dibagikan, pesan error berikut akan muncul: Error: Message: Required 'compute.subnetworks.get' permission.

Contoh spesifikasi jaringan dan subnetwork

Contoh URL lengkap yang menentukan subnetwork:

https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNETWORK_NAME

Ganti kode berikut:

  • HOST_PROJECT_ID: ID project host
  • REGION_NAME: region tugas Dataflow Anda
  • SUBNETWORK_NAME: nama subnetwork Compute Engine Anda

Berikut adalah contoh URL, dengan project ID host-nya adalah my-cloud-project, region-nya us-central1, dan nama subnetworknya adalah mysubnetwork:

 https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork

Berikut adalah contoh formulir singkat yang menentukan subnetwork:

regions/REGION_NAME/subnetworks/SUBNETWORK_NAME

Ganti kode berikut:

  • REGION_NAME: region tugas Dataflow Anda
  • SUBNETWORK_NAME: nama subnetwork Compute Engine Anda

Menjalankan pipeline dengan jaringan yang ditentukan

Jika Anda ingin menggunakan jaringan selain jaringan default yang dibuat oleh Google Cloud, pada umumnya, Anda perlu menentukan subnetwork. Jaringan secara otomatis disimpulkan dari subnetwork yang Anda tentukan. Untuk mendapatkan informasi lebih lanjut, lihat Panduan menentukan parameter jaringan dalam dokumen ini.

Contoh berikut menunjukkan cara menjalankan pipeline dari command line atau dengan menggunakan REST API. Contoh ini menetapkan jaringan.

Java

mvn compile exec:java \
    -Dexec.mainClass=INPUT_PATH \
    -Dexec.args="--project=HOST_PROJECT_ID \
        --stagingLocation=gs://STORAGE_BUCKET/staging/ \
        --output=gs://STORAGE_BUCKET/output \
        --region=REGION \
        --runner=DataflowRunner \
        --network=NETWORK_NAME"

Python

python -m INPUT_PATH \
    --project HOST_PROJECT_ID \
    --region=REGION \
    --runner DataflowRunner \
    --staging_location gs://STORAGE_BUCKET/staging \
    --temp_location gs://STORAGE_BUCKET/temp \
    --output gs://STORAGE_BUCKET/output \
    --network NETWORK_NAME

Go

wordcount
    --project HOST_PROJECT_ID \
    --region HOST_GCP_REGION \
    --runner dataflow \
    --staging_location gs://STORAGE_BUCKET/staging \
    --temp_location gs://STORAGE_BUCKET/temp \
    --input INPUT_PATH \
    --output gs://STORAGE_BUCKET/output \
    --network NETWORK_NAME

API

Jika Anda menjalankan template Dataflow menggunakan REST API, tambahkan network atau subnetwork, atau keduanya, ke objek environment.

POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/wordcount/template_file
{
    "jobName": "JOB_NAME",
    "parameters": {
       "inputFile" : "INPUT_PATH",
       "output": "gs://STORAGE_BUCKET/output"
    },
    "environment": {
       "tempLocation": "gs://STORAGE_BUCKET/temp",
       "network": "NETWORK_NAME",
       "zone": "us-central1-f"
    }
}

Ganti kode berikut:

  • JOB_NAME: nama tugas Dataflow Anda (khusus API)
  • INPUT_PATH: jalur ke sumber Anda
  • HOST_PROJECT_ID: ID project host
  • REGION: Region Dataflow, seperti us-central1
  • STORAGE_BUCKET: bucket penyimpanan
  • NETWORK_NAME: nama jaringan Compute Engine Anda

Jalankan pipeline Anda dengan subnetwork yang telah ditentukan

Jika Anda adalah Admin Project Layanan yang hanya memiliki izin untuk menggunakan subnetwork tertentu dalam jaringan VPC Bersama, Anda harus menentukan parameter subnetwork dengan subnetwork yang izin penggunaannya Anda miliki.

Contoh berikut menunjukkan cara menjalankan pipeline dari command line atau dengan menggunakan REST API. Contoh ini menetapkan subnetwork. Anda juga dapat menentukan jaringan.

Java

mvn compile exec:java \
    -Dexec.mainClass=INPUT_PATH \
    -Dexec.args="--project=HOST_PROJECT_ID \
        --stagingLocation=gs://STORAGE_BUCKET/staging/ \
        --output=gs://STORAGE_BUCKET/output \
        --region=REGION \
        --runner=DataflowRunner \
        --subnetwork=https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK_NAME"

Python

python -m INPUT_PATH \
    --project HOST_PROJECT_ID \
    --region=REGION \
    --runner DataflowRunner \
    --staging_location gs://STORAGE_BUCKET/staging \
    --temp_location gs://STORAGE_BUCKET/temp \
    --output gs://STORAGE_BUCKET/output \
    --subnetwork https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK_NAME

Go

wordcount
    --project HOST_PROJECT_ID \
    --region HOST_GCP_REGION \
    --runner dataflow \
    --staging_location gs://STORAGE_BUCKET/staging \
    --temp_location gs://STORAGE_BUCKET/temp \
    --input INPUT_PATH \
    --output gs://STORAGE_BUCKET/output \
    --subnetwork https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK_NAME

API

Jika Anda menjalankan template Dataflow menggunakan REST API, tambahkan network atau subnetwork, atau keduanya, ke objek environment.

POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/wordcount/template_file
{
    "jobName": "JOB_NAME",
    "parameters": {
       "inputFile" : "INPUT_PATH",
       "output": "gs://STORAGE_BUCKET/output"
    },
    "environment": {
       "tempLocation": "gs://STORAGE_BUCKET/temp",
       "subnetwork": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK_NAME",
       "zone": "us-central1-f"
    }
}

Ganti kode berikut:

  • JOB_NAME: nama tugas Dataflow Anda (khusus API)
  • INPUT_PATH: jalur ke sumber Anda
  • HOST_PROJECT_ID: ID project host
  • REGION: Region Dataflow, seperti us-central1
  • STORAGE_BUCKET: bucket penyimpanan
  • SUBNETWORK_NAME: nama subnetwork Compute Engine Anda

Menonaktifkan alamat IP eksternal

Untuk menonaktifkan alamat IP eksternal, lihat Mengonfigurasi aturan akses internet dan firewall.