Instâncias do Projeto

Use estes endpoints para descobrir quais instâncias estão ativas e alterar a quantidade de réplicas de um projeto. Eles são úteis para automações de escala, rotinas de economia e painéis internos de operação.

Headers

HeaderObrigatórioDescrição
x-api-keySimAPI Key do projeto
x-organization-idSimOrganização ativa do projeto
Content-Type: application/jsonSimNecessário apenas no PATCH

Listar Instâncias

Retorna os identificadores das instâncias atuais do projeto.

GET /project/:id/instances

Parâmetros de Path

ParâmetroTipoDescrição
idstringID do projeto (ObjectId)

Resposta

{
  "status": "success",
  "message": "get instances with success",
  "data": [
    { "instance": "abc" },
    { "instance": "def" }
  ]
}

Use o valor de instance em chamadas de métricas e logs quando quiser consultar um container específico.

Alterar Quantidade de Instâncias

Altera a quantidade de réplicas do projeto.

PATCH /project/:id/instances

Body

CampoTipoObrigatórioDescrição
instancesnumberSimNova quantidade de instâncias. Deve ser um inteiro positivo.

Exemplo

{
  "instances": 3
}

Resposta

{
  "status": "success",
  "message": "project instances changed with success"
}

Regras de Operação

SituaçãoResultado
instances igual ao valor atualRetorna 200 sem alteração relevante
instances igual a 0Rejeitado. Use Ciclo de Vida para parar o projeto
Projeto paradoRejeitado. Use /resume antes de escalar
Plano mensal ou anualPode ser rejeitado; escala dinâmica é voltada para pagamento por hora
Plano db-freeNão permite alteração dinâmica de instâncias
MariaDBExige exatamente 3 instâncias

Exemplos

curl

curl -X GET "https://api.zenifra.com/v1/project/507f1f77bcf86cd799439011/instances" \
  -H "x-api-key: sua-api-key" \
  -H "x-organization-id: sua-organization-id"
curl -X PATCH "https://api.zenifra.com/v1/project/507f1f77bcf86cd799439011/instances" \
  -H "x-api-key: sua-api-key" \
  -H "x-organization-id: sua-organization-id" \
  -H "Content-Type: application/json" \
  -d '{"instances": 3}'

Python

import requests

API_KEY = "sua-api-key"
ORGANIZATION_ID = "sua-organization-id"
PROJECT_ID = "507f1f77bcf86cd799439011"

headers = {"x-api-key": API_KEY, "x-organization-id": ORGANIZATION_ID}

instances = requests.get(
    f"https://api.zenifra.com/v1/project/{PROJECT_ID}/instances",
    headers=headers
).json()

scale = requests.patch(
    f"https://api.zenifra.com/v1/project/{PROJECT_ID}/instances",
    headers=headers,
    json={"instances": 3}
).json()

Erros Comuns

CódigoMotivo provávelComo resolver
400instances ausente, inválido ou igual a 0Envie um inteiro positivo e use /stop para parar
404Projeto não encontradoVerifique Project ID, API Key e organização
409Estado ou plano não permite escala dinâmicaConfira se o projeto está rodando e usa pagamento por hora
500Falha operacional ao aplicar escalaTente novamente ou acione o suporte

Próximos Passos