Pular para o conteúdo principal
Snapshots são backups de sua aplicação ou banco de dados em um ponto específico no tempo. Eles permitem que você restaure sua aplicação ou banco de dados para um estado anterior, se necessário. A Square Cloud fornece snapshots ilimitados com backups automáticos diários.

Criando um snapshot de aplicação

client.snapshot retorna um objeto Snapshot.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    snapshot = await client.snapshot(app_id='application_id')
    
    print(snapshot.url)  # URL para download do snapshot
    print(snapshot.key)  # Identificador chave do snapshot

Baixando um snapshot

O objeto Snapshot fornece um método para baixar o snapshot como um arquivo zip.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    snapshot = await client.snapshot(app_id='application_id')
    
    # Baixar snapshot para o diretório atual
    zip_file = await snapshot.download()
    
    # Baixar snapshot para diretório específico
    zip_file = await snapshot.download(path='./backups')

Listando snapshots de aplicação

client.all_app_snapshots retorna uma lista de objetos SnapshotInfo.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    snapshots = await client.all_app_snapshots(app_id='application_id')
    
    for snapshot in snapshots:
        print(f"ID do Snapshot: {snapshot.id}")
        print(f"  Tamanho: {snapshot.size}")
        print(f"  Criado em: {snapshot.created_at}")

Restaurando um snapshot

client.restore_snapshot retorna um objeto Response. Você pode restaurar snapshots tanto para aplicações quanto para bancos de dados.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    # Restaurar um snapshot de aplicação
    response = await client.restore_snapshot(
        application_type='app',
        app_id='application_id',
        snapshot_id='snapshot_id',
        version_id='version_id'
    )
    
    print(f"Snapshot restaurado: {response.status}")
    
    # Restaurar um snapshot de banco de dados
    response = await client.restore_snapshot(
        application_type='database',
        app_id='database_id',
        snapshot_id='snapshot_id',
        version_id='version_id'
    )
    
    print(f"Snapshot de banco de dados restaurado: {response.status}")

Estruturas de dados do Snapshot

Snapshot

O objeto Snapshot representa um snapshot criado:
PropriedadeTipoDescrição
urlstrURL para download do snapshot
keystrIdentificador único do snapshot

SnapshotInfo

O objeto SnapshotInfo representa metadados do snapshot:
PropriedadeTipoDescrição
idstrIdentificador único do snapshot
sizestrTamanho do snapshot
created_atstrTimestamp de criação do snapshot (ISO 8601)

Melhores práticas

  • Backups automáticos: A Square Cloud cria automaticamente snapshots diários para suas aplicações e bancos de dados.
  • Snapshots ilimitados: Crie quantos snapshots manuais precisar sem custos adicionais.
  • Período de retenção: Snapshots são mantidos por 30 dias.
  • Tempo de restauração: O processo de restauração leva aproximadamente 60 segundos para garantir que todos os dados estejam estáveis.
  • Testes: Antes de restaurar um snapshot, considere criar uma nova aplicação ou banco de dados para testar o processo de restauração primeiro.

Limites de snapshots

  • Snapshots diários por plano: Cada plano pode gerar (RAM / 256) * 2 snapshots por dia
    • Exemplo: Plano Hobby com 2048MB = 16 snapshots diários (480 por mês)
  • Retenção: Todos os snapshots são mantidos dos últimos 30 dias
  • Custo: Sem custo adicional para snapshots