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 (GFEs).
Anda dapat terhubung ke Cloud Storage menggunakan gRPC melalui klien yang didukung berikut:
Konektor Cloud Storage di Managed Service untuk Apache Spark.
Konektor I/O Apache Beam di Dataflow untuk permintaan baca dan tulis.
Library klien Cloud Storage C++, Go, dan Java. Untuk mengetahui petunjuk 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
grpcdi kolomclient-protocolmenggunakan file konfigurasi Cloud Storage FUSE atau opsi--client-protocolmenggunakan Cloud Storage FUSE 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 mengetahui petunjuk penginstalan, lihat Menyiapkan lingkungan pengembangan C++.
Pastikan setiap instance Compute Engine memiliki akun layanan yang terlampir padanya, 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++ 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::storagedengangoogle-cloud-cpp::storage_grpcMisalnya, 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//:storageke@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.1atau yang lebih baru.com.google.cloud:libraries-bom:26.48atau 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 terlampir padanya, 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.
Memperbarui project untuk menggunakan BOM
Untuk memastikan project Anda memiliki versi library klien yang kompatibel, gunakan versi yang ditentukan dalam Google Cloud Bill of Materials (BOM) library. Google Cloud Untuk memperbarui project agar menggunakan BOM, gunakan salah satu metode berikut:
Cloud Storage mandiri
Jika Anda menggunakan library klien Cloud Storage secara independen (tanpa library Google Cloud lain), gunakan BOM khusus library klien Cloud Storage.
Maven
Impor BOM di bagian dependencyManagement 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 Google Cloud BOM library klien.
Maven
Impor BOM di bagian dependencyManagement 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 berpusat 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 Cloud Storage Go versi 1.46.0 atau yang lebih baru.
Pastikan setiap instance Compute Engine memiliki akun layanan yang terlampir padanya, 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 harus memanggil konstruktor NewGRPCClient di
aplikasi, bukan NewClient.
Library klien Go 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 terbatas (Kontrol Layanan VPC) untuk meningkatkan keamanan jaringan, Anda harus memperbarui aturan firewall untuk mengaktifkan konektivitas langsung demi performa optimal antara instance Compute Engine dan bucket Cloud Storage.
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 tidak dapat memperbarui
nya, 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)
dan bukan google-c2p:///storage.googleapis.com.
Mengaktifkan observabilitas untuk permintaan terkait gRPC
Anda dapat mengonfigurasi library klien Cloud Storage untuk membuat metrik terkait gRPC di Cloud Monitoring. Metrik terkait gRPC dapat membantu Anda melakukan hal berikut:
Memantau dan mengoptimalkan performa permintaan gRPC ke Cloud Storage.
Memecahkan masalah dan men-debug masalah.
Mendapatkan 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 serta dalam pengumpulan metrik. Untuk mengetahui petunjuknya, lihat 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.
gRPC API tidak didukung dengan endpoint regional.
Memecahkan masalah konektivitas langsung
Untuk mempelajari cara memeriksa konektivitas langsung dan memecahkan masalah saat konektivitas langsung tidak tersedia, lihat Konektivitas langsung.
Langkah berikutnya
- Terhubung ke konektor Cloud Storage di Managed Service untuk Apache Spark menggunakan gRPC.
- Mengaktifkan gRPC di konektor I/O Apache Beam di Dataflow.