1. Introdução
O Private Service Connect (PSC) é um recurso da rede do Google Cloud que permite que consumidores acessem serviços gerenciados de maneira particular na rede VPC deles. Da mesma forma, ele permite que produtores do serviço gerenciado hospedem esses serviços em redes VPC separadas e ofereçam uma conexão particular aos consumidores.
O Cloud Run é uma plataforma de computação gerenciada para a execução de contêineres diretamente na infraestrutura escalonável do Google.
O Cloud Run pode ser consumido como um serviço PSC de duas maneiras diferentes.
- Usando o PSC para APIs do Google chamando o Cloud Run pelo URL run.app fornecido
- Por um serviço de produtor de PSC personalizado em que o Cloud Run é exposto por um anexo de serviço em um balanceador de carga de aplicativo interno com um NEG sem servidor.
Neste codelab, vamos mostrar como configurar o Cloud Run com PSC para esses dois cenários.
O que você vai aprender
- Como implantar apps básicos no Cloud Run
- Controles de entrada e saída do Cloud Run
- Como implantar o Cloud Run por um balanceador de carga de aplicativo interno com um NEG sem servidor
- Como configurar um serviço de produtor do PSC usando um anexo de serviço
- Como implantar endpoints do PSC
O que é necessário
- Projeto do Google Cloud com permissões de proprietário
2. Topologia do codelab
Neste codelab, você vai implantar dois serviços do Cloud Run que serão acessíveis pelo PSC: primeiro como um serviço publicado personalizado com PSC e, em segundo lugar, como PSC para APIs do Google. Você vai criar duas VPCs, uma VPC de consumidor e uma VPC de produtor. Primeiro, você vai implantar o serviço Hello World do Cloud Run e torná-lo acessível por um balanceador de carga de aplicativo interno regional e um NEG sem servidor na VPC do produtor. Verifique se o serviço está funcionando pelo balanceador de carga usando o cliente produtor antes de configurar o serviço do Cloud Run para ser acessível como um serviço de produtor PSC usando um anexo de serviço.
Na VPC do consumidor, você vai implantar um endpoint do PSC que aponta para o anexo de serviço do Cloud Run que configuramos na VPC do produtor. Em seguida, você vai verificar se o serviço pode ser acessado pelo PSC em um cliente do consumidor na VPC do consumidor. Em seguida, você vai criar outro serviço do Cloud Run que chama o endpoint do PSC. Por fim, você vai implantar um endpoint do PSC para APIs do Google. No cliente do consumidor, você vai acessar o Cloud Run pelo URL fornecido, que vai usar o PSC para o endpoint das APIs do Google.
3. Configuração e requisitos
Configuração de ambiente autoguiada
- Faça login no Console do Google Cloud e crie um novo projeto ou reutilize um existente. Crie uma conta do Gmail ou do Google Workspace, se ainda não tiver uma.
- O Nome do projeto é o nome de exibição para os participantes do projeto. É uma string de caracteres não usada pelas APIs do Google e pode ser atualizada quando você quiser.
- O ID do projeto precisa ser exclusivo em todos os projetos do Google Cloud e não pode ser mudado após a definição. O console do Cloud gera automaticamente uma string exclusiva. Em geral, não importa o que seja. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, normalmente identificado como
PROJECT_ID
. Se você não gostar do ID gerado, crie outro aleatório. Se preferir, teste o seu e confira se ele está disponível. Ele não pode ser mudado após essa etapa e permanece durante o projeto. - Para sua informação, há um terceiro valor, um Número do projeto, que algumas APIs usam. Saiba mais sobre esses três valores na documentação.
- Em seguida, ative o faturamento no console do Cloud para usar os recursos/APIs do Cloud. A execução deste codelab não vai ser muito cara, se tiver algum custo. Para encerrar os recursos e evitar cobranças além deste tutorial, exclua os recursos criados ou exclua o projeto. Novos usuários do Google Cloud estão qualificados para o programa de US$ 300 de avaliação sem custos.
Inicie o Cloud Shell
Embora o Google Cloud e o Spanner possam ser operados remotamente do seu laptop, neste codelab usaremos o Google Cloud Shell, um ambiente de linha de comando executado no Cloud.
No Console do Google Cloud, clique no ícone do Cloud Shell na barra de ferramentas superior à direita:
O provisionamento e a conexão com o ambiente levarão apenas alguns instantes para serem concluídos: Quando o processamento for concluído, você verá algo como:
Essa máquina virtual contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Neste codelab, todo o trabalho pode ser feito com um navegador. Você não precisa instalar nada.
4. Antes de começar
Ativar APIs
No Cloud Shell, verifique se o projeto está configurado e configure as variáveis.
gcloud auth login gcloud config list project gcloud config set project [YOUR-PROJECT-ID] export projectid=[YOUR-PROJECT-ID] export projectnum=[YOUR-PROJECT-NUM] export region=us-central1 export zone=us-central1-a echo $projectid echo $projectnum echo $region echo $zone
Ativar todos os serviços necessários
gcloud services enable compute.googleapis.com gcloud services enable run.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable dns.googleapis.com gcloud services enable cloudbuild.googleapis.com gcloud services enable cloudresourcemanager.googleapis.com
5. Criar rede VPC do produtor
Rede VPC
No Cloud Shell
gcloud compute networks create producer-vpc --subnet-mode custom
Criar sub-redes
No Cloud Shell
gcloud compute networks subnets create producer-subnet \ --network=producer-vpc \ --range=10.0.0.0/28 \ --region=$region gcloud compute networks subnets create lb-proxy-subnet \ --network=producer-vpc \ --range=10.100.100.0/24 \ --region=$region \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE gcloud compute networks subnets create psc-nat-subnet \ --network=producer-vpc \ --region=$region \ --range=10.100.101.0/24 \ --purpose=PRIVATE_SERVICE_CONNECT
A sub-rede do PSC será associada ao anexo de serviço PSC para fins de conversão de endereços de rede. Para casos de uso de produção, essa sub-rede precisa ter o tamanho adequado para oferecer suporte ao número de endpoints conectados. Consulte a documentação sobre o dimensionamento de sub-redes do PSC NAT para mais informações.
Criar políticas e regras de firewall de rede do produtor
No Cloud Shell
gcloud compute network-firewall-policies create producer-vpc-policy --global gcloud compute network-firewall-policies associations create \ --firewall-policy producer-vpc-policy \ --network producer-vpc \ --name network-producer-vpc \ --global-firewall-policy
Para permitir que o IAP se conecte às suas instâncias de VM, crie uma regra de firewall que:
- Aplica-se a todas as instâncias da VM que você quer que sejam acessíveis usando o IAP.
- Permite o tráfego de entrada do intervalo de IP 35.235.240.0/20. Esse intervalo contém todos os endereços IP que o IAP usa para o encaminhamento de TCP.
No Cloud Shell
gcloud compute network-firewall-policies rules create 1000 \ --action ALLOW \ --firewall-policy producer-vpc-policy \ --description "SSH with IAP" \ --direction INGRESS \ --src-ip-ranges 35.235.240.0/20 \ --layer4-configs tcp:22 \ --global-firewall-policy
6. Criar o Hello World do Cloud Run
Siga as instruções aqui para criar um aplicativo de exemplo em Python. Execute estes comandos no Cloud Shell. Depois de concluir a etapa 3 em "Programar o aplicativo de exemplo", volte a este codelab e siga as instruções abaixo para implantar no Cloud Run a partir do código-fonte.
Antes de implantar o serviço do Cloud Run, execute o comando a seguir para garantir que a conta de serviço de computação padrão tenha as permissões adequadas.
No Cloud Shell
gcloud projects add-iam-policy-binding $projectid --member=serviceAccount:$projectnum-compute@developer.gserviceaccount.com --role=roles/run.builder
OBSERVAÇÃO:neste codelab, presumimos que sua organização não tenha ativado a política organizacional de compartilhamento restrito de domínio. Se essa política estiver ativada, você terá que realizar etapas extras para implantar o Cloud Run com autenticação, configurar uma tela de consentimento do OAuth e configurar o IAP para o back-end do balanceador de carga. Recomendamos que todas essas etapas de configuração sejam seguidas em um ambiente de produção.
No Cloud Shell
gcloud beta run deploy helloworld \ --source . \ --platform=managed \ --ingress=internal \ --allow-unauthenticated \ --no-default-url \ --region=$region
O uso da flag --no-default-url
implanta seu serviço do Cloud Run sem o URL run.app fornecido. Não vamos usar o URL para esse serviço. No momento da publicação deste codelab, esse recurso ainda está em pré-lançamento.
Antes de continuar, volte para o diretório principal do Cloud Shell.
No Cloud Shell
cd ..
7. Expor o Hello World do Cloud Run por um balanceador de carga de aplicativo interno
Reserve um endereço IP interno estático para a regra de encaminhamento do balanceador de carga.
No Cloud Shell, faça o seguinte:
gcloud compute addresses create cloudrun-ip \ --region=$region \ --subnet=producer-subnet gcloud compute addresses describe cloudrun-ip --region=$region
Exemplo de saída
address: 10.0.1.31 addressType: INTERNAL creationTimestamp: '2025-03-17T09:04:06.620-07:00' description: '' id: 'xxxx' kind: compute#address labelFingerprint: xxxx name: cloudrun-ip networkTier: PREMIUM purpose: GCE_ENDPOINT region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/addresses/cloudrun-ip status: RESERVED subnetwork: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/subnetworks/producer-subnet
Anote o endereço IP que você acabou de criar.
Criar o balanceador de carga de aplicativo interno regional
No Cloud Shell, faça o seguinte:
gcloud compute network-endpoint-groups create cloudrun-producer-neg \ --region=$region \ --network-endpoint-type=serverless \ --cloud-run-service=helloworld gcloud compute backend-services create cloudrun-producer-bes \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --region=$region gcloud compute backend-services add-backend cloudrun-producer-bes \ --region=$region \ --network-endpoint-group=cloudrun-producer-neg \ --network-endpoint-group-region=$region gcloud compute url-maps create producer-urlmap \ --default-service=cloudrun-producer-bes \ --region=$region gcloud compute target-http-proxies create producer-http-proxy \ --url-map=producer-urlmap \ --region=$region
No Cloud Shell, faça o seguinte:
gcloud compute forwarding-rules create cloudrun-fr \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=producer-vpc \ --subnet=producer-subnet \ --address=cloudrun-ip \ --target-http-proxy=producer-http-proxy \ --target-http-proxy-region=$region \ --region=$region \ --ports=80 \ --allow-global-access
8. Testar o Hello World do Cloud Run exposto pelo balanceador de carga
Criar uma VM de teste
No Cloud Shell
gcloud compute instances create producer-client \ --zone=$zone \ --subnet=producer-subnet \ --no-address \ --scopes=cloud-platform
No Cloud Shell, faça o seguinte:
gcloud compute ssh \ --zone "$zone" "producer-client" \ --tunnel-through-iap \ --project $projectid
Substitua <loadbalancer-ip> pelo endereço IP que você criou anteriormente (por exemplo, 10.0.0.2).
Teste Hello World
Na VM de produtor
curl <loadbalancer-ip>
Resposta esperada
Hello World!
Saia da VM.
Na VM de produtor
exit
9. Criar anexo de serviço
No Cloud Shell
gcloud compute service-attachments create cloudrun-attachment \ --region=$region \ --producer-forwarding-rule=cloudrun-fr \ --connection-preference=ACCEPT_MANUAL \ --consumer-accept-list=$projectid=5 \ --nat-subnets=psc-nat-subnet
Em seguida, extraia e anote o URI do anexo de serviço para configurar o endpoint do PSC no ambiente do consumidor.
No Cloud Shell, faça o seguinte:
gcloud compute service-attachments describe cloudrun-attachment --region=$region
Exemplo de resultado esperado
connectionPreference: ACCEPT_MANUAL consumerAcceptLists: - connectionLimit: 5 projectIdOrNum: $projectid creationTimestamp: '2025-03-10T08:49:08.134-07:00' description: '' enableProxyProtocol: false fingerprint: -F0Kpe3Fi8o= id: '2679595584727463707' kind: compute#serviceAttachment name: cloudrun-attachment natSubnets: - https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/subnetworks/psc-nat-subnet pscServiceAttachmentId: high: 'xxxxx' low: 'xxxx' reconcileConnections: false region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/serviceAttachments/cloudrun-attachment targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$projectid/forwardingRules/cloudrun-fr
10. Criar uma rede VPC do consumidor
Rede VPC
No Cloud Shell
gcloud compute networks create consumer-vpc --subnet-mode custom
Criar sub-rede
No Cloud Shell
gcloud compute networks subnets create consumer-subnet \ --network=consumer-vpc \ --range=10.0.0.0/24 \ --region=$region \ --enable-private-ip-google-access gcloud compute networks subnets create cloudrun-egress \ --network=consumer-vpc \ --range=10.0.1.0/24 \ --region=$region \ --enable-private-ip-google-access
Criar o Cloud NAT
No Cloud Shell
gcloud compute routers create central-cr \ --network=consumer-vpc \ --region=$region gcloud compute routers nats create central-nat \ --router=central-cr \ --region=$region \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
Criar políticas e regras de firewall de rede para consumidores
Vamos criar outra política de firewall de rede para a consumer-vpc.
No Cloud Shell
gcloud compute network-firewall-policies create consumer-vpc-policy --global gcloud compute network-firewall-policies associations create --firewall-policy consumer-vpc-policy --network consumer-vpc --name network-consumer-vpc --global-firewall-policy gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy consumer-vpc-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
11. Criar um endpoint do PSC para o serviço Hello World do Cloud Run
Neste ponto, vamos criar um endpoint do PSC e conectá-lo ao serviço do Cloud Run que você expôs pelo anexo de serviço. Você vai usar o URI do anexo de serviço que anotou anteriormente nesta seção. Verifique se o formato do URI no comando gcloud corresponde ao seu URI.
Criar endpoint do PSC
No Cloud Shell
gcloud compute addresses create cloudrun-service-ip --region=$region --subnet=consumer-subnet --ip-version=IPV4 gcloud compute forwarding-rules create cloudrun-ep --region=$region --network=consumer-vpc --address=cloudrun-service-ip --target-service-attachment=projects/$projectid/regions/$region/serviceAttachments/cloudrun-attachment
Encontre o endereço IP do endpoint do PSC que você acabou de criar. Você vai usar o endereço IP na próxima etapa para testar o endpoint.
No Cloud Shell
gcloud compute addresses list --filter="name=cloudrun-service-ip"
Exemplo de resultado esperado
NAME: cloudrun-service-ip ADDRESS/RANGE: 10.0.0.2 TYPE: INTERNAL PURPOSE: GCE_ENDPOINT NETWORK: REGION: us-central1 SUBNET: consumer-subnet STATUS: IN_USE
12. Criar uma VM de cliente do consumidor e testar a conectividade ao endpoint
Criar uma VM de cliente do consumidor
No Cloud Shell
gcloud compute instances create consumer-client \ --zone=$zone \ --subnet=consumer-subnet \ --no-address \ --metadata startup-script='#! /bin/bash sudo apt-get update sudo apt-get install dnsutils -y'
Testar a conectividade
No Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Substitua <cloudrun-service-ip> pelo endereço IP real.
Da VM do cliente-consumidor
curl <cloudrun-service-ip>
Resposta esperada
Hello World!
Da VM do cliente-consumidor
exit
13. Criar serviço de loop do Cloud Run
Em seguida, vamos criar um serviço do Cloud Run que fará uma chamada privada de volta para a VPC do consumidor para chamar o serviço HelloWorld anterior do Cloud Run que foi exposto pelo PSC.
Siga as instruções "Criar o aplicativo de exemplo" aqui para criar um aplicativo de loop em PHP. Em vez de helloworld-php, nomeie o diretório como cloudrun-loop. Execute estes comandos no Cloud Shell. Na segunda etapa, use o código PHP abaixo no arquivo index.php. Volte ao codelab quando estiver tudo pronto para implantar no Cloud Run. Não siga as instruções da documentação para esta etapa.
Use este código para o arquivo index.php. Substitua <cloudrun-service-ip> pelo endereço IP do endpoint do PSC testado na etapa anterior.
No Cloud Shell
<?php if(!function_exists('curl_init')) { die('cURL not available!'); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://<cloudrun-service-ip>/'); curl_setopt($curl, CURLOPT_FAILONERROR, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($curl); if ($output === FALSE) { echo 'An error has occurred: ' . curl_error($curl) . PHP_EOL; } else { echo $output; } ?>
Estamos especificando uma rede e uma sub-rede nesta implantação do Cloud Run porque o tráfego do Cloud Run precisa sair de volta para a VPC para acessar o endpoint do PSC. Estamos direcionando o Cloud Run para usar a sub-rede cloudrun-egress para a saída VPC direta. Estamos direcionando todo o tráfego para sair pela sub-rede de saída direta da VPC de volta para a VPC.
No Cloud Shell
gcloud run deploy cloudrun-loop \ --source . \ --platform=managed \ --ingress=internal \ --allow-unauthenticated \ --vpc-egress=all-traffic \ --network=consumer-vpc \ --subnet=cloudrun-egress \ --region=$region
Quando o serviço do Cloud Run terminar a implantação, ele vai fornecer um URL do serviço no formato https://cloudrun-loop-<projectnum>.<region>.run.app. Anote esse URL, que será testado na próxima etapa.
14. Testar a conectividade com o CloudRun-Loop pelo URL do Cloud Run
No Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Substitua <Cloud-Run-ServiceURL> pelo URL do serviço que você anotou na etapa anterior.
Da VM do cliente-consumidor
curl <Cloud-Run-ServiceURL>
Resposta esperada
Hello World!
Esse resultado mostra que o serviço CloudRun-Loop está acionando o consumer-vpc para chamar o endpoint PSC conectado ao serviço Hello World do Cloud Run. No entanto, neste ponto, a VM do cliente consumidor está saindo para a Internet pelo Cloud NAT para fazer uma chamada para o URL público do Cloud Run. Podemos executar um comando dig no URL para mostrar que ele será resolvido em um endereço IP público.
Da VM do cliente-consumidor
dig <Cloud-Run-ServiceURL>
Exemplo de saída
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> https://cloudrun-loop-<projectnum>.<region>.run.app ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1938 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;https://cloudrun-loop-<projectnum>.<region>.run.app. IN A ;; ANSWER SECTION: https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 216.239.38.53 https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 216.239.36.53 https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 216.239.32.53 https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 216.239.34.53 ;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Tue Mar 11 19:05:36 UTC 2025 ;; MSG SIZE rcvd: 147
Podemos criar um PSC para o endpoint das APIs do Google para mudar essa resolução para particular e manter o tráfego fora da Internet pública.
Da VM do cliente-consumidor
exit
15. Criar um endpoint do PSC para APIs do Google
Esse endpoint do PSC é diferente do que criamos anteriormente. O PSC para APIs do Google aponta para um pacote de APIs do Google (todas as APIs ou as compatíveis com o VPC-SC). O endereço IP não é originado de uma sub-rede regional, mas é criado como um único endereço IP /32 global que não pode se sobrepor a nenhuma sub-rede VPC, sub-rede VPC pareada ou rotas híbridas.
No Cloud Shell
export pscgoogip=100.100.100.100 echo $pscgoogip gcloud compute addresses create psc-goog-ep-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=$pscgoogip \ --network=consumer-vpc
No Cloud Shell
gcloud compute forwarding-rules create psc4googapi \ --global \ --network=consumer-vpc \ --address=psc-goog-ep-ip \ --target-google-apis-bundle=all-apis
16. Criar uma zona particular do Cloud DNS para run.app
Quando um endpoint do PSC para APIs do Google é criado, uma zona DNS particular do Cloud Run é criada para todas as APIs que se enquadram no domínio googleapis.com. Como o Cloud Run usa o run.app, precisamos criar outra zona particular para mapear o run.app ao endpoint do PSC para as APIs do Google.
No Cloud Shell
gcloud dns managed-zones create "cloudrun" \ --dns-name=run.app \ --description="run.app psc resolution" \ --visibility=private \ --networks=consumer-vpc gcloud dns record-sets transaction start \ --zone="cloudrun" gcloud dns record-sets transaction add $pscgoogip \ --name=*.run.app \ --ttl=300 \ --type=A \ --zone="cloudrun" gcloud dns record-sets transaction execute \ --zone="cloudrun"
17. Testar a resolução de DNS particular
Vamos fazer login novamente na VM do cliente-consumidor e executar o comando dig novamente. Agora, o URL do Cloud Run vai ser resolvido no endpoint PSC para APIs do Google.
No Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Primeiro, vamos limpar o cache do DNS. Substitua <Cloud-Run-ServiceURL> pelo URL do serviço anotado anteriormente.
Da VM do cliente-consumidor
sudo resolvectl flush-caches curl <CloudRun-Loop-ServiceURL>
O curl ainda vai funcionar como antes.
Da VM do cliente-consumidor
curl <CloudRun-Loop-ServiceURL>
Resposta esperada
Hello World!
Da VM do cliente-consumidor
dig <CloudRun-Loop-ServiceURL>
O comando dig vai mostrar que o serviço do Cloud Run Loop agora está sendo resolvido para o endpoint do PSC das APIs do Google.
Exemplo de saída
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> https://cloudrun-loop-<projectnum>.<region>.run.app ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30179 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;https://cloudrun-loop-<projectnum>.<region>.run.app. IN A ;; ANSWER SECTION: https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 100.100.100.100 ;; Query time: 8 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Tue Mar 11 20:04:05 UTC 2025 ;; MSG SIZE rcvd: 99
SUCCESS!
18. Etapas de limpeza
Sair da instância da VM
exit
No Cloud Shell
gcloud dns record-sets delete *.run.app --zone="cloudrun" --type=A -q gcloud dns managed-zones delete "cloudrun" -q gcloud compute instances delete consumer-client --zone=$zone --project=$projectid -q gcloud compute forwarding-rules delete psc4googapi --global -q gcloud compute addresses delete psc-goog-ep-ip --global -q gcloud run services delete cloudrun-loop --region=$region -q gcloud artifacts docker images delete $region-docker.pkg.dev/$projectid/cloud-run-source-deploy/cloudrun-loop -q gcloud compute forwarding-rules delete cloudrun-ep --region=$region -q gcloud compute addresses delete cloudrun-service-ip --region=$region -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy consumer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy --name=network-consumer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q gcloud compute routers nats delete central-nat --router=central-cr --region=$region -q gcloud compute routers delete central-cr --region=$region -q gcloud compute networks subnets delete consumer-subnet --region $region -q
É possível que a execução dos dois comandos a seguir falhe com erros de "recurso em uso". Os documentos do Cloud Run indicam que, às vezes, o Cloud Run leva de uma a duas horas para liberar os recursos da sub-rede depois que o serviço do Cloud Run é excluído. Se a exclusão falhar, pule esses dois comandos e continue para a próxima seção. Depois de algum tempo, volte a esta seção para excluir.
No Cloud Shell
gcloud compute networks subnets delete cloudrun-egress --region $region -q gcloud compute networks delete consumer-vpc -q
No Cloud Shell
gcloud compute service-attachments delete cloudrun-attachment --region=$region -q gcloud compute instances delete producer-client --zone=$zone --project=$projectid -q gcloud compute forwarding-rules delete cloudrun-fr --region=$region -q gcloud compute target-http-proxies delete producer-http-proxy --region=$region -q gcloud compute url-maps delete producer-urlmap --region=$region -q gcloud compute backend-services delete cloudrun-producer-bes --region=$region -q gcloud compute network-endpoint-groups delete cloudrun-producer-neg --region=$region -q gcloud compute addresses delete cloudrun-ip --region=$region -q gcloud run services delete helloworld --region=$region -q gcloud artifacts docker images delete $region-docker.pkg.dev/$projectid/cloud-run-source-deploy/helloworld -q gcloud artifacts repositories delete cloud-run-source-deploy --location=$region -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=network-producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute networks subnets delete lb-proxy-subnet --region $region -q gcloud compute networks subnets delete psc-nat-subnet --region $region -q gcloud compute networks subnets delete producer-subnet --region $region -q gcloud compute networks delete producer-vpc -q
19. Parabéns!
Parabéns por concluir o codelab.
O que vimos
- Como implantar apps básicos no Cloud Run
- Controles de entrada e saída do Cloud Run
- Como implantar o Cloud Run por um balanceador de carga de aplicativo interno com um NEG sem servidor
- Como configurar um serviço de produtor do PSC usando um anexo de serviço
- Como implantar endpoints do PSC