Menentukan jaringan dan subnetwork

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

Untuk mengikuti langkah-langkahnya, Anda perlu mengetahui cara membuat Google Cloud jaringan dan sub-jaringan. Anda juga harus memahami istilah jaringan yang dibahas di bagian berikutnya.

Jaringan default memiliki konfigurasi yang memungkinkan tugas Dataflow berjalan. Namun, layanan lain juga dapat menggunakan jaringan ini. Pastikan setiap 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.

Google Cloud terminologi jaringan

  • Jaringan VPC. Jaringan VPC adalah versi virtual dari jaringan fisik yang diterapkan di dalam jaringan produksi Google. Terkadang disebut jaringan, VPC menyediakan konektivitas untuk resource dalam suatu project.

    Untuk mempelajari VPC lebih lanjut, lihat Jaringan VPC.

  • Jaringan VPC Bersama. Saat menggunakan VPC Bersama, Anda menetapkan suatu project sebagai project host dan menautkan satu atau beberapa project layanan lainnya. Jaringan VPC dalam project host disebut jaringan VPC Bersama. Jika Admin VPC Bersama menentukan Anda sebagai Service Project Admin, Anda memiliki izin untuk menggunakan setidaknya beberapa subnetwork di jaringan project host.

    Untuk mempelajari lebih lanjut VPC Bersama, lihat VPC Bersama.

  • Kontrol Layanan VPC. Kontrol Layanan VPC Dataflow membantu melindungi dari tindakan yang tidak disengaja atau ditargetkan oleh entity eksternal atau oleh entity orang dalam, sehingga membantu meminimalkan risiko pemindahan data yang tidak sah. Anda dapat menggunakan Kontrol Layanan VPC untuk membuat perimeter yang melindungi resource dan data layanan yang Anda tentukan secara eksplisit.

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

  • Aturan firewall. Gunakan aturan firewall untuk mengizinkan atau menolak traffic ke dan dari VM Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi akses internet dan aturan firewall.

Jaringan dan subnetwork untuk tugas Dataflow

Saat membuat tugas Dataflow, Anda dapat menentukan jaringan, subnetwork, atau kedua opsi tersebut.

Perhatikan panduan berikut:

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

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

Pedoman untuk menentukan parameter jaringan

  • Untuk memilih jaringan VPC mode otomatis di project Anda, gunakan parameter jaringan. Untuk mengetahui informasi selengkapnya, lihat Membuat jaringan VPC mode otomatis.

  • 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 tingkat project ke 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 subnetwork-nya.

  • Untuk semua 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.

  • 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 dalam project host VPC Bersama.

  • Jumlah alamat IP yang tersedia merupakan batasan jumlah pekerja Dataflow yang dapat dibuat. Misalnya, jika rentang IPv4 subnet adalah 10.0.0.0/24, hal ini akan menyediakan 252 alamat IP yang dapat digunakan untuk VM pekerja. Pastikan ruang alamat IP cukup besar untuk beban kerja yang diharapkan, termasuk memungkinkan penskalaan otomatis horizontal. Gunakan pengujian beban untuk memvalidasi asumsi Anda.

Pedoman untuk menentukan parameter subnetwork untuk VPC Bersama

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

  • Jika subnetwork terletak di jaringan VPC Bersama, Anda harus menggunakan URL lengkap. Lihat contoh URL lengkap yang menentukan subnetwork.

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

    1. Di konsol Google Cloud , buka halaman Shared VPC.

      Buka halaman Shared VPC

    2. Pilih project host.

    3. Di bagian Akses subnet individual, pilih subnet Anda. Panel Subnet level permissions menampilkan izin untuk subnet ini. Anda dapat melihat apakah subnetwork VPC diberi peran Compute Network User.

    4. Untuk memberikan izin, di panel Subnet level permissions, klik Add principal.

    Jika jaringan tidak dibagikan, saat Anda mencoba menjalankan tugas, pesan error berikut akan muncul: Error: Message: Required 'compute.subnetworks.get' permission. Untuk mengetahui informasi selengkapnya, lihat Izin 'compute.subnetworks.get' yang diperlukan di "Memecahkan masalah izin Dataflow".

Contoh spesifikasi jaringan dan subnetwork

Contoh berikut menunjukkan 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 ID project host my-cloud-project, region us-central1, dan nama subnetwork 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

Jalankan pipeline Anda dengan jaringan yang ditentukan

Jika Anda ingin menggunakan jaringan selain jaringan default yang dibuat oleh Google Cloud, dalam sebagian besar kasus, Anda perlu menentukan subnetwork. Jaringan akan otomatis disimpulkan dari subnetwork yang Anda tentukan. Untuk mengetahui informasi selengkapnya, lihat Pedoman untuk menentukan parameter jaringan dalam dokumen ini.

Contoh berikut menunjukkan cara menjalankan pipeline dari command line atau menggunakan REST API. Contoh ini 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 \
        --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 dengan 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 ditentukan

Jika Anda adalah Admin Project Layanan yang hanya memiliki izin untuk menggunakan subnetwork tertentu di jaringan VPC Bersama, Anda harus menentukan parameter subnetwork dengan subnetwork yang Anda izinkan untuk digunakan.

Contoh berikut menunjukkan cara menjalankan pipeline dari command line atau menggunakan REST API. Contoh ini menentukan 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 akses internet dan aturan firewall.