Publicar serviços usando o Private Service Connect

Como produtor de serviço, use o Private Service Connect para publicar serviços usando endereços IP internos na rede VPC. Os serviços publicados podem ser acessados pelos consumidores de serviços que usam endereços IP internos nas redes VPC.

Este guia descreve como usar o Private Service Connect para publicar um serviço. Para publicar um serviço, faça o seguinte:

O Private Service Connect fornece dois métodos para se conectar a serviços publicados:

Esses tipos de endpoints exigem configurações de produtor um pouco diferentes. Para mais informações, consulte Recursos e compatibilidade.

Papéis

O papel do IAM a seguir fornece as permissões necessárias para executar as tarefas neste guia.

Antes de começar

Tipos de balanceador de carga compatíveis

Hospede o serviço usando os seguintes balanceadores de carga:

Para informações sobre configurações compatíveis para cada tipo de balanceador de carga, consulte Recursos e compatibilidade.

Também é possível publicar um serviço hospedado em um balanceador de carga TCP/UDP interno no Google Kubernetes Engine. Esta configuração, incluindo a configuração do balanceador de carga e do anexo de serviço, é descrita em Criar um balanceador de carga TCP/UDP interno com o Private Service Connect na documentação do GKE.

Criar uma sub-rede para o Private Service Connect

Crie uma ou mais sub-redes dedicadas para usar com o Private Service Connect. Se você estiver usando o Console do Google Cloud para publicar um serviço, poderá criar as sub-redes durante esse procedimento.

Se você precisar disponibilizar mais endereços IP para um serviço atual, consulte Adicionar ou remover sub-redes de um serviço publicado.

Também é possível criar uma sub-rede do Private Service Connect em um projeto host da VPC compartilhada.

Crie a sub-rede na mesma região do balanceador de carga do serviço.

Não é possível converter uma sub-rede regular em uma sub-rede do Private Service Connect.

Console

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique no nome de uma rede VPC para mostrar a página Detalhes da rede VPC.

  3. Clique em Adicionar sub-rede. No painel que aparecerá, faça o seguinte:

    1. Forneça um Nome.
    2. Selecione uma Região.
    3. Na seção Finalidade, selecione Private Service Connect.
    4. Digite um Intervalo de endereço IP. Por exemplo, 10.10.10.0/24.
    5. Clique em Add.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME --region=REGION \
    --range=SUBNET_RANGE --purpose=PRIVATE_SERVICE_CONNECT

Substitua:

  • SUBNET_NAME: o nome a ser atribuído à subrede.

  • NETWORK_NAME: o nome da VPC para a nova sub-rede.

  • REGION: a região da nova sub-rede. Precisa ser a mesma região do serviço que você está publicando.

  • SUBNET_RANGE: o intervalo de endereços IP a ser usado para a sub-rede. Por exemplo, 10.10.10.0/24.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks

{
  "ipCidrRange": "SUBNET_RANGE",
  "name": "SUBNET_NAME",
  "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
  "purpose": "PRIVATE_SERVICE_CONNECT",
}

Substitua:

  • PROJECT_ID: o projeto da sub-rede.

  • SUBNET_NAME: o nome a ser atribuído à subrede.

  • NETWORK_NAME: o nome da rede VPC da nova sub-rede.

  • REGION: a região da nova sub-rede. Precisa ser a mesma região do serviço que você está publicando.

  • SUBNET_RANGE: o intervalo de endereços IP a ser usado para a sub-rede. Por exemplo, 10.10.10.0/24.

Configurar regras de firewall

Configure regras de firewall para permitir o tráfego entre os endpoints ou os back-ends e o anexo de serviço. As solicitações do cliente vêm de locais diferentes, dependendo do tipo do Private Service Connect.

Tipo do Private Service Connect Intervalos de endereços IP para o tráfego do cliente Detalhes
Endpoint (com base em uma regra de encaminhamento) Os intervalos de endereços IP das sub-redes do Private Service Connect associados a esse serviço. Se você estiver usando a rede padrão, a regra default-allow-internal pré-preenchida permitirá esse tráfego, a menos que haja uma regra de prioridade mais alta que a bloqueie.
Back-end (com base em um balanceador de carga HTTP(S) externo global)
  • 130.211.0.0/22
  • 35.191.0.0/16
Os balanceadores de carga HTTP(S) externos globais são implementados no Google Front Ends (GFEs), que usam esses intervalos de endereços IP.

Se sua configuração de firewall ainda não permitir tráfego do tipo de endpoint apropriado, configure regras de firewall para permitir a configuração.

Este exemplo de configuração permite criar regras de firewall da VPC para permitir o tráfego de intervalos de endereços IP do cliente para as VMs de back-end no balanceador de carga de serviço do produtor. Essa configuração presume que as VMs de back-end tenham sido configuradas com uma tag de rede.

Exemplo de regra de entrada:

gcloud compute firewall-rules create NAME \
  --network=NETWORK_NAME \
  --direction=ingress \
  --action=allow \
  --target-tags=TAG \
  --source-ranges=CLIENT_IP_RANGES_LIST \
  --rules=RULES

Substitua:

  • NETWORK_NAME: a rede que contém o serviço e a sub-rede do Private Service Connect.

  • TAG: a tag de destino aplicada às VMs de back-end no balanceador de carga de serviço do produtor.

  • CLIENT_IP_RANGES_LIST: os intervalos de endereços IP de origem do tráfego do cliente. Para saber mais, consulte a tabela anterior.

  • RULES_LIST: uma lista separada por vírgulas de protocolos e portas às quais uma regra se aplica. Por exemplo, tcp,udp.

Exemplo de regra de saída:

gcloud compute firewall-rules create NAME \
  --network=NETWORK_NAME \
  --direction=egress \
  --action=allow \
  --target-tags=TAG \
  --destination-ranges=CLIENT_IP_RANGES_LIST \
  --rules=RULES

Substitua:

  • NETWORK_NAME: a rede que contém o serviço e a sub-rede do Private Service Connect.

  • TAG: a tag de destino aplicada às VMs de back-end no balanceador de carga de serviço do produtor.

  • CLIENT_IP_RANGES_LIST: os intervalos de endereços IP de origem do tráfego do cliente. Para saber mais, consulte a tabela anterior.

  • RULES_LIST: uma lista separada por vírgulas de protocolos e portas às quais uma regra se aplica. Por exemplo, tcp,udp.

Para mais informações sobre como configurar regras de firewall da VPC, consulte a Visão geral das regras de firewall da VPC. Se você quiser configurar regras hierárquicas de firewall para permitir esse tráfego, consulte Visão geral das políticas hierárquicas de firewall.

Publicar um serviço

Para publicar um serviço, crie um anexo. É possível disponibilizar o serviço de duas maneiras:

Crie o anexo do serviço na mesma região que o balanceador de carga do serviço.

Cada anexo de serviço pode apontar para uma ou mais sub-redes do Private Service Connect, mas uma sub-rede do Private Service Connect não pode ser usada em mais de um anexo de serviço.

Publique um serviço com aprovação automática de projeto

Use estas instruções para publicar um serviço e permitir que qualquer consumidor se conecte automaticamente a ele. Se você quiser aprovar as conexões dos consumidores explicitamente, consulte Como publicar um serviço com aprovação explícita do projeto.

Ao publicar um serviço, você cria um anexo de serviço. Os consumidores de serviços usam os detalhes do anexo de serviço para se conectar ao seu serviço.

Se você quiser visualizar as informações de conexão do consumidor, ative o protocolo PROXY nos serviços compatíveis. Para mais informações sobre os serviços compatíveis, consulte Recursos e compatibilidade. Para mais informações sobre o protocolo PROXY, consulte Como visualizar informações de conexão do consumidor.

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Serviços publicados.

  3. Clique em Publicar serviço.

  4. Selecione o Tipo de balanceador de carga para o serviço que você quer publicar:

    • Balanceador de carga TCP/UDP interno
    • Balanceador de carga de proxy TCP interno
    • Balanceador de carga HTTP(S) interno
  5. Selecione o Balanceador de carga interno que hospeda o serviço que você quer publicar.

    Os campos de rede e região são preenchidos com os detalhes do balanceador de carga interno selecionado.

  6. Se solicitado, selecione a Regra de encaminhamento associada ao serviço que você quer publicar.

  7. Em Nome do serviço, insira um nome para o anexo de serviço.

  8. Selecione uma ou mais sub-redes para o serviço. Se quiser adicionar uma nova sub-rede, crie uma:

    1. Clique em Reservar nova sub-rede.
    2. Insira um Nome e uma Descrição opcional para a sub-rede.
    3. Selecione uma Região para a sub-rede.
    4. Digite o Intervalo de IP a ser usado para a sub-rede e clique em Adicionar.
  9. Se você quiser visualizar informações de conexão do consumidor, selecione Usar protocolo de proxy.

  10. Se você quiser configurar um nome de domínio, digite um Nome de domínio, incluindo um ponto final.

    O formato recomendado para o nome de domínio é REGION.p.DOMAIN.

    É preciso ser proprietário do nome de domínio. Para mais informações, consulte Configuração de DNS.

  11. Selecione Aceitar conexões automaticamente para todos os projetos.

  12. Clique em Adicionar serviço.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME  \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ]

Substitua:

  • ATTACHMENT_NAME: o nome a ser atribuído ao anexo de serviço.

  • REGION: a região do novo anexo de serviço. Precisa ser a mesma região do serviço que você está publicando.

  • RULE_NAME: o nome da regra de encaminhamento associada ao serviço que você está publicando.

  • PSC_SUBNET_LIST: uma lista separada por vírgulas de uma ou mais sub-redes a serem usadas com esse anexo de serviço.

  • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN.

    Para mais informações, consulte Configuração de DNS.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI",
  ],
  "domainNames": [
    "DOMAIN_NAME",
  ],
}

Substitua:

  • PROJECT_ID: o projeto do anexo de serviço.

  • ATTACHMENT_NAME: o nome a ser atribuído ao anexo de serviço.

  • REGION: a região do novo anexo de serviço. Precisa ser a mesma região do serviço que você está publicando.

  • RULE_URI: o nome da regra de encaminhamento associada ao serviço que você está publicando.

  • PSC_SUBNET_1_URI e PSC_SUBNET_2_URI: os URIs de sub-rede a serem usados para este anexo de serviço. É possível especificar uma ou mais sub-redes por URI.

  • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN.

    Para mais informações, consulte Configuração de DNS.

Publicar um serviço com aprovação explícita de projeto

Use estas instruções para publicar um serviço que você precisa aprovar explicitamente os consumidores que quiserem se conectar a ele. Se você quiser aprovar as conexões de consumidores automaticamente, consulte Como publicar um serviço com aprovação automática de projetos.

Ao publicar um serviço, você cria um anexo de serviço. Os consumidores de serviços usam os detalhes do anexo de serviço para se conectar ao seu serviço.

Se você adicionar um projeto às listas de aceitação e negação, as solicitações de conexão desse projeto serão rejeitadas.

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Serviços publicados.

  3. Clique em Publicar serviço.

  4. Selecione o Tipo de balanceador de carga: Balanceador de carga TCP/UDP interno ou Balanceador de carga HTTP(S) interno.

  5. Selecione o Balanceador de carga interno que hospeda o serviço que você quer publicar.

    Os campos de rede e região são preenchidos com os detalhes do balanceador de carga interno selecionado.

  6. Se solicitado, selecione a Regra de encaminhamento associada ao serviço que você quer publicar.

  7. Em Nome do serviço, insira um nome para o anexo de serviço.

  8. Selecione uma ou mais sub-redes para o serviço.

    Se quiser adicionar uma nova sub-rede, crie uma:

    1. Clique em Reservar nova sub-rede.
    2. Insira um Nome e uma Descrição opcional para a sub-rede.
    3. Selecione uma Região para a sub-rede.
    4. Digite o Intervalo de IP a ser usado para a sub-rede e clique em Adicionar.
  9. Se você quiser visualizar informações de conexão do consumidor, selecione a caixa de seleção Protocolos.

  10. Se você quiser configurar um nome de domínio, digite um Nome de domínio, incluindo um ponto final.

    O formato recomendado para o nome de domínio é REGION.p.DOMAIN.

    É preciso ser proprietário do nome de domínio. Para mais informações, consulte Configuração de DNS.

  11. Selecione Aceitar conexões para projetos selecionados.

  12. Clique em Adicionar projeto aceito e insira os detalhes dos projetos que você quer permitir que se conectem a este serviço:

    • Nome do projeto: nome do projeto para permitir conexões.
    • Limite de conexão: o número de endpoints do Private Service Connect da rede VPC do consumidor que podem se conectar ao anexo de serviço da rede VPC do produtor.
  13. Clique em Adicionar serviço.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME  \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=ACCEPTED_PROJECT_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --enable-proxy-protocol ] \
    [--domain-names=DOMAIN_NAME]

Substitua:

  • ATTACHMENT_NAME: o nome a ser atribuído ao anexo de serviço.

  • REGION: a região do novo anexo de serviço. Precisa ser a mesma região do serviço que você está publicando.

  • RULE_NAME: o nome da regra de encaminhamento associada ao serviço que você está publicando.

  • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os projetos a serem aceitos. --consumer-accept-list é opcional e pode conter um ou mais projetos.

  • LIMIT_1 e LIMIT_2: os limites de conexão dos projetos. O limite de conexão é o número de endpoints ou back-ends do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

  • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os projetos a serem rejeitados. --consumer-reject-list é opcional e pode conter um ou mais projetos.

  • PSC_SUBNET_LIST: uma lista separada por vírgulas de uma ou mais sub-redes a serem usadas com esse anexo de serviço.

  • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN.

    Para mais informações, consulte Configuração de DNS.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "region": "REGION",
  "connectionPreference": "ACCEPT_MANUAL",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI",
  ],
  "consumerRejectList": [
    "REJECTED_PROJECT_1",
    "REJECTED_PROJECT_2",
  ],
  "consumerAcceptList": [
    "consumerProjectLimit": {
      "projectId": "ACCEPTED_PROJECT_1",
      "connectionsLimit": "LIMIT_2",
    },
    "consumerProjectLimit": {
      "projectId": "ACCEPTED_PROJECT_2",
      "connectionsLimit": "LIMIT_2",
    },
  ],
  "domainNames": [
    "DOMAIN_NAME",
  ],
}

Substitua:

  • PROJECT_ID: o projeto do anexo de serviço.

  • REGION: a região do anexo de serviço.

  • ATTACHMENT_NAME: o nome a ser atribuído ao anexo de serviço.

  • RULE_URI: o URI da regra de encaminhamento associada ao serviço que você está publicando.

  • PSC_SUBNET_1_URI e PSC_SUBNET_2_URI: os URIs de sub-rede a serem usados para este anexo de serviço. É possível especificar uma ou mais sub-redes por URI.

  • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os projetos a serem rejeitados. consumerRejectList é opcional e pode conter um ou mais projetos.

  • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os projetos a serem aceitos. consumerAcceptList é opcional e pode conter um ou mais projetos.

  • LIMIT_1 e LIMIT_2: os limites de conexão dos projetos. O limite de conexão é o número de endpoints ou back-ends do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

  • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN.

    Para mais informações, consulte Configuração de DNS.

Ver informações da conexão do consumidor

Por padrão, o Private Service Connect converte o endereço IP de origem do consumidor para um endereço em uma das sub-redes do Private Service Connect na rede VPC do fornecedor de serviços. Se você quiser ver o endereço IP original de origem do consumidor, ative o protocolo PROXY.

Nem todos os serviços são compatíveis com o protocolo PROXY. Para mais informações, consulte Recursos e compatibilidade.

Se o protocolo PROXY estiver ativado, é possível conseguir o endereço IP de origem e o ID da conexão do PSC (pscConnectionId) do consumidor no cabeçalho do protocolo PROXY.

Quando você ativa o protocolo PROXY para um anexo de serviço, a alteração se aplica apenas a novas conexões. As conexões existentes não incluem o cabeçalho do protocolo PROXY.

Se você ativar o protocolo PROXY, verifique a documentação do software do servidor da Web de back-end para ver informações sobre como analisar e processar cabeçalhos de protocolo PROXY recebidos nos payloads TCP de conexão do cliente. Se o protocolo PROXY estiver ativado no anexo do serviço, mas o servidor da Web de back-end não estiver configurado para processar cabeçalhos de protocolo PROXY, as solicitações da Web poderão estar malformadas. Se as solicitações estiverem incorretas, o servidor não poderá interpretá-las.

O pscConnectionId é codificado no cabeçalho do protocolo PROXY no formato Type-Length-Value (TLV, na sigla em inglês).

Campo Comprimento do campo Valor do campo
Tipo 1 byte 0xE0 (PP2_TYPE_GCP)
Duração 2 bytes 0x8 (8 bytes)
Valor 8 bytes O pscConnectionId de 8 bytes na ordem de rede

Visualize o pscConnectionId de 8 bytes da regra de encaminhamento do consumidor ou do anexo de serviço do produtor.

O pscConnectionId é globalmente exclusivo para todas as conexões ativas em um determinado momento. No entanto, com o tempo, é possível reutilizar um pscConnectionId nestes cenários:

  • Em uma determinada rede VPC, se você excluir um endpoint (regra de encaminhamento) e criar um novo usando o mesmo endereço IP, o mesmo pscConnectionId poderá ser usado.

  • Se você excluir uma rede VPC que continha endpoints (regras de encaminhamento), após um período de espera de sete dias, o pscConnectionId usado para esses endpoints poderá ser usado para outro endpoint em outra rede VPC.

Use pscConnectionId para depurar e rastrear a origem dos pacotes.

Além disso, um ID do anexo de PSC de 16 bytes está disponível no anexo de serviço do produtor. O ID do anexo do PSC é um ID exclusivo globalmente que identifica um anexo de serviço do Private Service Connect. É possível usar o ID do anexo do PSC para visualizar e depurar. O ID do anexo PSC não está incluído no cabeçalho do protocolo PROXY.

Gerenciar solicitações de acesso a um serviço publicado

Se você publicou um serviço com aprovação explícita do projeto, aceite ou rejeite as solicitações de conexão nos projetos do consumidor. Para mais informações, consulte Gerenciar solicitações de acesso a um serviço publicado.

Também é possível alternar entre aceitação automática e explícita de projeto para um serviço publicado. Para mais informações, consulte Alterar a preferência de conexão de um serviço publicado.

Adicionar ou remover sub-redes de um serviço publicado

É possível adicionar ou remover sub-redes de um serviço publicado. Para mais informações, consulte Adicionar ou remover sub-redes de um serviço publicado.

Listar serviços publicados

Você pode listar todos os serviços.

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Serviços publicados.

    Os anexos de serviço do Private Service Connect serão exibidos.

gcloud

  1. Listar anexos de serviços.

    gcloud compute service-attachments list [--regions=REGION_LIST]
    

    Substitua:

    • REGION_LIST: uma lista separada por vírgulas de uma ou mais regiões em que você quer visualizar anexos de serviço. Por exemplo, us-central1 ou us-west1,us-central1.

API

Você pode ver todos os anexos de serviço em uma determinada região ou em todas as regiões.

  • Veja todos os anexos de serviço em uma região:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    
  • Veja todos os anexos de serviço em todas as regiões:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/serviceAttachments
    

    Substitua:

    • PROJECT_ID: o projeto do anexo de serviço.

    • REGION: a região do anexo de serviço.

    • ATTACHMENT_NAME: o nome do anexo de serviço.

Ver detalhes de um serviço publicado

É possível ver os detalhes de configuração de um serviço publicado. É possível ver alguns detalhes de configuração no Console do Google Cloud, por exemplo, o URI de anexo do serviço que os consumidores de serviço precisam para se conectar ao serviço. Para ver todos os detalhes, incluindo os valores de pscConnectionId para os consumidores do anexo de serviço, use a Google Cloud CLI ou a API.

Console

É possível ver os detalhes de um serviço publicado. O campo Anexo de serviço contém o URI do anexo de serviço.

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Serviços publicados.

  3. Clique no serviço que você quer visualizar.

gcloud

É possível ver os detalhes de um serviço publicado. O campo selfLink contém o URI do anexo de serviço.

gcloud compute service-attachments describe \
    ATTACHMENT_NAME --region=REGION

API

É possível ver os detalhes de um serviço publicado. O campo selfLink contém o URI do anexo de serviço.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Substitua:

  • PROJECT_ID: o projeto do anexo de serviço.

  • REGION: a região do anexo de serviço.

  • ATTACHMENT_NAME: o nome do anexo de serviço.

Excluir um serviço publicado

É possível excluir um serviço publicado, mesmo que haja conexões de consumidor com o anexo de serviço. A exclusão do serviço publicado remove apenas o anexo do serviço. O balanceador de carga associado não é excluído. Quando você exclui um serviço publicado, os seguintes itens se aplicam:

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Serviços publicados.

  3. Clique no serviço que você quer excluir.

  4. Clique em Excluir.

gcloud

gcloud compute service-attachments delete \
    ATTACHMENT_NAME --region=REGION

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Substitua:

  • PROJECT_ID: o projeto do anexo de serviço.

  • REGION: a região do anexo de serviço.

  • ATTACHMENT_NAME: o nome do anexo de serviço.

Problemas conhecidos

  • Ao atualizar um anexo de serviço usando a API PATCH, é necessário fornecer todos os campos do anexo de serviço no corpo da solicitação, não apenas os campos que você está atualizando. Use serviceAttachments.get para recuperar todos os campos.

Solução de problemas

Erro ao atualizar um anexo de serviço

Se você vir a seguinte mensagem de erro ao atualizar um anexo de serviço, a lista de aceitação ou de rejeição pode incluir projetos excluídos: The resource PROJECT was not found.

Remova os projetos excluídos da configuração do anexo do serviço para resolver o problema.

  1. Use o comando gcloud compute service-attachments describe para mostrar a configuração do anexo do serviço que você quer modificar.

    • Para gerar a lista de aceitação em um formato que você possa usar mais tarde para atualizar o anexo do serviço, faça o seguinte:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION --flatten="consumerAcceptLists[]" \
        --format="csv[no-heading,separator='='](consumerAcceptLists.projectIdOrNum,consumerAcceptLists.connectionLimit)" \
        | xargs | sed -e 's/ /,/g'
      

      A saída da lista de aceitação será parecida com esta:

      PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
      
    • Para gerar a lista de rejeição em um formato que você possa usar mais tarde para atualizar o anexo do serviço, faça o seguinte:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION \
        --format="value[delimiter=','](consumerRejectLists[])"
      

      A saída da lista de rejeição é semelhante a esta:

      PROJECT_1,PROJECT_2,PROJECT_3
      
  2. Edite a resposta ao comando para remover os projetos excluídos da lista de aceitação e da lista de rejeição.

  3. Atualize o anexo do serviço para remover os projetos excluídos.

    • Para atualizar a lista de aceitação, faça o seguinte:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=UPDATED_ACCEPT_LIST
      
    • Para atualizar a lista de rejeição, faça o seguinte:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-reject-list=UPDATED_REJECT_LIST