Todos os produtos
Search
Central de documentação

:Ambientes cloud

Última atualização: Sep 24, 2026

Um ambiente define o modelo de contêiner para uma sessão, incluindo o sistema operacional, a política de rede e os pacotes pré-instalados. Crie ambientes personalizados para diferentes casos de uso, como auditorias de segurança, análise de dados ou desenvolvimento de propósito geral.

Importante

O novo site de documentação do Qoder CN já está disponível. O conteúdo deste site pode não refletir os recursos e as alterações mais recentes do product. Acesse docs.qoder.cn para obter a documentação mais recente do product.

O que é um ambiente

Um ambiente atua como a camada de infraestrutura para uma sessão:

  • Tipo de contêiner — Atualmente, suporta cloud (um contêiner hospedado na cloud).

  • Política de rede — Controla o acesso de rede de saída do contêiner.

  • Pacotes — Pré-instala pacotes do sistema, Python e Node.js.

Ao iniciar uma sessão, o sistema cria uma instância isolada com base no modelo de ambiente especificado.

Campos

Parâmetro

Tipo

Obrigatório

Descrição

id

string

—

ID gerado pelo sistema com o prefixo env_.

type

string

—

Fixo como "environment".

name

string

Sim

Nome do ambiente.

description

string

Não

Descrição opcional. O padrão é "".

config

object

Sim

Configuração do ambiente (tipo, rede, pacotes).

config.type

string

Sim

Tipo de contêiner. Atualmente fixo como "cloud".

config.networking

object

Não

Objeto de política de rede. A propriedade type deve ser "unrestricted", "limited" ou "allowed_hosts".

config.packages

object

Não

Configuração para pacotes pré-instalados.

status

string

—

Status do ambiente. Sempre ready.

archived

boolean

—

Indica se o ambiente está arquivado. O padrão é false.

archived_at

string

null

—

Carimbo de data e hora do arquivamento (ISO 8601). null se não estiver arquivado.

created_at

string

—

Carimbo de data e hora da criação (ISO 8601).

updated_at

string

—

Carimbo de data e hora da última atualização (ISO 8601).

Política de rede

O campo config.networking suporta três modos. Todos os modos devem usar a forma de objeto; formas abreviadas de string como "unrestricted" não têm suporte e resultam em erro 400.

Modo

Valor

Descrição

Irrestrito

{"type": "unrestricted"}

O contêiner pode acessar qualquer endereço externo.

Limitado

{"type": "limited", "allow_package_managers": true}

Permite acesso apenas aos services públicos reconhecidamente seguros e gerenciadores de pacotes.

Lista de permissões

{"type": "allowed_hosts", "allowed_hosts": [...]}

Restringe o acesso a uma lista especificada de nomes de host.

Campos de networking

Parâmetro

Tipo

Descrição

networking.type

string

Tipo de política de rede: unrestricted, limited ou allowed_hosts.

networking.allow_package_managers

boolean

Indica se deve permitir o acesso aos gerenciadores de pacotes (pip, npm e apt) no modo limited.

networking.allowed_hosts

array

Uma lista de nomes de host permitidos no modo allowed_hosts.

Modo irrestrito

{
  "config": {
    "type": "cloud",
    "networking": {"type": "unrestricted"}
  }
}

Use este modo para tarefas de desenvolvimento geral que precisam baixar dependências ou acessar APIs externas.

Modo limitado

{
  "config": {
    "type": "cloud",
    "networking": {
      "type": "limited",
      "allow_package_managers": true
    }
  }
}

Use este modo para tarefas que não precisam de acesso arbitrário à internet, mas ainda exigem baixar dependências por meio de gerenciadores de pacotes.

Modo de lista de permissões

{
  "config": {
    "type": "cloud",
    "networking": {
      "type": "allowed_hosts",
      "allowed_hosts": [
        "api.github.com",
        "registry.npmjs.org",
        "pypi.org"
      ]
    }
  }
}

Use este modo para cenários de alta segurança ou conformidade, nos quais você precisa controlar com precisão quais services externos estão acessíveis.

Pacotes pré-instalados

Especifique os pacotes a serem pré-instalados na inicialização do contêiner usando config.packages:

{
  "config": {
    "type": "cloud",
    "networking": {"type": "unrestricted"},
    "packages": {
      "apt": ["git", "build-essential", "libssl-dev"],
      "pip": ["pandas", "numpy", "scikit-learn"],
      "npm": ["typescript", "eslint", "prettier"]
    }
  }
}

Gerenciador de pacotes

Parâmetro

Descrição

apt

packages.apt

Pacotes do sistema Debian/Ubuntu.

pip

packages.pip

Pacotes Python.

npm

packages.npm

Pacotes Node.js (instalados globalmente).

Pré-instalar pacotes aumenta o tempo de inicialização do ambiente. Adicione apenas o que for necessário; instale outros pacotes sob demanda durante a sessão.

Crie um ambiente

# Create a dedicated data science environment
curl -s -X POST https://api.qoder.com.cn/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "data-science",
    "config": {
      "type": "cloud",
      "networking": {"type": "unrestricted"},
      "packages": {
        "apt": ["build-essential"],
        "pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter"]
      }
    }
  }' | jq .

Em caso de sucesso, a API retorna um status 201 Created:

{
  "id": "env_019e44eb66bb748cabcd1489f6fa4428",
  "type": "environment",
  "name": "data-science",
  "description": "",
  "config": {
    "type": "cloud",
    "networking": {"type": "unrestricted"},
    "packages": {
      "apt": ["build-essential"],
      "pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter"]
    }
  },
  "status": "ready",
  "archived": false,
  "archived_at": null,
  "created_at": "2026-05-18T10:00:00Z",
  "updated_at": "2026-05-18T10:00:00Z"
}

Crie um ambiente seguro

# Create a secure environment that only allows access to internal APIs
curl -s -X POST https://api.qoder.com.cn/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "secure-internal",
    "config": {
      "type": "cloud",
      "networking": {
        "type": "allowed_hosts",
        "allowed_hosts": ["internal-api.mycompany.com", "git.mycompany.com"]
      },
      "packages": {
        "apt": ["git", "curl"]
      }
    }
  }' | jq .

Consulte ambientes

# List all environments
curl -s https://api.qoder.com.cn/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_PAT"
# Get details for a single environment
curl -s https://api.qoder.com.cn/api/v1/cloud/environments/env_ds456 \
  -H "Authorization: Bearer $QODER_PAT"

Atualize um ambiente

# Add new packages to an existing environment
curl -s -X PUT https://api.qoder.com.cn/api/v1/cloud/environments/env_ds456 \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "data-science",
    "config": {
      "type": "cloud",
      "networking": {"type": "unrestricted"},
      "packages": {
        "apt": ["build-essential", "libpq-dev"],
        "pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter", "sqlalchemy"]
      }
    }
  }' | jq .

Atualizar um ambiente não afeta as sessões em execução. A nova configuração se aplica apenas às sessões criadas após a atualização.

Exclua um ambiente

# Delete a custom environment
curl -s -X DELETE https://api.qoder.com.cn/api/v1/cloud/environments/env_ds456 \
  -H "Authorization: Bearer $QODER_PAT"

Se uma sessão ativa estiver usando o ambiente, a solicitação DELETE falhará com um erro 409 Conflict: "Environment is in use and cannot be deleted". Arquive ou exclua as sessões associadas primeiro, ou use POST /environments/{id}/archive para excluir logicamente o ambiente.

Configurações recomendadas

Cenário

Configuração recomendada

Desenvolvimento geral

Use o ambiente default; sem necessidade de configurações adicionais.

Análise de dados

Pré-instale pandas/numpy; use a rede irrestrita.

Auditoria de segurança

Use uma lista de permissões para a rede e instale pacotes mínimos.

Desenvolvimento frontend

Pré-instale ferramentas do ecossistema Node.js; permita o acesso ao registro npm.

Integração de CI/CD

Pré-instale as CLIs do Git e do Docker; use o modo de lista de permissões.

Perguntas frequentes

P: Quanto tempo preciso esperar para usar um ambiente após criá-lo? R: Após criar um ambiente, seu status passa imediatamente para ready, e você pode usá-lo para criar uma sessão de imediato. A inicialização real do contêiner, incluindo a instalação de dependências, ocorre ao iniciar a sessão.P: Posso especificar as versões dos pacotes pré-instalados? R: Sim, você pode especificar versões para pacotes pip e npm, como "pandas==2.1.0" ou "typescript@5.0.0". Os pacotes apt usam a versão padrão do repositório do sistema.P: O que devo fazer se o Agent falhar na execução devido a uma configuração de rede incorreta? R: Crie um novo ambiente ou atualize o existente, modifique a política de rede e, em seguida, reinicie a sessão.P: Qual é o número máximo de ambientes que uma conta pode criar? R: Não há limite rígido. No entanto, recomendamos criar ambientes com base nas suas necessidades reais para evitar problemas de gerenciamento. Sugerimos usar convenções de nomenclatura para organizá-los.