Rede entre projetos
Dentro da organização, um projeto não alcança outro pela rede interna. A rede junta projetos que podem ser autorizados a se chamar, e a permissão — dada por quem recebe a chamada — abre um serviço para um projeto. O que ninguém autorizou continua bloqueado, inclusive entre projetos da mesma rede.
Como funciona
- A rede é da organização. Um projeto entra nela com um dos seus ambientes. Para separar produção de staging, use uma rede para cada: o
stagingde um projeto nunca chega ao serviço de produção de outro só porque os dois projetos estão na mesma rede. - Estar na rede não libera nada. Estar nela torna a permissão possível e faz o nome interno dos serviços resolver.
- A permissão vale para um serviço, de aplicação web ou de serviço interno, pela porta que ele anuncia, e só por TCP. Ela é dada no projeto de destino, e não é transitiva: se o projeto A chama B e B chama C, A não chama C.
- O próprio ambiente não muda. Os serviços de um mesmo ambiente continuam se chamando como antes.
- O endereço público continua público. Um serviço publicado na internet continua alcançável pelo endereço público dele, para qualquer um. Para que um projeto só seja alcançável pela rede, torne-o interno.
- Ambiente de pré-visualização não entra em rede.
Quem pode o quê
| Ação | Quem |
|---|---|
| Criar ou excluir uma rede | admin ou operator da organização |
| Pôr um ambiente numa rede | admin ou operator da organização |
| Tirar o ambiente de um projeto da rede | Quem pode alterar o projeto |
| Autorizar um projeto a chamar um serviço | Quem pode alterar o projeto do serviço chamado |
| Revogar uma permissão | Quem pode alterar o projeto chamado, ou o que chama |
| Ver as redes e quem está nelas | Qualquer pessoa da organização |
Quais projetos estão em cada rede é visível para toda a organização, para que se saiba a quem pedir. As permissões e os endereços internos aparecem só para os projetos que você enxerga.
Os estados de uma permissão
| Estado | O que significa |
|---|---|
| Ainda não liberado | A permissão existe; a plataforma ainda não a aplicou |
| Liberado | O projeto de origem alcança o serviço |
| Revogação em andamento — o acesso ainda está aberto | A permissão foi revogada; até a plataforma aplicar, o acesso continua |
| Revogado — novas conexões bloqueadas | Aplicada. Conexão nova é recusada |
Uma conexão aberta antes da revogação — o pool de um banco, um canal gRPC, um WebSocket — pode continuar viva até o serviço de destino reiniciar. Para encerrar também essas, publique o serviço de destino de novo depois que a permissão chegar a Revogado.
Passo a passo
No console
- Em Redes, na organização, clique em Nova rede. O nome tem de 3 a 40 caracteres — letras minúsculas, números e hífen, começando por letra e sem hífen no fim —, e a descrição é opcional.
- Em cada projeto, na tela Rede do projeto, use Pôr na rede e escolha o ambiente.
- No projeto que vai ser chamado, use Autorizar projeto: escolha o serviço e o Projeto que passa a chamar. A porta é a do serviço, e a permissão acompanha se ela mudar.
- Acompanhe a permissão até Liberado.
Pela CLI
zero networks create pagamentos
zero networks attach <ambiente-do-checkout> --network pagamentos
zero networks attach <ambiente-da-api> --network pagamentos
zero services internal-name <serviço-da-api> api # api.zero.internal
zero networks grant pagamentos --from <projeto-checkout> --to <serviço-da-api> --wait
zero networks grants pagamentos
--wait espera a regra ser aplicada e sai com código 1 se o prazo vencer (--timeout, padrão 5 minutos). Os comandos completos estão em CLI.
Chamar o serviço
Pelo nome interno e pela porta do serviço — por exemplo, http://api.zero.internal:8080. O nome resolve para qualquer projeto da rede, mas só chega ao serviço quem tem permissão: resolver não é alcançar.
Para dar à rede caminhos por prefixo, como /v1 e /v2 levando a serviços diferentes, use uma entrada interna do Gateway.
Tirar um ambiente da rede, e excluir a rede
- Tirar um ambiente da rede é recusado enquanto outros projetos chamam serviços dele — por permissão ou por um caminho de entrada interna. Revogue e remova esses caminhos antes.
- Uma rede só é excluída vazia: sem ambientes associados e sem entradas internas.
Erros comuns
| Sintoma | Causa | O que fazer |
|---|---|---|
| "O projeto de origem não está nesta rede" | O projeto que vai chamar não tem ambiente na rede | Ponha um ambiente dele na rede e autorize de novo |
| "O serviço de destino não está nesta rede" | O ambiente do serviço está em outra rede, ou em nenhuma | Ponha o ambiente do serviço nesta rede, ou use a rede em que ele está |
| "Essa porta não é a do serviço" | A porta informada não é a que o serviço anuncia | Omita a porta: a permissão usa a do serviço |
| "Este serviço não recebe conexões" | O destino é um processo contínuo ou uma tarefa agendada | Escolha uma aplicação web ou um serviço interno |
| "Este projeto já está nesta rede com outro ambiente" | Um projeto entra numa rede com um ambiente só | Tire o outro ambiente, ou use uma rede para cada ambiente |
| "Ambiente de pré-visualização não entra em rede" | O ambiente escolhido é de pull request | Use um ambiente de desenvolvimento, staging ou produção |
| "Outros projetos ainda chamam serviços deste ambiente" | Há permissões ou caminhos de entrada interna com destino nele | Revogue as permissões e remova os caminhos antes de desassociar |
| "Esta rede ainda está em uso" | A rede tem ambientes ou entradas internas | Desassocie os projetos e remova as entradas antes de excluir |
| "As regras de rede estão atrasadas" | A plataforma ainda não aplicou uma mudança | Ela tenta de novo sozinha; se persistir, repita a operação em alguns minutos |
Próximos passos
Esta página ajudou?
Reportar um problema nesta páginaNão envie senhas, chaves, tokens ou dados de clientes.