Vai al contenuto principale
Gli snapshot sono backup della tua applicazione o del tuo database in un momento specifico. Ti permettono di ripristinare la tua applicazione o il tuo database a uno stato precedente in caso di necessità. Square Cloud fornisce snapshot illimitati con backup automatici giornalieri.

Creare uno snapshot di un’applicazione

client.snapshot restituisce un oggetto 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)  # Download URL for the snapshot
    print(snapshot.key)  # Snapshot key identifier

Scaricare uno snapshot

L’oggetto Snapshot fornisce un metodo per scaricare lo snapshot come file zip.
import squarecloud as square

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

async def example():
    snapshot = await client.snapshot(app_id='application_id')
    
    # Download snapshot to current directory
    zip_file = await snapshot.download()
    
    # Download snapshot to specific directory
    zip_file = await snapshot.download(path='./backups')

Elencare gli snapshot di un’applicazione

client.all_app_snapshots restituisce un elenco di oggetti 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"Snapshot ID: {snapshot.id}")
        print(f"  Size: {snapshot.size}")
        print(f"  Created at: {snapshot.created_at}")

Ripristinare uno snapshot

client.restore_snapshot restituisce un oggetto Response. Puoi ripristinare gli snapshot sia per le applicazioni che per i database.
import squarecloud as square

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

async def example():
    # Restore an application snapshot
    response = await client.restore_snapshot(
        application_type='app',
        app_id='application_id',
        snapshot_id='snapshot_id',
        version_id='version_id'
    )
    
    print(f"Snapshot restored: {response.status}")
    
    # Restore a database snapshot
    response = await client.restore_snapshot(
        application_type='database',
        app_id='database_id',
        snapshot_id='snapshot_id',
        version_id='version_id'
    )
    
    print(f"Database snapshot restored: {response.status}")

Strutture dati degli snapshot

Snapshot

L’oggetto Snapshot rappresenta uno snapshot creato:
ProprietàTipoDescrizione
urlstrURL di download dello snapshot
keystrIdentificatore univoco dello snapshot

SnapshotInfo

L’oggetto SnapshotInfo rappresenta i metadati di uno snapshot:
ProprietàTipoDescrizione
idstrIdentificatore univoco dello snapshot
sizestrDimensione dello snapshot
created_atstrTimestamp di creazione dello snapshot (ISO 8601)

Best practice

  • Backup automatici: Square Cloud crea automaticamente snapshot giornalieri per le tue applicazioni e i tuoi database.
  • Snapshot illimitati: Crea tutti gli snapshot manuali che desideri senza costi aggiuntivi.
  • Periodo di conservazione: Gli snapshot vengono conservati per 30 giorni.
  • Tempo di ripristino: Il processo di ripristino richiede circa 60 secondi per garantire che tutti i dati siano stabili.
  • Test: Prima di ripristinare uno snapshot, valuta la possibilità di creare una nuova applicazione o database per testare prima il processo di ripristino.

Limiti degli snapshot

  • Snapshot giornalieri per piano: Ogni piano può generare (RAM / 256) * 2 snapshot al giorno
    • Esempio: piano Hobby con 2048MB = 16 snapshot giornalieri (480 al mese)
  • Conservazione: Tutti gli snapshot vengono conservati per gli ultimi 30 giorni
  • Costo: Nessun costo aggiuntivo per gli snapshot