VPC com conectores

É possível ativar seu serviço ou job do Cloud Run para que envie tráfego a uma rede VPC configurando um conector de acesso VPC sem servidor.

Antes de começar

  • Se você ainda não tiver uma rede VPC no projeto, crie uma.

  • Se você usar a VPC compartilhada, consulte Como se conectar a uma rede VPC compartilhada.

  • No Console do Google Cloud, verifique se a API de acesso VPC sem servidor está ativada no projeto.

    Ativar API

  • Cada conector de acesso VPC sem servidor requer sua própria sub-rede /28 para colocação das instâncias do conector. Essa sub-rede não pode ter outros recursos além do conector. Se você não usar a VPC compartilhada, crie uma sub-rede para o conector usar ou especifique um intervalo de IP personalizado não utilizado para que ele crie uma sub-rede para isso. Se você escolher o intervalo de IP personalizado, a sub-rede criada ficará oculta e não poderá ser usada em regras de firewall e configurações NAT.

Criar um conector

Para enviar solicitações à sua rede VPC e receber as respostas correspondentes sem usar a Internet pública, use um conector de acesso VPC sem servidor.

Se o conector estiver localizado no mesmo projeto que a VPC é possível criar um conector usando uma sub-rede existente um conector e uma nova sub-rede.

Se o conector estiver localizado em um projeto de serviço e usar uma VPC compartilhada rede, o conector e a rede VPC associada estão no projetos diferentes. Quando um conector e a respectiva rede VPC estão no projetos diferentes, o administrador da rede VPC compartilhada precisa criar sub-rede do conector na rede VPC compartilhada antes de criar a e é necessário criar o conector usando uma sub-rede existente.

Para saber mais sobre os requisitos da sub-rede, consulte sub-rede do conector. requisitos.

Para saber mais sobre a capacidade de processamento do conector, incluindo o tipo de máquina e o escalonamento, consulte Capacidade de processamento e escalonamento.

É possível criar um conector usando o console do Google Cloud, a Google Cloud CLI ou o Terraform.

Console

  1. Acesse a página de visão geral do acesso VPC sem servidor.

    Página do console sobre o acesso VPC sem servidor

  2. Clique em Criar conector.

  3. No campo Nome, insira um nome para o conector, o que corresponde Nomenclatura do Compute Engine tradicionais, com os requisitos adicionais de que o nome deve ser menor que 21 caracteres, e que hifens (-) são contados como dois caracteres.

  4. No campo Região, selecione uma região para o conector. Ela precisa corresponder à região do serviço sem servidor.

    Se o serviço ou job estiver na região us-central ou europe-west, use us-central1 ou europe-west1.

  5. No campo Rede, selecione uma rede VPC para o conector.

  6. No campo Sub-rede, selecione uma das seguintes opções:

    • Criar um conector usando uma sub-rede existente: selecione o conector sub-rede no campo Sub-rede.

    • Crie um conector e uma nova sub-rede: selecione Intervalo de IP personalizado no no campo Sub-rede. Em seguida, insira o primeiro endereço em um /28 não usado CIDR (por exemplo, 10.8.0.0/28) a ser usado como o endereço IPv4 principal intervalo de uma nova sub-rede criada pelo Google Cloud no rede VPC. Verifique se o intervalo de IP não está em conflito a rotas existentes na rede VPC do conector. O nome da nova sub-rede começa com "aet-". .

  7. Opcional: se você quiser configurar opções de escalonamento para ter mais controle sobre o conector, clique em Mostrar configurações de escalonamento para exibir o formulário de escalonamento:

    1. Defina os números mínimo e máximo de instâncias para seu conector ou use os padrões, que são 2 (mínimo) e 10 (máximo). O conector é escalonado de acordo com o máximo especificado se o uso do tráfego exigir, mas o conector não reduz o escalonamento quando o tráfego diminui. É preciso usar valores entre 2 e 10.
    2. No menu suspenso Tipo de instância, escolha o tipo de máquina a ser usado para o conector ou use o padrão e2-micro. Observe a barra lateral de custo à direita ao escolher o tipo de instância, que exibe a largura de banda e as estimativas de custo.
  8. Clique em Criar.

  9. Uma marca de seleção verde aparecerá ao lado do nome do conector quando ele estiver pronto para uso.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Atualize os componentes gcloud para a versão mais recente:

    gcloud components update
  3. Certifique-se de que a API de acesso VPC sem servidor esteja ativada para seu projeto:

    gcloud services enable vpcaccess.googleapis.com
  4. Crie o conector usando uma destas opções:

    Para mais detalhes e argumentos opcionais, consulte a página de referência da gcloud.

    • Criar um conector usando uma sub-rede existente:

      gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
       --region REGION \
       --subnet SUBNET_NAME \
       --subnet-project HOST_PROJECT_ID \
       --min-instances MIN \
       --max-instances MAX \
       --machine-type MACHINE_TYPE

      Substitua:

      • CONNECTOR_NAME: um nome para o conector correspondente às convenções de nomenclatura do Compute Engine, com os requisitos adicionais de que o nome deve ter menos de 21 caracteres, e que os hifens (-) contam como dois caracteres.
      • REGION: uma região para seu conector, correspondente ao do serviço ou job sem servidor. Se seu serviço ou trabalho é no us-central ou europe-west, use us-central1 ou europe-west1.
      • SUBNET_NAME: o nome da sub-rede atual.
      • HOST_PROJECT_ID: o ID do projeto host da VPC compartilhada Se o conector e a sub-rede existente estiverem localizados o mesmo projeto, omita a sinalização --subnet-project.
      • MIN: é o número mínimo de instâncias a serem usadas no conector. Use um número inteiro entre 2(padrão) e 9.
      • MAX: o número máximo de instâncias a serem usadas para o conector. Use um número inteiro entre 3 e 10 (padrão). Se o conector for escalonado até o número máximo de instâncias, ele não reduz a escala vertical.
      • MACHINE_TYPE precisa ser um dos seguintes: f1-micro, e2-micro ou e2-standard-4.
    • Crie um conector e uma nova sub-rede:

      gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
       --region REGION \
       --network VPC_NETWORK \
       --range IP_RANGE
       --min-instances MIN \
       --max-instances MAX \
       --machine-type MACHINE_TYPE

      Substitua:

      • CONNECTOR_NAME: um nome para o conector correspondente às convenções de nomenclatura do Compute Engine, com os requisitos adicionais de que o nome deve ter menos de 21 caracteres, e que os hifens (-) contam como dois caracteres.
      • REGION: uma região para seu conector, correspondente ao do serviço ou job sem servidor. Se seu serviço ou trabalho é no us-central ou europe-west, use us-central1 ou europe-west1.
      • VPC_NETWORK: o nome da VPC rede para se conectar ao conector. O conector e o A rede VPC precisa estar localizada no mesmo projeto.
      • IP_RANGE: forneça um CIDR /28 não utilizado (por exemplo 10.8.0.0/28) para usar como o intervalo de endereços IPv4 principal de uma nova sub-rede criada pelo Google Cloud no rede VPC. Certifique-se de que o intervalo de IP não entrar em conflito com rotas existentes no contêiner rede VPC. O nome da nova sub-rede começa com o termo "aet-" .
      • MIN: é o número mínimo de instâncias a serem usadas no conector. Use um número inteiro entre 2(padrão) e 9.
      • MAX: o número máximo de instâncias a serem usadas para o conector. Use um número inteiro entre 3 e 10 (padrão). Se o conector for escalonado até o número máximo de instâncias, ele não reduz a escala vertical.
      • MACHINE_TYPE precisa ser um dos seguintes: f1-micro, e2-micro ou e2-standard-4.
  5. Verifique se o conector está no estado READY antes de usá-lo:

    gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \
    --region REGION

    Substitua:

    • CONNECTOR_NAME: o nome do conector. Este é o nome que você especificou na etapa anterior.
    • REGION: a região do conector. Esta é a região especificada na etapa anterior.

    A saída precisa conter a linha state: READY.

Terraform

É possível usar um recurso do Terraform para ativar a API vpcaccess.googleapis.com.

resource "google_project_service" "vpcaccess-api" {
  project = var.project_id # Replace this with your project ID in quotes
  service = "vpcaccess.googleapis.com"
}

É possível usar módulos do Terraform para criar uma rede VPC e uma sub-rede e, em seguida, criar o conector.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-serverless-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "serverless-subnet"
      subnet_ip     = "10.10.10.0/28"
      subnet_region = "us-central1"
    }
  ]
}

module "serverless-connector" {
  source     = "terraform-google-modules/network/google//modules/vpc-serverless-connector-beta"
  version    = "~> 9.0"
  project_id = var.project_id
  vpc_connectors = [{
    name        = "central-serverless"
    region      = "us-central1"
    subnet_name = module.test-vpc-module.subnets["us-central1/serverless-subnet"].name
    # host_project_id = var.host_project_id # Specify a host_project_id for shared VPC
    machine_type  = "e2-standard-4"
    min_instances = 2
    max_instances = 7
    }
    # Uncomment to specify an ip_cidr_range
    #   , {
    #     name          = "central-serverless2"
    #     region        = "us-central1"
    #     network       = module.test-vpc-module.network_name
    #     ip_cidr_range = "10.10.11.0/28"
    #     subnet_name   = null
    #     machine_type  = "e2-standard-4"
    #     min_instances = 2
    #   max_instances = 7 }
  ]
  depends_on = [
    google_project_service.vpcaccess-api
  ]
}

Configurar seu serviço

É possível configurar seu serviço do Cloud Run para que use um conector de acesso VPC sem servidor ao enviar tráfego de saída. Para isso, use o Console do Google Cloud, a Google Cloud CLI ou o arquivo YAML ao criar um novo serviço ouimplantar uma nova revisão:

Console

  1. No console do Google Cloud, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Clique em Implantar contêiner e selecione Serviço para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, volumes, redes e segurança para expandir essa página.

  4. Clique na guia Rede.

    imagem

    • No campo Rede, escolha uma das seguintes opções no menu:

      • Para desconectar seu serviço de uma rede VPC, selecione Nenhuma.
      • Para usar um conector existente, selecione-o na lista suspensa ou selecione Personalizado para usar um conector existente que não esteja nessa lista.
      • Para criar um novo conector, selecione Adicionar novo conector de VPC. Consulte os detalhes em Criar um conector de acesso VPC sem servidor.
      • Em Roteamento de tráfego, selecione uma das seguintes opções:
        • Encaminhar solicitações apenas para IPs privados para a VPC a fim de enviar apenas o tráfego para endereços internos pela rede VPC.
        • Rotear todo o tráfego para a VPC a fim de enviar todo o tráfego de saída pela rede VPC.
  5. Clique em Criar ou Implantar.

gcloud

Para especificar um conector durante a implantação, use a sinalização --vpc-connector:

gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME

Substitua:

  • SERVICE pelo nome do serviço;
  • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • CONNECTOR_NAME pelo nome do conector.

Para anexar, atualizar ou remover um conector de um serviço atual, use o comando gcloud run services update com uma das seguintes sinalizações, conforme necessário:

Por exemplo, para anexar ou atualizar um conector:

gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME

Substitua:

  • SERVICE pelo nome do serviço;
  • CONNECTOR_NAME pelo nome do conector.

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Adicione ou atualize o atributo run.googleapis.com/vpc-access-connector no atributo annotations no atributo spec de nível superior:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
          name: REVISION

    Substitua:

    • SERVICE pelo nome do serviço do Cloud Run.
    • CONNECTOR_NAME pelo nome do conector.
    • REVISION por um novo nome de revisão ou excluí-lo (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:
      • Começa com SERVICE-
      • Contém apenas letras minúsculas, números e -
      • Não termina com um -
      • Não excede 63 caracteres
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

Terraform

É possível usar um recurso do Terraform para criar um serviço e configurá-lo para usar seu conector.

# Cloud Run service
resource "google_cloud_run_v2_service" "gcr_service" {
  name     = "mygcrservice"
  location = "us-west1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
      resources {
        limits = {
          cpu    = "1000m"
          memory = "512Mi"
        }
      }
      # the service uses this SA to call other Google Cloud APIs
      # service_account_name = myservice_runtime_sa
    }

    scaling {
      # Limit scale up to prevent any cost blow outs!
      max_instance_count = 5
    }

    vpc_access {
      # Use the VPC Connector
      connector = google_vpc_access_connector.connector.id
      # all egress from the service should go through the VPC Connector
      egress = "ALL_TRAFFIC"
    }
  }
}

Configurar seu job

Depois de criar um conector de acesso VPC sem servidor, configure seu job do Cloud Run para que use o conector. É possível fazer isso usando o console do Google Cloud, a Google Cloud CLI ou o YAML ao criar um novo job:

Console

  1. No console do Google Cloud, acesse a página de jobs do Cloud Run:

    Acessar o Cloud Run

  2. Clique em Implantar contêiner e selecione Job para preencher a página inicial de configurações do job. Se você estiver configurando um job, clique nele e em Editar.

  3. Clique em Contêiner, variáveis e secrets, conexões e segurança para expandir a página de propriedades do job.

  4. Clique na guia Conexões.

    imagem

    • No campo Rede, escolha uma das seguintes opções no menu:

      • Para desconectar seu job de uma rede VPC, selecione Nenhuma.
      • Para usar um conector existente, selecione-o na lista suspensa ou selecione Personalizado para usar um conector existente que não esteja nessa lista.
      • Para criar um novo conector, selecione Adicionar novo conector de VPC.

        Consulte os detalhes em Criar um conector de acesso VPC sem servidor.
  5. Clique em Criar ou Atualizar.

gcloud

Para especificar um conector durante a implantação do job, use a sinalização --vpc-connector:

gcloud run jobs create JOB --image IMAGE_URL --vpc-connector CONNECTOR_NAME

Substitua:

  • JOB pelo nome do job.
  • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • CONNECTOR_NAME pelo nome do conector.

Para anexar, atualizar ou remover um conector de um serviço atual, use o comando gcloud run jobs update com uma das seguintes sinalizações, conforme necessário:

Por exemplo, para anexar ou atualizar um conector:

gcloud run jobs update JOB --vpc-connector CONNECTOR_NAME

Substitua:

  • JOB pelo nome do job;
  • CONNECTOR_NAME pelo nome do conector.

YAML

É possível fazer o download e visualizar uma configuração de job atual pelo comando gcloud run jobs describe --format export, que gera resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run jobs replace. Modifique os campos somente conforme documentado.

  1. Para visualizar e fazer o download da configuração:

    gcloud run jobs describe JOB --format export > job.yaml
  2. Adicione ou atualize o atributo run.googleapis.com/vpc-access-connector no atributo annotations no atributo spec de nível superior:

    apiVersion: serving.knative.dev/v1
      kind: Job
      metadata:
        name: JOB
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/vpc-access-connector: CONNECTOR_NAME

    Substitua:

    • JOB pelo nome do job do Cloud Run.
    • CONNECTOR_NAME pelo nome do conector. O atributo run.googleapis.com/vpc-access-connector é obrigatório ao especificar uma configuração de saída.
  3. Substitua o job pela nova configuração usando o seguinte comando:

    gcloud run jobs replace job.yaml

Acessar recursos da VPC

Para restringir o acesso ao seu conector, use regras e políticas de firewall e, para adicionar mais restrições, defina configurações de saída e entrada.

Configurações de regras e políticas de firewall

Regras de firewall necessárias para conectores em projetos de serviço

Se você criar um conector em uma rede VPC independente ou no projeto host de uma rede VPC compartilhada, o Google Cloud criará as regras de firewall necessárias para a operação do conector. Para mais informações, consulte Regras de firewall para conectores em redes VPC independentes ou projetos de host da VPC compartilhada.

No entanto, se você criar um conector em um projeto de serviço e o conector segmentar uma rede VPC compartilhada no projeto host, será necessário adicionar regras de firewall para permitir o tráfego necessário para a operação do conector nos seguintes intervalos:

Esses intervalos são usados pela infraestrutura do Google, que serve como base para o Cloud Run, as funções do Cloud Run e o ambiente padrão do App Engine. Todas as solicitações desses endereços IP são originadas na infraestrutura do Google para garantir que cada recurso sem servidor se comunique apenas com o conector ao qual está conectado.

Você também precisa permitir o tráfego da sub-rede do conector para os recursos na sua rede VPC.

Para executar essas etapas, você precisa ter um dos seguintes papéis no projeto host:

Para uma configuração simples, aplique as regras para permitir que os recursos sem servidor em qualquer projeto de serviço conectado à rede VPC compartilhada enviem solicitações para qualquer recurso da rede.

Para aplicar essas regras, execute os seguintes comandos no projeto host:

  1. Crie regras de firewall que permitam que as solicitações da infraestrutura sem servidor e das sondagens de verificação de integridade do Google alcancem todos os conectores na rede. Nesses comandos, as portas UDP e TCP são usadas como proxies e para verificações de integridade HTTP, respectivamente. Não altere as portas especificadas.

    gcloud compute firewall-rules create serverless-to-vpc-connector \
        --allow tcp:667,udp:665-666,icmp \
        --source-ranges=35.199.224.0/19 \
        --direction=INGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-to-serverless \
        --allow tcp:667,udp:665-666,icmp \
        --destination-ranges=35.199.224.0/19 \
        --direction=EGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-health-checks \
        --allow tcp:667 \
        --source-ranges=35.191.0.0/16,35.191.192.0/18,130.211.0.0/22 \
        --direction=INGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK

    Substitua VPC_NETWORK pelo nome da rede VPC a que você quer anexar o conector.

  2. Crie uma regra de firewall de entrada na sua rede VPC para permitir solicitações de conectores que segmentam essa rede:

    gcloud compute firewall-rules create vpc-connector-requests \
        --allow tcp,udp,icmp \
        --direction=INGRESS \
        --source-tags vpc-connector \
        --network=VPC_NETWORK

    Essa regra concede ao conector acesso a todos os recursos da rede. Para limitar os recursos que seu ambiente sem servidor pode alcançar usando "acesso VPC sem servidor", consulte Restringir o acesso da VM do conector aos recursos de rede VPC.

Criar regras de firewall para conectores específicos

Seguir o procedimento descrito em Regras de firewall obrigatórias para conectores em projetos de serviço resulta em regras de firewall que se aplicam a todos os conectores, tanto os atuais quanto os criados no futuro. Se você não quiser fazer isso, mas quiser criar regras somente para conectores específicos, poderá definir o escopo das regras para que elas se apliquem apenas a esses conectores.

Para limitar o escopo das regras a conectores específicos, use um destes mecanismos:

  • Tags de rede: cada conector tem duas tags de rede: vpc-connector e vpc-connector-REGION-CONNECTOR_NAME. Use o último formato para limitar o escopo das suas regras de firewall a um conector específico.
  • Intervalos de IP: use esse método apenas para regras de saída, porque ele não funciona para regras de entrada. É possível usar o intervalo de IP da sub-rede do conector para limitar o escopo das regras de firewall a um único conector de VPC.

Restringir recursos de rede VPC de acesso à VM do conector

É possível restringir o acesso do conector a recursos na rede VPC de destino usando regras de firewall da VPC ou regras em políticas de firewall. Você pode realizar essas restrições usando uma das seguintes estratégias:

  • Crie regras de entrada com destinos que representem os recursos a que você quer limitar o acesso da VM do conector e com origens que representem as VMs do conector.
  • Crie regras de saída que tenham destinos que representem as VMs do conector e que os destinos representem os recursos a que você quer limitar o acesso da VM do conector.

Os exemplos a seguir ilustram cada estratégia.

Restringir o acesso usando regras de entrada

Escolha tags de rede ou intervalos CIDR para controlar o tráfego de entrada para a rede VPC.

Tags de rede

Nas etapas a seguir, mostramos como criar regras de entrada que restringem o acesso de um conector à sua rede VPC com base nas tags de rede do conector.

  1. Verifique se você tem as permissões necessárias para inserir regras de firewall. Você precisa ter um dos seguintes papéis de gerenciamento de identidade e acesso (IAM):

  2. Nega o tráfego do conector na sua rede VPC.

    Crie uma regra de firewall de entrada com prioridade menor que 1.000 na sua rede VPC para negar a entrada da tag de rede do conector. Isso substitui a regra de firewall implícita que o acesso VPC sem servidor cria na rede VPC por padrão.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Substitua:

    • RULE_NAME: o nome da nova regra de firewall. Por exemplo, deny-vpc-connector.

    • PROTOCOL: um ou mais protocolos que você quer permitir no conector de VPC. Os protocolos compatíveis são tcp ou udp. Por exemplo, tcp:80,udp permite o tráfego TCP pela porta 80 e pelo UDP. Para mais informações, consulte a documentação da flag de allow.

      Para fins de segurança e validação, também é possível configurar regras de negação para bloquear o tráfego para os seguintes protocolos sem suporte: ah, all, esp, icmp, ipip e sctp.

    • VPC_CONNECTOR_NETWORK_TAG: a tag de rede universal do conector se você quiser restringir o acesso a todos os conectores (incluindo todos os conectores feitos no futuro), ou a tag de rede única se quiser restringir o acesso a um conector específico.

      • Tag de rede universal: vpc-connector
      • Tag de rede única: vpc-connector-REGION-CONNECTOR_NAME

        Substitua:

        • REGION: a região do conector que você quer restringir
        • CONNECTOR_NAME: o nome do conector que você quer restringir

      Para saber mais sobre as tags de rede do conector, consulte Tags de rede.

    • VPC_NETWORK: o nome da rede VPC.

    • PRIORITY: um número inteiro entre 0 e 65535. Por exemplo, 0 define a prioridade mais alta.

  3. Permitir tráfego do conector para o recurso que precisa receber tráfego do conector.

    Use as sinalizações allow e target-tags para criar uma regra de firewall de entrada que segmente o recurso na rede VPC que você quer que o conector VPC acesse. Defina a prioridade para essa regra como um valor menor que a prioridade da regra criada na etapa anterior.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY

    Substitua:

    • RULE_NAME: o nome da nova regra de firewall. Por exemplo, allow-vpc-connector-for-select-resources.

    • PROTOCOL: um ou mais protocolos que você quer permitir no conector de VPC. Os protocolos compatíveis são tcp ou udp. Por exemplo, tcp:80,udp permite o tráfego TCP pela porta 80 e pelo UDP. Para mais informações, consulte a documentação da flag de allow.

    • VPC_CONNECTOR_NETWORK_TAG: a tag de rede universal do conector se você quiser restringir o acesso a todos os conectores (incluindo todos os conectores feitos no futuro), ou a tag de rede única se quiser restringir o acesso a um conector específico. Isso precisa corresponder à tag de rede que você especificou na etapa anterior.

      • Tag de rede universal: vpc-connector
      • Tag de rede única: vpc-connector-REGION-CONNECTOR_NAME

        Substitua:

        • REGION: a região do conector que você quer restringir
        • CONNECTOR_NAME: o nome do conector que você quer restringir

      Para saber mais sobre as tags de rede do conector, consulte Tags de rede.

    • VPC_NETWORK: o nome da rede VPC.

    • RESOURCE_TAG: a tag de rede do recurso da VPC que você quer que o conector da VPC acesse.

    • PRIORITY: um número inteiro menor que a prioridade que você definiu na etapa anterior. Por exemplo, se você definir a prioridade da regra criada na etapa anterior como 990, tente 980.

Para mais informações sobre as sinalizações obrigatórias e opcionais para criar regras de firewall, consulte a documentação de gcloud compute firewall-rules create.

Intervalo CIDR

Nas etapas a seguir, mostramos como criar regras de entrada que restringem o acesso de um conector à sua rede VPC com base no intervalo CIDR do conector.

  1. Verifique se você tem as permissões necessárias para inserir regras de firewall. Você precisa ter um dos seguintes papéis de gerenciamento de identidade e acesso (IAM):

  2. Nega o tráfego do conector na sua rede VPC.

    Crie uma regra de firewall de entrada com prioridade menor que 1.000 na sua rede VPC para negar a entrada do intervalo CIDR do conector. Isso substitui a regra de firewall implícita que o acesso VPC sem servidor cria na rede VPC por padrão.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Substitua:

    • RULE_NAME: o nome da nova regra de firewall. Por exemplo, deny-vpc-connector.

    • PROTOCOL: um ou mais protocolos que você quer permitir no conector de VPC. Os protocolos compatíveis são tcp ou udp. Por exemplo, tcp:80,udp permite o tráfego TCP pela porta 80 e pelo UDP. Para mais informações, consulte a documentação da flag de allow.

      Para fins de segurança e validação, também é possível configurar regras de negação para bloquear o tráfego para os seguintes protocolos sem suporte: ah, all, esp, icmp, ipip e sctp.

    • VPC_CONNECTOR_CIDR_RANGE: o intervalo CIDR do conector em que seu acesso está restrito

    • VPC_NETWORK: o nome da rede VPC.

    • PRIORITY: um número inteiro entre 0 e 65535. Por exemplo, 0 define a prioridade mais alta.

  3. Permitir tráfego do conector para o recurso que precisa receber tráfego do conector.

    Use as sinalizações allow e target-tags para criar uma regra de firewall de entrada que segmente o recurso na rede VPC que você quer que o conector VPC acesse. Defina a prioridade para essa regra como um valor menor que a prioridade da regra criada na etapa anterior.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY

    Substitua:

    • RULE_NAME: o nome da nova regra de firewall. Por exemplo, allow-vpc-connector-for-select-resources.

    • PROTOCOL: um ou mais protocolos que você quer permitir no conector de VPC. Os protocolos compatíveis são tcp ou udp. Por exemplo, tcp:80,udp permite o tráfego TCP pela porta 80 e pelo UDP. Para mais informações, consulte a documentação da flag de allow.

    • VPC_CONNECTOR_CIDR_RANGE: o intervalo CIDR do conector em que seu acesso está restrito

    • VPC_NETWORK: o nome da rede VPC.

    • RESOURCE_TAG: a tag de rede do recurso da VPC que você quer que o conector da VPC acesse.

    • PRIORITY: um número inteiro menor que a prioridade que você definiu na etapa anterior. Por exemplo, se você definir a prioridade da regra criada na etapa anterior como 990, tente 980.

Para mais informações sobre as sinalizações obrigatórias e opcionais para criar regras de firewall, consulte a documentação de gcloud compute firewall-rules create.

Restringir o acesso usando regras de saída

As etapas a seguir mostram como criar regras de saída para restringir o acesso ao conector.

  1. Verifique se você tem as permissões necessárias para inserir regras de firewall. Você precisa ter um dos seguintes papéis do Identity and Access Management (IAM):

  2. Negue o tráfego de saída do conector.

    Crie uma regra de firewall de saída no conector de acesso VPC sem servidor para impedir que ele envie tráfego de saída, exceto para respostas estabelecidas, para qualquer destino.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --direction=EGRESS \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Substitua:

    • RULE_NAME: o nome da nova regra de firewall. Por exemplo, deny-vpc-connector.

    • PROTOCOL: um ou mais protocolos que você quer permitir no conector de VPC. Os protocolos compatíveis são tcp ou udp. Por exemplo, tcp:80,udp permite o tráfego TCP pela porta 80 e pelo UDP. Para mais informações, consulte a documentação da flag de allow.

      Para fins de segurança e validação, também é possível configurar regras de negação para bloquear o tráfego para os seguintes protocolos sem suporte: ah, all, esp, icmp, ipip e sctp.

    • VPC_CONNECTOR_NETWORK_TAG: a tag de rede do conector VPC universal se você quiser que a regra se aplique a todos os conectores VPC existentes e a quaisquer conectores VPC no futuro. Ou a tag de rede do conector de VPC exclusiva, se você quiser controlar um conector específico.

    • VPC_NETWORK: o nome da rede VPC.

    • PRIORITY: um número inteiro entre 0 e 65535. Por exemplo, 0 define a prioridade mais alta.

  3. Permitir tráfego de saída quando o destino estiver no intervalo CIDR que você quer que o conector acesse.

    Use as sinalizações allow e destination-ranges para criar uma regra de firewall que permita o tráfego de saída do conector para um intervalo de destino específico. Defina o intervalo de destino para o intervalo CIDR do recurso na rede VPC que você quer que o conector possa acessar. Defina a prioridade dessa regra como um valor menor do que a prioridade da regra criada na etapa anterior.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --destination-ranges=RESOURCE_CIDR_RANGE \
    --direction=EGRESS \
    --network=VPC_NETWORK \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --priority=PRIORITY

    Substitua:

    • RULE_NAME: o nome da nova regra de firewall. Por exemplo, allow-vpc-connector-for-select-resources.

    • PROTOCOL: um ou mais protocolos que você quer permitir no conector de VPC. Os protocolos compatíveis são tcp ou udp. Por exemplo, tcp:80,udp permite o tráfego TCP pela porta 80 e pelo UDP. Para mais informações, consulte a documentação da flag de allow.

    • RESOURCE_CIDR_RANGE: o intervalo CIDR do conector em que seu acesso está restrito

    • VPC_NETWORK: o nome da rede VPC.

    • VPC_CONNECTOR_NETWORK_TAG: a tag de rede do conector VPC universal se você quiser que a regra se aplique a todos os conectores VPC existentes e a quaisquer conectores VPC no futuro. Ou a tag de rede do conector de VPC exclusiva, se você quiser controlar um conector específico. Se você tiver usado a tag de rede exclusiva na etapa anterior, use essa tag.

    • PRIORITY: um número inteiro menor que a prioridade que você definiu na etapa anterior. Por exemplo, se você definir a prioridade da regra criada na etapa anterior como 990, tente 980.

Para mais informações sobre as sinalizações obrigatórias e opcionais para criar regras de firewall, consulte a documentação de gcloud compute firewall-rules create.

Gerenciar o conector

Por padrão, apenas solicitações para determinados destinos de endereços IPv4 internos (incluindo destinos IPv4 internos resolvidos por respostas DNS) são roteadas por um conector de acesso VPC sem servidor. Em alguns casos, no entanto, é recomendável que todas as solicitações de saída do serviço ou job sejam roteadas para a rede VPC.

O acesso VPC sem servidor é compatível apenas com o roteamento do tráfego IPv4. O tráfego IPv6 não é aceito, mesmo que você tenha rotas IPv6 na sua rede VPC.

Para controlar o roteamento de solicitações de saída do serviço ou job, defina a saída da VPC para uma das seguintes opções:

  • Rotear somente solicitações de IPs particulares para a VPC: padrão O tráfego será roteado pela rede VPC somente se os pacotes que transportam o tráfego tiverem destinos que correspondam ao seguinte:

    Os pacotes para qualquer outro destino são encaminhados do Cloud Run para a Internet (não por meio de qualquer rede VPC).

  • Rotear todo o tráfego para a VPC: o tráfego é sempre roteado pela rede VPC associada ao conector para todos os destinos de pacote. Use essa opção nas seguintes circunstâncias:

    • Se você precisar enviar tráfego para intervalos de sub-redes VPC com intervalos de endereços IP externos usados de modo privado. Para mais informações sobre intervalos de sub-rede VPC, consulte Intervalos IPv4 válidos na visão geral de sub-redes.
    • Se você precisar enviar tráfego para um endpoint do Private Service Connect para APIs do Google que tenham um endereço IP externo usado de modo particular. Para mais informações sobre endpoints do Private Service Connect para APIs do Google, consulte Acessar APIs do Google por endpoints.
    • Se você precisar enviar tráfego para qualquer outro destino de endereço IP externo usado de modo privado e roteável na rede VPC do conector. Exemplos de outros destinos que abrangem endereços IP externos utilizados de modo particular podem incluir intervalos de sub-rede de peering (e intervalos de sub-rede de peering criados em Intervalos de endereços IP alocados para serviços) e aqueles destinos acessíveis usando rotas personalizadas no Short da VPC.

    Se a rede VPC incluir uma rota padrão, os pacotes ainda poderão ser roteados para a Internet depois de serem processados pelo conector se você configurar um gateway do Cloud NAT para fornecer serviços NAT à sub-rede usada pelo conector. Esses pacotes estão sujeitos às rotas na sua rede VPC e às regras de firewall que se aplicam à rede VPC. Use a configuração de rota e firewall para controlar a saída da Internet para todas as solicitações de saída enviadas pela função por meio de um conector de acesso VPC sem servidor.

Controlar tráfego do serviço de saída

É possível especificar uma configuração de saída da VPC usando o Console do Google Cloud, a Google Cloud CLI ou o arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:

Console

  1. No console do Google Cloud, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Clique em Implantar contêiner e selecione Serviço para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, volumes, redes e segurança para expandir essa página.

  4. Clique na guia Rede.

    imagem

    • Depois de selecionar um conector de VPC, selecione Rotear somente solicitações de IPs particulares para a VPC ou Rotear todo o tráfego para a VPC.
  5. Clique em Criar ou Implantar.

gcloud

Para especificar uma configuração de saída, use a sinalização --vpc-egress. É possível especificar uma configuração de saída durante a implantação:

gcloud run deploy SERVICE \
--image IMAGE_URL \
--vpc-connector CONNECTOR_NAME \
--vpc-egress EGRESS_SETTING

Substitua:

  • SERVICE pelo nome do serviço;
  • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • CONNECTOR_NAME pelo nome do conector.
  • EGRESS_SETTING por um valor de configuração de saída:
    • all-traffic: envia todo o tráfego de saída por meio do conector.
    • private-ranges-only: envia somente o tráfego para endereços internos por meio do conector VPC.

Também é possível atualizar um serviço existente e alterar a configuração de saída:

gcloud run services update SERVICE --vpc-egress EGRESS_SETTING

Substitua:

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Adicione ou atualize o atributo run.googleapis.com/vpc-access-egress no atributo annotations no atributo spec de nível superior:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          name: REVISION

    Substitua:

    • SERVICE pelo nome do serviço do Cloud Run;
    • CONNECTOR_NAME pelo nome do conector. O atributo run.googleapis.com/vpc-access-connector é obrigatório ao especificar uma configuração de saída.
    • EGRESS_SETTING por um destes procedimentos:
      • all-traffic: envia todo o tráfego de saída por meio do conector.
      • private-ranges-only: envia somente o tráfego para endereços internos por meio do conector VPC.
      • REVISION por um novo nome de revisão ou excluí-lo (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:
        • Começa com SERVICE-
        • Contém apenas letras minúsculas, números e -
        • Não termina com um -
        • Não excede 63 caracteres
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

Controlar tráfego do job de saída

É possível especificar uma configuração de saída da VPC usando o console do Google Cloud, a Google Cloud CLI ou o arquivo YAML ao criar ou atualizar um job:

Console

  1. No console do Google Cloud, acesse a página de jobs do Cloud Run:

    Acessar o Cloud Run

  2. Clique em Implantar contêiner e selecione Job para preencher a página inicial de configurações do job. Se você estiver configurando um job, clique nele e em Editar.

  3. Clique em Contêiner, variáveis e secrets, conexões e segurança para expandir a página de propriedades do job.

  4. Clique na guia Conexões.

    imagem

    • Depois de selecionar um conector, selecione Rotear somente solicitações de IPs particulares para a VPC ou Rotear todo o tráfego para a VPC.
  5. Clique em Criar ou Atualizar.

gcloud

Para especificar uma configuração de saída, use a sinalização --vpc-egress. É possível especificar uma configuração de saída durante o processo de implantação do job:

gcloud run jobs create JOB \
--image IMAGE_URL \
--vpc-connector CONNECTOR_NAME \
--vpc-egress EGRESS_SETTING

Substitua:

  • JOB pelo nome do job.
  • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • CONNECTOR_NAME pelo nome do conector.
  • EGRESS_SETTING por um valor de configuração de saída:
    • all-traffic: envia todo o tráfego de saída por meio do conector.
    • private-ranges-only: envia somente o tráfego para endereços internos por meio do conector VPC.

Também é possível atualizar um job atual e alterar a configuração de saída:

gcloud run jobs update JOB --vpc-egress EGRESS_SETTING

Substitua:

YAML

É possível fazer o download e visualizar uma configuração de job atual pelo comando gcloud run jobs describe --format export, que gera resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run jobs replace. Modifique os campos somente conforme documentado.

  1. Substitua o job pela nova configuração usando o seguinte comando:

    gcloud run jobs replace job.yaml
  2. Adicione ou atualize o atributo run.googleapis.com/vpc-access-egress no atributo annotations no atributo spec de nível superior:

    apiVersion: serving.knative.dev/v1
      kind: Job
      metadata:
        name: JOB
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING

    Substitua:

    • JOB pelo nome do job do Cloud Run.
    • CONNECTOR_NAME pelo nome do conector. O atributo run.googleapis.com/vpc-access-connector é obrigatório ao especificar uma configuração de saída.
    • EGRESS_SETTING por um destes procedimentos:
      • all-traffic: envia todo o tráfego de saída por meio do conector.
      • private-ranges-only: envia somente o tráfego para endereços internos por meio do conector VPC.
  3. Substitua o job pela nova configuração usando o seguinte comando:

    gcloud run jobs replace job.yaml

Ver configurações do conector

É possível visualizar as configurações atuais do conector de acesso VPC sem servidor para o serviço ou job pelo console do Google Cloud ou pela ferramenta de linha de comando gcloud:

Console

  1. Acesse o Cloud Run

  2. Clique no serviço ou job em que você tem interesse para abrir a página de detalhes.

    • Para um serviço, clique na guia Revisões.

    • Para um job, clique na guia Configuração.

A configuração do conector de acesso VPC sem servidor está listada na guia Rede.

gcloud

  1. Use o comando a seguir para visualizar as configurações do serviço:

    gcloud run services describe SERVICE
  2. Use o comando a seguir para ver as configurações do seu job:

    gcloud run jobs describe JOB
  3. Localize a configuração do conector de acesso VPC sem servidor na configuração retornada.

Desconectar de uma rede VPC

Desconectar um serviço

É possível desconectar um serviço da rede VPC pelo Console do Google Cloud ou pela Google Cloud CLI:

Console

  1. No console do Google Cloud, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Clique em Implantar contêiner e selecione Serviço para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, volumes, redes e segurança para expandir essa página.

  4. Clique na guia Rede.

    imagem

    • No campo Rede, selecione Nenhuma para desconectar o serviço de uma rede VPC.
  5. Clique em Criar ou Implantar.

gcloud

Para desconectar um serviço, use o comando gcloud run services update com esta flag:

gcloud run services update SERVICE --clear-vpc-connector
  • SERVICE pelo nome do serviço;

Os conectores continuam gerando cobranças, mesmo se estiverem sem tráfego e desconectados. Para mais detalhes, consulte preços. Se você não precisar mais do conector, exclua-o para evitar o faturamento contínuo.

Desconectar um job

É possível desconectar um job da rede VPC pelo console do Google Cloud ou pela Google Cloud CLI:

Console

  1. No console do Google Cloud, acesse a página de jobs do Cloud Run:

    Acessar o Cloud Run

  2. Clique em Implantar contêiner e selecione Job para preencher a página inicial de configurações do job. Se você estiver configurando um job, clique nele e em Editar.

  3. Clique em Contêiner, variáveis e secrets, conexões e segurança para expandir a página de propriedades do job.

  4. Clique na guia Conexões.

    imagem

    • No campo Rede, selecione Nenhuma para desconectar o job de uma rede VPC.
  5. Clique em Criar ou Atualizar.

gcloud

Para desconectar um job, use o comando gcloud run jobs update com a sinalização a seguir:

--clear-vpc-connector

gcloud run jobs update JOB --clear-vpc-connector

Substitua JOB pelo nome do seu nó.

Os conectores continuam gerando cobranças, mesmo se estiverem sem tráfego e desconectados. Para mais detalhes, consulte preços. Se você não precisar mais do conector, exclua-o para evitar o faturamento contínuo.

Atualizar um conector

É possível atualizar e monitorar os seguintes atributos do conector usando o console do Google Cloud, a CLI do Google Cloud ou a API:

  • Tipo de máquina (instância)
  • Número mínimo e máximo de instâncias
  • Capacidade de processamento recente, número de instâncias e uso da CPU

Atualizar tipo de máquina

Console

  1. Acesse a página de visão geral do acesso VPC sem servidor.

    Página do console sobre o acesso VPC sem servidor

  2. Selecione o conector que você quer editar e clique em Editar.

  3. Na lista Tipo de instância, selecione o tipo de máquina (instância) de sua preferência. Para saber mais sobre os tipos de máquinas disponíveis, consulte a documentação sobre capacidade de processamento e escalonamento.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para atualizar o tipo de máquina do conector, execute o seguinte comando no seu terminal:

    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
    Substitua:

    • CONNECTOR_NAME: o nome do conector
    • REGION: o nome da região do conector
    • MACHINE_TYPE: o tipo de máquina de sua preferência. Para saber mais sobre os tipos de máquinas disponíveis, consulte a documentação em Capacidade e escalonamento.

Diminuir o número mínimo e máximo de instâncias

Para diminuir o número de instâncias mínima e máxima, faça o seguinte:

  1. Crie um novo conector com os valores da sua preferência.
  2. Atualize o serviço ou a função para usar o novo conector.
  3. Exclua o conector antigo ao mover o tráfego.

Consulte Criar conector de acesso VPC sem servidor para mais informações.

Aumentar o número mínimo e máximo de instâncias

Console

  1. Acesse a página de visão geral do acesso VPC sem servidor.

    Página do console sobre o acesso VPC sem servidor

  2. Selecione o conector que você quer editar e clique em Editar.

  3. No campo Instâncias mínimas, selecione o número mínimo de instâncias que você quer.

    O menor valor possível para esse campo é o valor atual. O maior valor possível desse campo é o valor atual no campo Máximo de instâncias menos 1. Por exemplo, se o valor no campo Máximo de instâncias for 8, o maior valor possível para o campo Mínimo de instâncias será 7.

  4. No campo Máximo de instâncias, selecione o número máximo de instâncias que você quer.

    O menor valor possível para esse campo é o valor atual. O maior valor possível para esse campo é 10.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para aumentar o número mínimo ou máximo de instâncias para o conector, execute o seguinte comando no terminal:

    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
    Substitua:

  • CONNECTOR_NAME: o nome do conector
  • REGION: o nome da região do conector
  • MIN_INSTANCES: o número mínimo de instâncias que você preferir.
    • O menor valor possível para esse campo é o valor atual de min_instances. Para encontrar o valor atual, consulte Encontrar os valores de atributo atuais.
    • O maior valor possível para esse campo é o valor atual de max_instances menos 1, porque min_instances precisa ser menor que max_instances. Por exemplo, se max_instances for 8, o maior valor possível para esse campo será 7. Se o conector usar o valor padrão max-instances de 10, o maior valor possível desse campo será 9. Para encontrar o valor de max-instances, consulte Encontrar os valores atuais do atributo.
  • MAX_INSTANCES:

    • O menor valor possível para esse campo é o valor atual de max_instances. Para encontrar o valor atual, consulte Encontrar os valores de atributo atuais.
    • O maior valor possível para esse campo é 10.

    Se você quiser aumentar o número mínimo de instâncias, mas não o máximo, ainda precisará especificar o número máximo de instâncias. Por outro lado, se você quiser atualizar apenas o número máximo de instâncias, mas não o mínimo, ainda precisará especificar a quantidade mínima de instâncias. Para manter o número mínimo ou máximo de instâncias no valor atual, especifique o valor atual. Para encontrar o valor atual, consulte Encontrar os valores do atributo atual.

Encontrar os valores atuais dos atributos

Para encontrar os valores de atributo atuais do conector, execute o seguinte no terminal:

gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
Substitua:

  • CONNECTOR_NAME: o nome do conector
  • REGION: o nome da região do conector
  • PROJECT: o nome do seu projeto do Google Cloud

Monitorar o uso do conector

O monitoramento ao longo do tempo ajuda a determinar quando ajustar as configurações de um conector. Por exemplo, se o uso da CPU aumentar, tente aumentar o número máximo de instâncias para conseguir resultados melhores. Ou, se você estiver maximizando a capacidade de processamento, pense em trocar para um tipo de máquina maior.

Para exibir gráficos da capacidade de processamento, do número de instâncias e das métricas de uso da CPU do conector ao longo do tempo usando o console do Google Cloud:

  1. Acesse a página de visão geral do acesso VPC sem servidor.

    Página do console sobre o acesso VPC sem servidor

  2. Clique no nome do conector que você quer monitorar.

  3. Selecione o número de dias que você quer mostrar entre 1 e 90 dias.

  4. No gráfico de Capacidade de processamento, passe o cursor sobre o gráfico para ver a capacidade de processamento recente do conector.

  5. No gráfico Número de instâncias, passe o cursor sobre ele para ver o número de instâncias usadas recentemente pelo conector.

  6. No gráfico Uso da CPU, passe o cursor sobre ele para ver o uso recente da CPU do conector. O gráfico exibe o uso da CPU distribuído entre as instâncias para o 50º, 95º e 99º percentis.

Excluir um conector

Antes de excluir um conector, verifique se nenhum serviço ou job ainda está conectado a ele.

Para usuários de VPC compartilhada que configuram conectores no projeto host da VPC compartilhada, use o comando gcloud compute networks vpc-access connectors describe para listar os projetos em que há serviços ou jobs que usam um determinado conector.

Para excluir um conector, use o console do Google Cloud ou a Google Cloud CLI:

Console

  1. Acesse a página de visão geral do acesso VPC sem servidor no console do Google Cloud:

    Página do console sobre o acesso VPC sem servidor

  2. Selecione o conector que você quer excluir.

  3. Clique em Excluir.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Use o seguinte comando gcloud para excluir um conector:

    gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
    

    Substitua:

    • CONNECTOR_NAME pelo nome do conector que você quer excluir;
    • REGION pela região onde o conector está localizado.

Solução de problemas

Permissões da conta de serviço

Para realizar operações no projeto do Google Cloud, o acesso VPC sem servidor usa a conta de serviço do agente de serviço do acesso VPC sem servidor. O endereço de e-mail dessa conta de serviço tem o seguinte formato:

service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com

Por padrão, essa conta de serviço tem o papel Agente de serviço de acesso VPC sem servidor (roles/vpcaccess.serviceAgent). As operações de acesso VPC sem servidor podem falhar se você alterar as permissões dessa conta.

Desempenho ruim da rede ou alta utilização da CPU em modo inativo

O uso de um único conector para milhares de instâncias pode causar degradação de desempenho e aumento da utilização da CPU ociosa. Para corrigir isso, divida seus serviços entre vários conectores.

Erros

A conta de serviço precisa de um erro no papel do agente de serviço

Se você usar o Restringir o uso do serviço de recursos restrição da política da organização para bloquear o Cloud Deployment Manager (deploymentmanager.googleapis.com), você poderá ver a seguinte mensagem de erro:

Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.

Defina a política da organização para remover o Deployment Manager da lista de bloqueio ou adicioná-lo à lista de permissões.

Erro de criação do conector

Se a criação de um conector resultar em erro, tente o seguinte:

  • Especifique um intervalo de IP interno RFC 1918 que não se sobreponha a nenhuma reserva de endereço IP existente na rede VPC.
  • Conceda permissão ao projeto para usar imagens de VM do Compute Engine do projeto com o ID serverless-vpc-access-images. Para mais informações sobre como atualizar a política da organização adequadamente, consulte Definir restrições de acesso a imagens.

Não é possível acessar os recursos

Se você especificou um conector, mas ainda assim não consegue acessar os recursos na rede VPC, verifique se não há regras de firewall na rede VPC com prioridade inferior a 1.000 que recusem a entrada do intervalo de endereços IP do seu conector.

Se você configurar um conector em um projeto de serviço de VPC compartilhada, verifique se as regras de firewall permitem a entrada da infraestrutura sem servidor no conector.

Erro de conexão recusada

Se você receber erros connection refused ou connection timeout que degradam o desempenho da rede, as conexões podem aumentar sem limite de invocações de aplicativo sem servidor. Para limitar o número máximo de conexões usadas por instância, use uma biblioteca de cliente compatível com pools de conexões. Para exemplos detalhados de como usar pools de conexão, consulte Gerenciar conexões de banco de dados.

Erro de recurso não encontrado

Ao excluir uma rede VPC ou uma regra de firewall, talvez seja exibida uma mensagem semelhante a esta: The resource "aet-uscentral1-subnet--1-egrfw" was not found.

Para informações sobre esse erro e a respectiva solução, consulte Erro de recurso não encontrado na documentação das regras de firewall da VPC.

Próximas etapas