| list_instances |
Elenca tutte le istanze Cloud SQL nel progetto.
|
| get_instance |
Recupera i dettagli di un'istanza Cloud SQL.
|
| create_instance |
Avvia la creazione di un'istanza Cloud SQL.
Se non diversamente specificato, un'istanza appena creata utilizza la configurazione predefinita di un ambiente di sviluppo. Di seguito è riportata la configurazione predefinita per un'istanza in un ambiente di sviluppo:
{
"tier": "db-perf-optimized-N-2",
"data_disk_size_gb": 100,
"region": "us-central1",
"database_version": "POSTGRES_18",
"edition": "ENTERPRISE_PLUS",
"availability_type": "ZONAL",
"tags": [{"environment": "dev"}]
}
Per un'istanza in un ambiente di produzione è consigliata la seguente configurazione:
{
"tier": "db-perf-optimized-N-8",
"data_disk_size_gb": 250,
"region": "us-central1",
"database_version": "POSTGRES_18",
"edition": "ENTERPRISE_PLUS",
"availability_type": "REGIONAL",
"tags": [{"environment": "prod"}]
}
Per SQL Server è consigliata la seguente configurazione dell'istanza:
{
"tier": "db-perf-optimized-N-8",
"data_disk_size_gb": 250,
"region": "us-central1",
"database_version": "SQLSERVER_2022_STANDARD",
"edition": "ENTERPRISE_PLUS",
"availability_type": "REGIONAL",
"tags": [{"environment": "prod"}]
}
|
| execute_sql |
Esegui qualsiasi istruzione SQL valida, incluse istruzioni DDL (Data Definition Language), DCL (Data Control Language), DQL (Data Query Language) o DML (Data Manipulation Language), su un'istanza Cloud SQL. Per supportare lo strumento execute_sql, un'istanza Cloud SQL deve soddisfare i seguenti requisiti:
- Il valore di
data_api_access deve essere impostato su ALLOW_DATA_API.
- Per un'istanza MySQL, il flag di database
cloudsql_iam_authentication deve essere impostato su on. Per un'istanza PostgreSQL, il flag di database cloudsql.iam_authentication deve essere impostato su on.
- Per chiamare lo strumento
execute_sql è necessario un account utente IAM o un account di servizio IAM (CLOUD_IAM_USER o CLOUD_IAM_SERVICE_ACCOUNT). Lo strumento esegue le istruzioni SQL utilizzando i privilegi dell'utente del database che ha eseguito l'accesso con l'autenticazione IAM dei database.
Dopo aver utilizzato lo strumento create_instance per creare un'istanza, puoi utilizzare lo strumento create_user per creare un account utente IAM per l'utente attualmente connesso al progetto. Lo strumento execute_sql presenta le seguenti limitazioni:
- Se un'istruzione SQL restituisce una risposta superiore a 10 MB, la risposta verrà troncata.
- Lo strumento
execute_sql ha un timeout predefinito di 30 secondi. Se una query viene eseguita per più di 30 secondi, lo strumento restituisce un errore DEADLINE_EXCEEDED.
- Lo strumento
execute_sql non è supportato per SQL Server.
Se ricevi errori simili a "L'autenticazione IAM non è abilitata per l'istanza", puoi utilizzare lo strumento get_instance per controllare il valore del flag di autenticazione database IAM per l'istanza. Se ricevi errori come "L'istanza non consente l'utilizzo di executeSql per accedere a questa istanza", puoi utilizzare lo strumento get_instance per controllare l'impostazione data_api_access. Quando ricevi errori di autenticazione:
- Controlla se l'account utente attualmente connesso esiste come utente IAM sull'istanza utilizzando lo strumento
list_users.
- Se l'account utente IAM non esiste, utilizza lo strumento
create_user per creare l'account utente IAM per l'utente che ha eseguito l'accesso.
- Se l'utente attualmente connesso non dispone dei ruoli utente del database appropriati, puoi utilizzare lo strumento
update_user per concedere i ruoli del database all'utente. Ad esempio, il ruolo cloudsqlsuperuser può fornire a un utente IAM molte autorizzazioni richieste.
Controlla se all'utente attualmente connesso sono assegnate le autorizzazioni IAM corrette per il progetto. Puoi utilizzare il comando gcloud projects get-iam-policy [PROJECT_ID] per verificare se all'utente sono assegnati i ruoli o le autorizzazioni IAM appropriati per il progetto.
- L'utente deve disporre dell'autorizzazione
cloudsql.instance.login per eseguire l'autenticazione IAM dei database automatica.
- L'utente deve disporre dell'autorizzazione
cloudsql.instances.executeSql per eseguire istruzioni SQL utilizzando lo strumento execute_sql o l'API executeSql.
- Ruoli IAM comuni che contengono le autorizzazioni richieste: Utente istanza Cloud SQL (
roles/cloudsql.instanceUser) o Amministratore Cloud SQL (roles/cloudsql.admin)
Quando ricevi un ExecuteSqlResponse, controlla sempre i campi message e status nel corpo della risposta. Un codice di stato HTTP riuscito non garantisce la riuscita completa di tutte le istruzioni SQL. I campi message e status indicheranno se si sono verificati errori o avvisi parziali durante l'esecuzione dell'istruzione SQL.
|
| get_operation |
Recupera lo stato di un'operazione a lunga esecuzione. Il completamento di un'operazione a lunga esecuzione può richiedere diversi minuti. Se un'operazione richiede molto tempo, utilizza uno strumento a riga di comando per mettere in pausa per 30 secondi prima di ricontrollare lo stato dell'operazione.
|
| create_user |
Crea un utente del database per un'istanza Cloud SQL.
- Questo strumento restituisce un'operazione a lunga esecuzione. Utilizza lo strumento
get_operation per eseguire il polling del relativo stato fino al completamento dell'operazione.
- Quando utilizzi lo strumento
create_user, specifica il tipo di utente: CLOUD_IAM_USER o CLOUD_IAM_SERVICE_ACCOUNT.
- Per impostazione predefinita, al nuovo utente viene assegnato il ruolo
cloudsqlsuperuser, a meno che tu non specifichi esplicitamente altri ruoli del database nella richiesta.
- Puoi utilizzare un utente appena creato con lo strumento
execute_sql se l'utente è un utente IAM attualmente connesso. Lo strumento execute_sql esegue le istruzioni SQL utilizzando i privilegi dell'utente del database che ha eseguito l'accesso utilizzando l'autenticazione IAM dei database.
Lo strumento create_user presenta le seguenti limitazioni:
- Non puoi creare un utente integrato con una password.
- Lo strumento
create_user non supporta la creazione di un utente per SQL Server.
Per creare un utente IAM in PostgreSQL:
- Il nome utente del database deve essere l'indirizzo email dell'utente IAM e deve essere tutto in minuscolo. Ad esempio, per creare un utente per l'utente PostgreSQL IAM
example-user@example.com, puoi utilizzare la seguente richiesta:
{
"name": "example-user@example.com",
"type": "CLOUD_IAM_USER",
"instance":"test-instance",
"project": "test-project"
}
Il nome utente del database creato per l'utente IAM è example-user@example.com. Per creare un account di servizio IAM in PostgreSQL:
- Il nome utente del database deve essere creato senza il suffisso
.gserviceaccount.com anche se l'indirizzo email completo dell'account è service-account-name@project-id.iam.gserviceaccount.com. Ad esempio, per creare un account di servizio IAM per PostgreSQL, puoi utilizzare il seguente formato di richiesta:
{
"name": "test@test-project.iam",
"type": "CLOUD_IAM_SERVICE_ACCOUNT",
"instance": "test-instance",
"project": "test-project"
}
Il nome utente del database creato per il account di servizio IAM è test@test-project.iam. Per creare un utente IAM o un account di servizio IAM in MySQL:
- Quando Cloud SQL per MySQL archivia un nome utente, tronca il carattere @ e il nome di dominio dall'indirizzo email dell'utente o del account di servizio. Ad esempio,
example-user@example.com diventa example-user.
- Per questo motivo, non puoi aggiungere due utenti IAM o service account con lo stesso nome utente, ma nomi di dominio diversi, alla stessa istanza Cloud SQL.
- Ad esempio, per creare un utente per l'utente IAM MySQL
example-user@example.com, utilizza la seguente richiesta:
{
"name": "example-user@example.com",
"type": "CLOUD_IAM_USER",
"instance": "test-instance",
"project": "test-project"
}
Il nome utente del database creato per l'utente IAM è example-user.
- Ad esempio, per creare il account di servizio IAM MySQL
service-account-name@project-id.iam.gserviceaccount.com, utilizza la seguente richiesta:
{
"name": "service-account-name@project-id.iam.gserviceaccount.com",
"type": "CLOUD_IAM_SERVICE_ACCOUNT",
"instance": "test-instance",
"project": "test-project"
}
Il nome utente del database creato per il account di servizio IAM è service-account-name.
|
| update_user |
Aggiorna un utente database per un'istanza Cloud SQL. Un caso d'uso comune per update_user è concedere a un utente il ruolo cloudsqlsuperuser, che può fornire a un utente molte autorizzazioni richieste. Questo strumento supporta solo l'aggiornamento degli utenti per assegnare ruoli di database.
- Questo strumento restituisce un'operazione a lunga esecuzione. Utilizza lo strumento
get_operation per eseguire il polling del relativo stato fino al completamento dell'operazione.
- Prima di chiamare lo strumento
update_user, controlla sempre la configurazione esistente dell'utente, ad esempio il tipo di utente, con lo strumento list_users.
- Come caso speciale per MySQL, se lo strumento
list_users restituisce un indirizzo email completo per il campo iamEmail, ad esempio {name=test-account,
iamEmail=test-account@project-id.iam.gserviceaccount.com}, nella richiesta update_user utilizza l'indirizzo email completo nel campo iamEmail del campo name della richiesta dello strumento. Ad esempio, name=test-account@project-id.iam.gserviceaccount.com.
Parametri chiave per l'aggiornamento dei ruoli utente:
database_roles: un elenco di ruoli del database da assegnare all'utente.
revokeExistingRoles: un campo booleano (valore predefinito: false) che controlla la gestione dei ruoli esistenti.
Come funzionano gli aggiornamenti dei ruoli:
Se revokeExistingRoles è vero:
- Tutti i ruoli esistenti concessi all'utente ma NON presenti nell'elenco
database_roles fornito verranno REVOCATI.
- La revoca si applica solo ai ruoli non di sistema. I ruoli di sistema come
cloudsqliamuser e così via non verranno revocati.
- Tutti i ruoli nell'elenco
database_roles che l'utente NON ha già verranno CONCESSI.
- Se
database_roles è vuoto, vengono revocati TUTTI i ruoli non di sistema esistenti.
Se revokeExistingRoles è false (impostazione predefinita):
- Tutti i ruoli nell'elenco
database_roles che l'utente NON ha già verranno CONCESSI.
- I ruoli esistenti NON presenti nell'elenco
database_roles vengono MANTENUTI.
- Se
database_roles è vuoto, i ruoli dell'utente non vengono modificati.
Esempi:
|
| clone_instance |
Crea un'istanza Cloud SQL come clone di un'istanza di origine.
- Questo strumento restituisce un'operazione a lunga esecuzione. Utilizza lo strumento
get_operation per eseguire il polling del suo stato fino al completamento dell'operazione.
- L'operazione di clonazione può richiedere diversi minuti. Utilizza uno strumento a riga di comando per mettere in pausa per 30 secondi prima di ricontrollare lo stato.
|
| update_instance |
Aggiorna parzialmente le impostazioni di configurazione di un'istanza Cloud SQL.
- Questo strumento restituisce un'operazione a lunga esecuzione. Utilizza lo strumento
get_operation per eseguire il polling del relativo stato fino al completamento dell'operazione.
|
| list_users |
Elenca tutti gli utenti del database per un'istanza Cloud SQL.
|
| import_data |
Importa i dati in un'istanza Cloud SQL. Se il file non inizia con gs://, si presume che sia archiviato localmente. Se il file è locale, deve essere caricato in Cloud Storage prima di poter effettuare la chiamata import_data effettiva. Per caricare il file su Cloud Storage, puoi utilizzare i comandi gcloud o gsutil. Prima di caricare il file in Cloud Storage, valuta se vuoi utilizzare un bucket esistente o crearne uno nuovo nel progetto fornito. Dopo il caricamento del file su Cloud Storage, il account di servizio dell'istanza deve disporre di autorizzazioni sufficienti per leggere il file caricato dal bucket Cloud Storage. Per eseguire questa operazione:
- Utilizza lo strumento
get_instance per ottenere l'indirizzo email del account di servizio dell'istanza. Dall'output dello strumento, ottieni il valore del campo serviceAccountEmailAddress.
- Concedi al account di servizio dell'istanza il ruolo
storage.objectAdmin nel bucket Cloud Storage fornito. Utilizza un comando come gcloud storage buckets
add-iam-policy-binding o una richiesta all'API Cloud Storage. Possono essere necessari da 2 a 7 minuti o più prima che il ruolo venga concesso e le autorizzazioni vengano propagate al account di servizio in Cloud Storage. Se si verifica un errore di autorizzazione dopo aver aggiornato il criterio IAM, attendi qualche minuto e riprova.
Una volta concesse le autorizzazioni, puoi importare i dati. Ti consigliamo di lasciare vuoti i parametri facoltativi e di utilizzare i valori predefiniti del sistema. Il tipo di file può in genere essere determinato dall'estensione del file. Ad esempio, se il file è un file SQL, .sql o .csv per il file CSV. Di seguito è riportato un esempio di SQL importContext per MySQL.
{
"uri": "gs://sample-gcs-bucket/sample-file.sql",
"kind": "sql#importContext",
"fileType": "SQL"
}
Non è presente alcun parametro database per MySQL, poiché il nome del database deve essere presente nel file SQL. Specifica un solo URI. Al di fuori di importContext, non sono necessari altri campi. Per PostgreSQL, il campo database è obbligatorio. Di seguito è riportato un importContext PostgreSQL di esempio con il campo database specificato.
{
"uri": "gs://sample-gcs-bucket/sample-file.sql",
"kind": "sql#importContext",
"fileType": "SQL",
"database": "sample-db"
}
Lo strumento import_data restituisce un'operazione a lunga esecuzione. Utilizza lo strumento get_operation per eseguire il polling del suo stato fino al completamento dell'operazione.
|