gRPC adalah framework RPC universal open source berperforma tinggi yang dikembangkan oleh Google yang dapat Anda gunakan untuk menentukan layanan menggunakan Protocol Buffers. Anda dapat menggunakan gRPC untuk berinteraksi dengan Cloud Storage. gRPC menggunakan konektivitas langsung antara instance Compute Engine dan bucket Cloud Storage, dengan melewati Google Front Ends (GFE).
Anda dapat terhubung ke Cloud Storage menggunakan gRPC melalui klien yang didukung berikut:
Konektor I/O Apache Beam di Dataflow untuk permintaan baca dan tulis.
Library klien Cloud Storage C++, Go, dan Java. Untuk mengetahui petunjuk tentang cara mengaktifkan gRPC untuk library klien ini, lihat Mengaktifkan gRPC di library klien.
Cloud Storage FUSE. Anda dapat menggunakan Cloud Storage FUSE sebagai klien dengan menentukan
grpc
di kolomclient-protocol
menggunakan file konfigurasi Cloud Storage FUSE atau opsi--client-protocol
menggunakan gcsfuse CLI. Untuk menggunakan gRPC dengan Cloud Storage FUSE, sebaiknya gunakan Cloud Storage FUSE versi 2.10.0 atau yang lebih baru.
Mengaktifkan gRPC di library klien
C++
Sebelum memulai
Pastikan Anda telah menginstal versi berikut:
gRPC versi 1.65.1 atau yang lebih baru
Library klien C++ versi v2.30.0 atau yang lebih baru
C++ versi 14 atau yang lebih baru
Untuk petunjuk penginstalan, lihat Menyiapkan lingkungan pengembangan C++.
Pastikan setiap instance Compute Engine memiliki akun layanan yang dilampirkan kepadanya, meskipun akun layanan tidak memiliki izin. Akun layanan ini digunakan untuk merepresentasikan instance Compute Engine dalam proses handshake Application Layer Transport Security (ALTS) dan diperlukan untuk konektivitas langsung.
Mengonfigurasi library klien C++
Buat klien gRPC menggunakan
gcs::MakeGrpcClient()
:namespace gcs = google::cloud::storage; void App() { auto client = gcs::MakeGrpcClient(); // application code }
Library klien C++ secara otomatis menggunakan konektivitas langsung saat mendeteksi bahwa aplikasi berjalan di Google Cloud.
Untuk mengonfigurasi library klien C++ agar menggunakan gRPC, aktifkan klien gRPC Cloud Storage untuk memperbarui konfigurasi sistem build Anda untuk CMake atau Bazel.
CMake
Aktifkan plugin klien gRPC Cloud Storage pada waktu kompilasi.
cmake -DGOOGLE_CLOUD_CPP_ENABLE=storage_grpc [other options here]
Dalam codebase Anda, untuk perintah
target_link_libraries()
, gantigoogle-cloud-cpp::storage
dengangoogle-cloud-cpp::storage_grpc
Misalnya, program panduan memulai untuk gRPC menggunakan kode berikut:
add_executable(quickstart_grpc quickstart_grpc.cc) target_link_libraries(quickstart_grpc google-cloud-cpp::storage_grpc)
Bazel
Ganti dependensi dari
@google_cloud_cpp//:storage
menjadi@google_cloud_cpp//:storage_grpc
.Misalnya, program panduan memulai untuk gRPC menggunakan kode berikut:
cc_binary( name = "quickstart", srcs = [ "quickstart.cc", ], deps = [ "@com_github_googleapis_google_cloud_cpp//:storage_grpc", ], )
Java
Sebelum memulai
Pastikan Anda telah menginstal versi berikut:
Library klien Java:
com.google.cloud:google-cloud-storage:2.43.1
atau yang lebih baru.com.google.cloud:libraries-bom:26.48
atau yang lebih baru.
Java 8 atau yang lebih baru
Untuk mengetahui petunjuk penginstalan, lihat Menyiapkan lingkungan pengembangan Java.
Pastikan setiap instance Compute Engine memiliki akun layanan yang dilampirkan kepadanya, meskipun akun layanan tidak memiliki izin. Akun layanan ini digunakan untuk merepresentasikan instance Compute Engine dalam proses handshake Application Layer Transport Security (ALTS) dan diperlukan untuk konektivitas langsung.
Perbarui project Anda untuk menggunakan BOM
Untuk memastikan bahwa project Anda memiliki versi library klien yang kompatibel, gunakan versi yang ditentukan dalam Bill of Materials (BOM) libraryGoogle Cloud . Google Cloud Untuk mengupdate project Anda agar menggunakan BOM, gunakan salah satu metode berikut:
Cloud Storage Mandiri
Jika Anda menggunakan library klien Cloud Storage secara independen (tanpa library Google Cloud lainnya), gunakan BOM khusus library klien Cloud Storage.
Maven
Impor BOM di bagian dependencyManagement
pada file pom.xml
Anda.
Contoh berikut menunjukkan cara mengimpor BOM dan menyertakan artefak
google-cloud-storage
.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage-bom</artifactId>
<version>2.43.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
</dependency>
</dependencies>
Gradle
Tambahkan dependensi platform pada com.google.cloud:google-cloud-storage-bom
:
implementation platform('com.google.cloud:google-cloud-storage-bom:2.43.1')
implementation 'com.google.cloud:google-cloud-storage'
Cloud Storage dengan library Google Cloud lainnya
Jika Anda menggunakan library klien Cloud Storage bersama dengan library Google Cloud lainnya, gunakan BOM library klien Google Cloud .
Maven
Impor BOM di bagian dependencyManagement
pada file pom.xml
Anda.
Contoh berikut menunjukkan cara mengimpor BOM dan menyertakan artefak
libraries-bom
.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>libraries-bom</artifactId>
<version>26.48.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
</dependency>
</dependencies>
Gradle
Tambahkan dependensi platform pada com.google.cloud:libraries-bom
:
implementation platform('com.google.cloud:libraries-bom:26.48.0')
implementation 'com.google.cloud:google-cloud-storage'
Membuat klien gRPC
Contoh berikut menggunakan builder yang berfokus pada gRPC. Klien Java gRPC otomatis menggunakan konektivitas langsung saat mendeteksi bahwa aplikasi berjalan di Google Cloud.
Go
Sebelum memulai
Pastikan Anda menggunakan library klien Go Cloud Storage versi 1.46.0 atau yang lebih baru.
Pastikan setiap instance Compute Engine memiliki akun layanan yang dilampirkan kepadanya, meskipun akun layanan tidak memiliki izin. Akun layanan ini digunakan untuk merepresentasikan instance Compute Engine dalam proses handshake Application Layer Transport Security (ALTS) dan diperlukan untuk konektivitas langsung.
Membuat klien gRPC
Untuk menggunakan klien, Anda perlu memanggil konstruktor NewGRPCClient
di
aplikasi, bukan NewClient
.
Library klien Go secara otomatis menggunakan konektivitas langsung saat mendeteksi bahwa aplikasi berjalan di Google Cloud.
Untuk mengetahui informasi tentang cara menggunakan klien gRPC, lihat gRPC API.
Mengonfigurasi Kontrol Layanan VPC
Jika Anda menggunakan Virtual Private Cloud dengan alamat IP virtual yang dibatasi (Kontrol Layanan VPC) untuk meningkatkan keamanan jaringan, Anda harus memperbarui aturan firewall untuk mengaktifkan konektivitas langsung agar performa antara instance Compute Engine dan bucket Cloud Storage Anda optimal.
Untuk melakukannya, tambahkan aturan firewall daftar yang diizinkan untuk mengizinkan traffic di semua port untuk blok CIDR berikut:
- Untuk traffic IPv4:
34.126.0.0/18
- Untuk traffic IPv6:
2001:4860:8040::/42
Selain aturan sebelumnya, pertahankan aturan daftar yang diizinkan yang ada untuk
199.36.153.4/30
.
Jika Anda memiliki batasan pada modifikasi aturan firewall dan Anda tidak dapat memperbaruinya, Anda dapat memaksa traffic untuk menghindari konektivitas langsung dengan menggunakan storage.googleapis.com
sebagai endpoint Cloud Storage, bukan google-c2p://storage.googleapis.com
.
Misalnya, untuk penggunaan C++, gunakan .set<google::cloud::EndpointOption>(storage.googleapis.com)
, bukan google-c2p:///storage.googleapis.com
.
Mengaktifkan kemampuan observasi untuk permintaan terkait gRPC
Anda dapat mengonfigurasi library klien Cloud Storage untuk menghasilkan metrik terkait gRPC di Cloud Monitoring. Metrik terkait gRPC dapat membantu Anda melakukan hal berikut:
Pantau dan optimalkan performa permintaan gRPC ke Cloud Storage.
Memecahkan masalah dan melakukan debug.
Dapatkan insight tentang penggunaan dan perilaku aplikasi Anda.
Untuk mengetahui informasi tentang cara membuat metrik terkait gRPC, lihat Menggunakan metrik sisi klien.
Jika pengumpulan metrik tidak diperlukan untuk kasus penggunaan Anda, Anda dapat memilih untuk tidak ikut pengumpulan metrik. Untuk mengetahui petunjuknya, lihat Memilih tidak ikut serta dalam metrik sisi klien.
Batasan
Permintaan IPv6 tidak dapat dikirim melalui jaringan lama.
Konektivitas langsung tidak didukung saat menggunakan versi GKE berikut pada cluster khusus IPv4:
- 1.28, 1.28.0-gke.100 atau yang lebih baru hingga 1.28.5-gke.1199000
- 1.27, 1.27.4-gke.1900 atau yang lebih baru
- 1.26, 1.26.10-gke.1238000 atau yang lebih baru
- 1.25, 1.25.15-gke.1045000 atau yang lebih baru
gRPC tidak mendukung metode
notifications
,hmacKeys
, danserviceAccount
.Opsi konstruktor klien khusus HTTP, seperti WithHTTPClient, tidak didukung untuk library klien Go.
Langkah berikutnya
- Menghubungkan ke konektor Cloud Storage di Dataproc menggunakan gRPC.
- Aktifkan gRPC di konektor I/O Apache Beam di Dataflow.