A conetividade direta é uma solução de ligação que permite ligações de rede gRPC diretas, autenticadas e de alto desempenho entre uma biblioteca de cliente e o Cloud Storage, o que resulta numa latência e num custo geral de ligação mais baixos. Google Cloud Quando usa o gRPC para se ligar ao Google Cloud usando a conetividade direta, os pedidos iniciados através das bibliotecas cliente Google Cloud suportadas são encaminhados diretamente para o Cloud Storage, ignorando os front-ends da Google (GFEs).
A conetividade direta só está disponível para pedidos feitos a partir de máquinas virtuais (VMs) do Compute Engine.
Requisitos para a conetividade direta
A conetividade direta está ativada por predefinição quando usa bibliotecas cliente do Cloud Storage suportadas para se ligar ao Cloud Storage, mas só fica disponível se forem cumpridas todas as seguintes condições:
As VMs do Compute Engine que interagem com o Cloud Storage têm de ter uma conta de serviço anexada, mesmo que a conta de serviço não tenha autorizações. A conta de serviço é usada para representar a VM do Compute Engine no processo de sincronização do Application Layer Transport Security.
As VMs do Compute Engine que interagem com um contentor do Cloud Storage têm de estar localizadas juntamente com o contentor. Por exemplo, se o contentor estiver em
us-central1
, a VM pode estar localizada emus-central1-a
. Se o contentor estiver numa multirregião ou numa região dupla, a VM tem de estar localizada numa região que faça parte da multirregião ou da região dupla. Por exemplo, se um contentor estiver localizado naus
multirregião, a VM pode estar localizada emus-east4-c
.Para mais informações acerca das localizações dos contentores, consulte o artigo Localizações.
Os seus trajetos e regras de firewall permitem que o tráfego IPv4 alcance
34.126.0.0/18
e o tráfego IPv6 alcance2001:4860:8040::/42
. Além disso, o tráfego tem de ter autorização para alcançar os pontos finaisstorage.googleapis.com:443
edirectpath-pa.googleapis.com:443
.Para saber como verificar se é possível estabelecer uma ligação a estes pontos finais, consulte o artigo Verifique as configurações de rede. Para obter informações sobre a configuração de trajetos, consulte o artigo Configure trajetos.
As bibliotecas cliente do Cloud Storage têm requisitos de credenciais específicos para autenticar aplicações no Cloud Storage e ter a conetividade direta disponível:
A biblioteca de cliente Java requer credenciais da conta de utilizador ou credenciais da conta de serviço.
A biblioteca de cliente C++ requer credenciais da conta de serviço.
A biblioteca de cliente Go requer credenciais da conta de serviço. As versões anteriores a 1.52.0 requerem as credenciais da conta de serviço predefinida da VM que acede ao seu contentor.
Para ver o nome da conta que a sua VM usa para se autenticar no Cloud Storage, use o comando
gcloud auth list
:gcloud auth list --filter=status:ACTIVE --format="value(account)"
Se estiver a usar a biblioteca de cliente Go e precisar de verificar se a conta usada para a autenticação corresponde à conta de serviço predefinida da sua VM, use o comando
gcloud compute instances describe
: Googlegcloud compute instances describe INSTANCE_NAME --format='yaml(serviceAccounts)'
Substitua
INSTANCE_NAME
pelo nome da sua instância.Para mais informações sobre a autenticação, consulte a Vista geral da Google gestão de identidades.
Verifique a conetividade através da CLI do Google Cloud
A CLI Google Cloud pode testar os diagnósticos de conetividade direta no seu contentor emitindo uma chamada GET
para o contentor através de gcloud storage buckets describe gs://example-bucket
. Esta secção descreve como realizar um teste de diagnóstico para a conetividade direta através da CLI do Google Cloud.
Antes de começar
Certifique-se de que tem a
storage.buckets.get
autorização de IAM no contentor, que pode ser concedida através da função Leitor do contentor antigo do Storage (roles/storage.legacyBucketReader
).O comando
gcloud alpha storage diagnose
só está disponível na versão 531.0.0 ou posterior da CLI gcloud. Para usar este comando, recomendamos que atualize para a versão mais recente da CLI Google Cloud.
Execute o diagnóstico
Para verificar se a conetividade direta está disponível, execute o comando
gcloud alpha storage diagnose
com o argumento
--test-type=DIRECT_CONNECTIVITY
:
gcloud alpha storage diagnose --test-type=DIRECT_CONNECTIVITY gs://BUCKET_NAME
Substitua o seguinte:
BUCKET_NAME
: o nome do seu contentor. Por exemplo,my-bucket
.
Se for possível estabelecer uma ligação, recebe uma resposta semelhante à seguinte:
Using my-bucket bucket for the diagnostic tests.
Bucket location : US
Bucket storage class : STANDARD
Running diagnostic: Direct Connectivity Diagnostic...
WARNING: This diagnostic is experimental. The output may change, and checks may be added or removed at any time. Please do not rely on the diagnostic being present.
Finished running diagnostic: Direct Connectivity Diagnostic
Generating diagnostic report...
NAME
Direct Connectivity Diagnostic
┌────────────────────────────┬─────────────────────────────────────────────────────────────────────────┬──────────┐
│ NAME │ PAYLOAD_DESCRIPTION │ RESULT │
├────────────────────────────┼─────────────────────────────────────────────────────────────────────────┼──────────┤
│ Direct Connectivity Call │ Able to get bucket metadata using Direct Connectivity network path. │ Success. │
└────────────────────────────┴─────────────────────────────────────────────────────────────────────────┴──────────┘
Verifique as configurações de rede
Se encontrar um erro Unable to connect to Traffic Director
ao verificar a conetividade direta através da CLI do Google Cloud, use as seguintes instruções para garantir que as configurações de rede permitem a passagem de tráfego das VMs para os pontos finais necessários.
A conetividade direta requer um serviço alojado em directpath-pa.googleapis.com:443
e em storage.googleapis.com:443
. Para verificar se é possível estabelecer uma ligação ao serviço, faça uma chamada curl para directpath-pa.googleapis.com:443
ou storage.googleapis.com:443
. Por exemplo:
curl directpath-pa.googleapis.com:443
Se for possível estabelecer uma ligação, recebe uma resposta vazia sem erros:
curl: (52) Empty reply from server
Se não for possível estabelecer uma ligação, recebe um erro semelhante ao seguinte:
curl: (56) Recv failure: Connection reset by peer
Limitações
A conetividade direta não suporta o Private Service Connect.