gRPC è un framework RPC universale open source ad alte prestazioni sviluppato da Google che puoi utilizzare per definire i tuoi servizi utilizzando i buffer di protocollo. Puoi utilizzare gRPC per interagire con Cloud Storage. gRPC utilizza la connettività diretta tra le istanze Compute Engine e i bucket Cloud Storage, bypassando i Google Front End (GFE).
Puoi connetterti a Cloud Storage utilizzando gRPC tramite i seguenti client supportati:
Connettore Cloud Storage su Managed Service per Apache Spark.
Connettore I/O Apache Beam su Dataflow per le richieste di lettura e scrittura.
Librerie client Cloud Storage C++, Go e Java. Per istruzioni su come attivare gRPC per queste librerie client, consulta Attivare gRPC nella libreria client.
Cloud Storage FUSE. Puoi utilizzare Cloud Storage FUSE come client specificando
grpcnel campoclient-protocolutilizzando un file di configurazione di Cloud Storage FUSE o l'opzione--client-protocolutilizzando Cloud Storage FUSE CLI. Per utilizzare gRPC con Cloud Storage FUSE, ti consigliamo di utilizzare le versioni di Cloud Storage FUSE 2.10.0 o successive.
Attivare gRPC in una libreria client
C++
Prima di iniziare
Assicurati di aver installato le seguenti versioni:
gRPC versione 1.65.1 o successive
Libreria client C++ versione v2.30.0 o successive
C++ versione 14 o successive
Per istruzioni sull'installazione, consulta Configurazione di un ambiente di sviluppo C++.
Assicurati che a ogni istanza Compute Engine sia collegato un service account, anche se il account di servizio non ha autorizzazioni. Questo account di servizio viene utilizzato per rappresentare l'istanza Compute Engine nel processo di handshake Application Layer Transport Security (ALTS) ed è necessario per la connettività diretta.
Configurare la libreria client C++
Crea un client gRPC utilizzando
gcs::MakeGrpcClient():namespace gcs = google::cloud::storage; void App() { auto client = gcs::MakeGrpcClient(); // application code }La libreria client C++ utilizza automaticamente la connettività diretta quando rileva che l'applicazione è in esecuzione su Google Cloud.
Per configurare la libreria client C++ in modo che utilizzi gRPC, attiva il client gRPC Cloud Storage per aggiornare la configurazione del sistema di compilazione per CMake o Bazel.
CMake
Attiva il plug-in client gRPC Cloud Storage in fase di compilazione.
cmake -DGOOGLE_CLOUD_CPP_ENABLE=storage_grpc [other options here]Nel codebase, per il comando
target_link_libraries(), sostituiscigoogle-cloud-cpp::storagecongoogle-cloud-cpp::storage_grpcAd esempio, il programma di avvio rapido per gRPC utilizza il seguente codice:
add_executable(quickstart_grpc quickstart_grpc.cc) target_link_libraries(quickstart_grpc google-cloud-cpp::storage_grpc)
Bazel
Sostituisci le dipendenze da
@google_cloud_cpp//:storagea@google_cloud_cpp//:storage_grpc.Ad esempio, il programma di avvio rapido per gRPC utilizza il seguente codice:
cc_binary( name = "quickstart", srcs = [ "quickstart.cc", ], deps = [ "@com_github_googleapis_google_cloud_cpp//:storage_grpc", ], )
Java
Prima di iniziare
Assicurati di aver installato le seguenti versioni:
Librerie client Java:
com.google.cloud:google-cloud-storage:2.43.1o successive.com.google.cloud:libraries-bom:26.48o successive.
Java 8 o versioni successive
Per istruzioni sull'installazione, consulta Configurazione di un ambiente di sviluppo Java.
Assicurati che a ogni istanza Compute Engine sia collegato un service account, anche se il account di servizio non ha autorizzazioni. Questo account di servizio viene utilizzato per rappresentare l'istanza Compute Engine nel processo di handshake Application Layer Transport Security (ALTS) ed è necessario per la connettività diretta.
Aggiornare il progetto per utilizzare la BOM
Per assicurarti che i tuoi progetti abbiano versioni compatibili delle librerie client, utilizza le versioni specificate nella Google Cloud distinta materiali (BOM) delle librerie. Google Cloud Per aggiornare il progetto in modo che utilizzi la BOM, utilizza uno dei seguenti metodi:
Cloud Storage autonomo
Se utilizzi la libreria client Cloud Storage in modo indipendente (senza altre Google Cloud librerie), utilizza la BOM specifica della libreria client Cloud Storage.
Maven
Importa la BOM nella sezione dependencyManagement del file pom.xml.
L'esempio seguente mostra come importare la BOM e includere l'artefatto 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
Aggiungi una dipendenza della piattaforma su 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 con altre Google Cloud librerie
Se utilizzi la libreria client Cloud Storage insieme ad altre Google Cloud librerie, utilizza la Google Cloud BOM delle librerie client.
Maven
Importa la BOM nella sezione dependencyManagement del file pom.xml.
L'esempio seguente mostra come importare la BOM e includere l'artefatto 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
Aggiungi una dipendenza della piattaforma su com.google.cloud:libraries-bom:
implementation platform('com.google.cloud:libraries-bom:26.48.0')
implementation 'com.google.cloud:google-cloud-storage'
Creare un client gRPC
L'esempio seguente utilizza un builder incentrato su gRPC. Il client Java gRPC utilizza automaticamente la connettività diretta quando rileva che l'applicazione è in esecuzione su Google Cloud.
Vai
Prima di iniziare
Assicurati di utilizzare la libreria client Cloud Storage Go versione 1.46.0 o successive.
Assicurati che a ogni istanza Compute Engine sia collegato un service account, anche se il account di servizio non ha autorizzazioni. Questo account di servizio viene utilizzato per rappresentare l'istanza Compute Engine nel processo di handshake Application Layer Transport Security (ALTS) ed è necessario per la connettività diretta.
Creare un client gRPC
Per utilizzare il client, devi chiamare il NewGRPCClient costruttore nella
tua applicazione anziché NewClient.
La libreria client Go utilizza automaticamente la connettività diretta quando rileva che l'applicazione è in esecuzione su Google Cloud.
Per informazioni su come utilizzare un client gRPC, consulta API gRPC.
Configurare i Controlli di servizio VPC
Se utilizzi Virtual Private Cloud con indirizzi IP virtuali limitati (Controlli di servizio VPC) per migliorare la sicurezza della tua rete, devi aggiornare le regole firewall per abilitare la connettività diretta per prestazioni ottimali tra l'istanza Compute Engine e il bucket Cloud Storage.
A questo scopo, aggiungi regole firewall di allowlist per consentire il traffico su tutte le porte per i seguenti blocchi CIDR:
- Per il traffico IPv4:
34.126.0.0/18 - Per il traffico IPv6:
2001:4860:8040::/42
Oltre alle regole precedenti, conserva la regola di lista consentita esistente per 199.36.153.4/30.
Se hai limitazioni alle modifiche delle regole firewall e non puoi aggiornare
le, puoi forzare il traffico a evitare la connettività diretta utilizzando
storage.googleapis.com come endpoint Cloud Storage
anziché google-c2p://storage.googleapis.com.
Ad esempio, per l'utilizzo di C++, utilizza .set<google::cloud::EndpointOption>(storage.googleapis.com)
anziché google-c2p:///storage.googleapis.com.
Abilitare l'osservabilità per le richieste correlate a gRPC
Puoi configurare le librerie client Cloud Storage per generare metriche correlate a gRPC in Cloud Monitoring. Le metriche correlate a gRPC possono aiutarti a:
Monitorare e ottimizzare le prestazioni delle richieste gRPC a Cloud Storage.
Risolvere i problemi ed eseguire il debug.
Ottenere informazioni dettagliate sull'utilizzo e sul comportamento della tua applicazione.
Per informazioni su come generare metriche correlate a gRPC, consulta Utilizzare le metriche lato client.
Se la raccolta delle metriche non è necessaria per il tuo caso d'uso, puoi scegliere di disattivare la raccolta delle metriche. Per istruzioni, consulta Disattivare le metriche lato client.
Limitazioni
Le richieste IPv6 non possono essere inviate tramite reti legacy.
La connettività diretta non è supportata quando si utilizzano le seguenti versioni di GKE su cluster solo IPv4:
- 1.28, 1.28.0-gke.100 o versioni successive fino a 1.28.5-gke.1199000
- 1.27, 1.27.4-gke.1900 o versioni successive
- 1.26, 1.26.10-gke.1238000 o versioni successive
- 1.25, 1.25.15-gke.1045000 o versioni successive
gRPC non supporta i metodi
notifications,hmacKeyseserviceAccount.Le opzioni del costruttore client specifiche per HTTP, come WithHTTPClient, non sono supportate per la libreria client Go.
L'API gRPC non è supportata con gli endpoint regionali.
Risolvere i problemi di connettività diretta
Per scoprire come verificare la connettività diretta e risolvere i problemi quando non è disponibile, consulta Connettività diretta.
Passaggi successivi
- Connettiti al connettore Cloud Storage su Managed Service per Apache Spark utilizzando gRPC.
- Attiva gRPC sul connettore I/O Apache Beam su Dataflow.