Rede privada
- Serviços do mesmo projeto ficam numa rede própria e se resolvem pelo
namedo serviço (DNS interno). O serviçoapié alcançável porapi, na porta do serviço. - Serviços de projetos diferentes nunca se alcançam.
visibility: "private"= sem rota pública: o proxy não publica e o serviço não recebeslug. Só os outros serviços do projeto o alcançam.- Use as variáveis automáticas em vez de montar a URL:
${{api.PRIVATE_URL}}(http://api:8080) ou${{api.PRIVATE_HOST}}+${{api.PORT}}. Veja Variáveis e referências. - Bancos gerenciados não ficam na rede do projeto: moram num nó de banco e são acessados pela URL das variáveis (
DATABASE_URLetc.), com TLS. Veja Conexão e referências. - Tráfego do serviço para a internet segue as regras de Isolamento.
Criar um serviço privado
Seção intitulada “Criar um serviço privado”SUF=$(date +%s)-$RANDOMH="Authorization: Bearer $NEBULAR_TOKEN"P=$(curl -sS -X POST "$NEBULAR_API/v1/projects" -H "$H" -H "Content-Type: application/json" \ -H "Idempotency-Key: rp-proj-$SUF" -d "{\"name\": \"rede-$SUF\"}" | jq -r .id)curl -sS -X POST "$NEBULAR_API/v1/projects/$P/services" -H "$H" -H "Content-Type: application/json" \ -H "Idempotency-Key: rp-api-$SUF" \ -d '{"name": "api", "kind": "app", "visibility": "private", "port": 8080, "source": {"type": "image", "ref": "ghcr.io/org/api:1.0"}}'{"id": "01j9zkjxrzywfreswk9kf9r1z7", "name": "api", "kind": "app", "visibility": "private", "port": 8080}No outro serviço do projeto, defina API_URL como ${{api.PRIVATE_URL}} e chame $API_URL/... do código. Receita completa: Front, back e banco.
Se algo falhar
Seção intitulada “Se algo falhar”| Sintoma | O que fazer |
|---|---|
| O front não alcança o back | Confira o port do back (precisa bater com a porta em que o processo escuta), o name usado no hostname e se ambos estão no mesmo projeto. |
422 unresolved_reference no deploy |
O serviço referenciado não existe no projeto ou o nome está errado. |
| Quer acessar o serviço privado de fora | Não é possível; torne-o public (com slug) via PATCH, ou exponha só o front. |