TimescaleDB: Automatizzare con la CLI

Avvia TimescaleDB, recupera le sue credenziali e modifica la sua configurazione in modo programmato con la Stackhero CLI

Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione TimescaleDB cloud pronta all'uso, pensata per permettervi di iniziare in pochi minuti. Ecco cosa vi aspetta:

  • Tutti i migliori plugin inclusi, come PostGIS, PgVector e altri ancora.
  • Accesso semplice all'interfaccia web PgAdmin per una gestione agevole del database.
  • Aggiornamenti facili e immediati con un solo clic per mantenere sempre aggiornata la vostra installazione.
  • Prestazioni affidabili e massima sicurezza sulla vostra VM privata e dedicata.

Se desiderate risparmiare tempo e ottimizzare il vostro workflow, il TimescaleDB cloud hosting di Stackhero è progettato per offrirvi la massima semplicità d'uso. Potete provarlo in appena 5 minuti!

Questa guida mostra come creare un servizio TimescaleDB, leggere le sue credenziali e aggiornare la sua configurazione interamente dalla riga di comando, senza alcun clic sul dashboard. È l'ideale per script, pipeline CI e agenti AI.

Per tutte le operazioni utilizzeremo la Stackhero CLI. Se non l'ha già fatto, può installarla con:

curl -fsSL https://www.stackhero.io/install.sh | sh

Il modo più semplice per iniziare è effettuare il login tramite browser. Quando esegue il comando di login, la CLI apre una pagina web dove può approvare l'accesso. Nessuna password o codice 2FA viene inserito direttamente nella CLI.

stackhero login

Dopo l'accesso, le sue credenziali vengono memorizzate localmente e saranno utilizzate automaticamente dai successivi comandi CLI.

Per ambienti completamente automatizzati come script o pipeline CI, può preferire un token di accesso non interattivo. Può crearne uno dal suo dashboard (Account > Access tokens), quindi esportarlo come variabile d'ambiente. La CLI, così come qualsiasi script eseguito, lo rileverà automaticamente.

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

Successivamente, vorrà elencare i service store TimescaleDB disponibili per il suo account. La CLI accetta direttamente il nome dello store (timescaledb), quindi non è necessario cercare o copiare alcun ID.

# Elenca i service store TimescaleDB (aggiunga --organization se ne gestisce più di uno)
stackhero services-store-list --name="timescaledb"

Può fare riferimento al nome dello store timescaledb nei comandi successivi, oppure scegliere un ID specifico svs-xxxxxx dall'elenco se preferisce.

# Elenca le dimensioni delle istanze per il suo service store (utilizzi la colonna NAME per --instance)
stackhero instances-store-list --service-store=timescaledb

# Elenca le regioni disponibili (nomi come "europe")
stackhero regions-list

Ecco uno script di esempio che crea uno stack, aggiunge il suo servizio TimescaleDB, attende che venga avviato, recupera la configurazione (incluse le credenziali generate) e applica una nuova configurazione.

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="timescaledb"   # Il nome del service store TimescaleDB (vedi step 2)
instance="..."                # Una dimensione dell'istanza dallo step 3
region="europe"               # Un nome di regione dallo step 3

# Crea uno stack per il suo servizio (usa l'organizzazione predefinita; aggiunga --organization se necessario)
stackId=$(stackhero --format=script stack-create \
  --name="My TimescaleDB stack")
echo "Stack creato: ${stackId}"

# Aggiunge TimescaleDB allo stack (i nomi vengono risolti automaticamente)
serviceId=$(stackhero --format=script service-add \
  --stack="My TimescaleDB stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Servizio aggiunto: timescaledb"

# Attende che il servizio sia completamente operativo (può richiedere alcuni minuti)
stackhero service-wait-for --service="timescaledb"

# Recupera la configurazione del servizio, incluse le credenziali generate
stackhero service-configuration-get --service="timescaledb" --format=json

Il comando service-configuration-get restituisce la configurazione completa del servizio, incluse password generate automaticamente e dettagli di connessione. L'output è in formato JSON, facilitando l'utilizzo in script e automazioni.

stackhero service-configuration-get --service=svc-xxxxxx --format=json

Può consultare uno schema di configurazione di esempio e poi applicare le sue impostazioni personalizzate. Quando aggiorna la configurazione, il servizio potrebbe riavviarsi per applicare le modifiche.

# Visualizza lo schema di configurazione e un esempio per il suo servizio
stackhero service-configuration-example --service=svc-xxxxxx

# Applica una configurazione personalizzata (il servizio si riavvia se necessario)
stackhero service-configuration-set \
  --service=svc-xxxxxx \
  --configuration='{ "...": "..." }'

# Attende che la nuova configurazione venga applicata
stackhero service-wait-for --service=svc-xxxxxx

Ecco fatto. Ha ora visto l'intero ciclo di vita: avviare un servizio, recuperare le sue credenziali e riconfigurarlo, tutto in modo scriptabile e automatizzato. Per approfondire, consulti la documentazione completa della CLI, che copre anche l'autenticazione non interattiva tramite STACKHERO_TOKEN illustrata qui.