Strumento: create_instance
Avvia la creazione di un'istanza Cloud SQL.
- Lo strumento restituisce un'operazione a lunga esecuzione. Utilizza lo strumento
get_operationper eseguire il polling del relativo stato fino al completamento dell'operazione. - L'operazione di creazione dell'istanza può richiedere diversi minuti. Utilizza uno strumento a riga di comando per mettere in pausa per 30 secondi prima di ricontrollare lo stato.
- Dopo aver utilizzato lo strumento
create_instanceper creare un'istanza, puoi utilizzare lo strumentocreate_userper creare un account utente IAM per l'utente attualmente connesso al progetto. Per impostazione predefinita, il valore di
data_api_accessè impostato suALLOW_DATA_API. Questa impostazione consente di eseguire istruzioni SQL utilizzando lo strumentoexecute_sqle l'APIexecuteSql.
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"}]
}
Il seguente esempio mostra come utilizzare curl per richiamare lo strumento MCP create_instance.
| Curl Request |
|---|
curl --location 'https://sqladmin.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_instance", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Schema di input
Richiesta di inserimento dell'istanza per MCP.
SqlInstancesInsertMcpRequest
| Rappresentazione JSON |
|---|
{ "project": string, "name": string, "databaseVersion": string, "region": string, "edition": string, "tier": string, "dataDiskSizeGb": string, "availabilityType": string, "tags": { string: string, ... }, "dataCacheEnabled": boolean, "enableGoogleMlIntegration": boolean } |
| Campi | |
|---|---|
project |
Obbligatorio. ID progetto a cui devono appartenere le istanze Cloud SQL appena create. |
name |
Obbligatorio. Nome dell'istanza Cloud SQL. L'ID progetto non è incluso. |
databaseVersion |
Facoltativo. Il tipo e la versione del motore del database. Il valore predefinito è Per MySQL, può essere |
region |
Facoltativo. La regione geografica dell'istanza Cloud SQL. Ad esempio, Se non è specificato, il valore predefinito è |
edition |
Facoltativo. La versione dell'istanza, che può essere ENTERPRISE o ENTERPRISE_PLUS. Se non specificato: - Per Postgres e MySQL, il valore predefinito è ENTERPRISE_PLUS. - Per SQL Server, il valore predefinito è ENTERPRISE. |
tier |
Facoltativo. Il livello (o tipo di macchina) per questa istanza. Se non specificato: - Per la versione La versione ENTERPRISE_PLUS deve utilizzare la serie di macchine N2. La versione ENTERPRISE può utilizzare nomi di tipo di macchina personalizzata personalizzati nel seguente formato: db-custom-{CPUs}-{Memory}. |
dataDiskSizeGb |
Facoltativo. Dimensione del disco dati in GB. Il valore predefinito è 100. |
availabilityType |
Facoltativo. Tipo di disponibilità. Valori potenziali: * |
tags |
Facoltativo. Solo input. Chiavi e valori dei tag associati a questa istanza. Devi rappresentare ogni elemento nella mappa come: Ad esempio, una singola risorsa può avere i seguenti tag: Un oggetto contenente un elenco di coppie |
dataCacheEnabled |
Facoltativo. Indica se la cache dei dati è abilitata per l'istanza. |
enableGoogleMlIntegration |
Facoltativo. Quando questo parametro è impostato su true, le istanze Cloud SQL possono connettersi a Vertex AI per inoltrare richieste di previsioni e insight in tempo reale all'AI. Il valore predefinito è false. Questo vale solo per le istanze Cloud SQL per MySQL e Cloud SQL per PostgreSQL. |
Int64Value
| Rappresentazione JSON |
|---|
{ "value": string } |
| Campi | |
|---|---|
value |
Il valore int64. |
TagsEntry
| Rappresentazione JSON |
|---|
{ "key": string, "value": string } |
| Campi | |
|---|---|
key |
|
value |
|
BoolValue
| Rappresentazione JSON |
|---|
{ "value": boolean } |
| Campi | |
|---|---|
value |
Il valore booleano. |
Schema di output
Una risorsa Operation. Per le operazioni riuscite che restituiscono una risorsa Operation, nella risorsa vengono compilati solo i campi pertinenti all'operazione.
Operazione
| Rappresentazione JSON |
|---|
{ "kind": string, "targetLink": string, "status": enum ( |
| Campi | |
|---|---|
kind |
Questo valore è sempre |
targetLink |
|
status |
Lo stato di un'operazione. |
user |
L'indirizzo email dell'utente che ha avviato questa operazione. |
insertTime |
L'ora in cui questa operazione è stata inserita nella coda nel fuso orario UTC in formato RFC 3339, ad esempio Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
startTime |
L'ora in cui è iniziata effettivamente questa operazione nel fuso orario UTC in formato RFC 3339, ad esempio Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
endTime |
L'ora in cui è terminata questa operazione nel fuso orario UTC nel formato RFC 3339, ad esempio Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
error |
Se si sono verificati errori durante l'elaborazione di questa operazione, questo campo verrà compilato. |
apiWarning |
Un messaggio di avviso dell'API Admin. |
operationType |
Il tipo di operazione. I valori validi sono: * |
importContext |
Il contesto per l'operazione di importazione, se applicabile. |
exportContext |
Il contesto dell'operazione di esportazione, se applicabile. |
backupContext |
Il contesto dell'operazione di backup, se applicabile. |
preCheckMajorVersionUpgradeContext |
Questo campo viene compilato solo quando operation_type è PRE_CHECK_MAJOR_VERSION_UPGRADE. Il messaggio PreCheckMajorVersionUpgradeContext contiene i dettagli del controllo preliminare, ad esempio la versione del database di destinazione per l'upgrade e i risultati del controllo (inclusi eventuali avvisi o errori rilevati). |
name |
Un identificatore univoco dell'operazione. Puoi utilizzare questo identificatore per recuperare la risorsa Operations che contiene informazioni sull'operazione. |
targetId |
Il nome della risorsa su cui viene eseguita questa operazione. |
selfLink |
L'URI di questa risorsa. |
targetProject |
L'ID progetto dell'istanza di destinazione correlata a questa operazione. |
acquireSsrsLeaseContext |
Il contesto per l'operazione di acquisizione del lease SSRS, se applicabile. |
subOperationType |
Facoltativo. L'operazione secondaria in base al tipo di operazione. |
Timestamp
| Rappresentazione JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campi | |
|---|---|
seconds |
Rappresenta i secondi di tempo UTC dall'epoca di Unix 1970-01-01T00:00:00Z. Deve essere compreso tra -62135596800 e 253402300799 inclusi (corrispondenti a 0001-01-01T00:00:00Z e 9999-12-31T23:59:59Z). |
nanos |
Frazioni di secondo non negative con risoluzione in nanosecondi. Questo campo è la parte in nanosecondi della durata, non un'alternativa ai secondi. I valori negativi dei secondi con frazioni devono comunque avere valori di nanosecondi non negativi che vengono conteggiati in avanti nel tempo. Deve essere compreso tra 0 e 999.999.999 inclusi. |
OperationErrors
| Rappresentazione JSON |
|---|
{
"kind": string,
"errors": [
{
object ( |
| Campi | |
|---|---|
kind |
Questo valore è sempre |
errors[] |
L'elenco degli errori riscontrati durante l'elaborazione di questa operazione. |
OperationError
| Rappresentazione JSON |
|---|
{ "kind": string, "code": string, "message": string } |
| Campi | |
|---|---|
kind |
Questo valore è sempre |
code |
Identifica l'errore specifico che si è verificato. |
message |
Informazioni aggiuntive sull'errore riscontrato. |
ApiWarning
| Rappresentazione JSON |
|---|
{
"code": enum ( |
| Campi | |
|---|---|
code |
Codice per identificare in modo univoco il tipo di avviso. |
message |
Il messaggio di avviso. |
region |
Il nome della regione per l'avviso REGION_UNREACHABLE. |
ImportContext
| Rappresentazione JSON |
|---|
{ "uri": string, "database": string, "kind": string, "fileType": enum ( |
| Campi | |
|---|---|
uri |
Percorso del file di importazione in Cloud Storage, nel formato |
database |
Il database di destinazione per l'importazione. Se |
kind |
Questo valore è sempre |
fileType |
Il tipo di file per l'URI specificato.`SQL |
csvImportOptions |
Opzioni per importare i dati in formato CSV. |
importUser |
Utente di PostgreSQL per questa operazione di importazione. Solo istanze PostgreSQL. |
bakImportOptions |
Parametri di importazione specifici per i file .BAK di SQL Server |
sqlImportOptions |
Facoltativo. Opzioni per importare i dati dalle istruzioni SQL. |
tdeImportOptions |
Facoltativo. Importa i parametri specifici per i certificati TDE di SQL Server |
SqlCsvImportOptions
| Rappresentazione JSON |
|---|
{ "table": string, "columns": [ string ], "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Campi | |
|---|---|
table |
La tabella in cui vengono importati i dati CSV. |
columns[] |
Le colonne in cui vengono importati i dati CSV. Se non specificate, tutte le colonne della tabella del database vengono caricate con i dati CSV. |
escapeCharacter |
Specifica il carattere che deve essere visualizzato prima di un carattere di dati che deve essere sottoposto a escape. |
quoteCharacter |
Specifica il carattere di citazione da utilizzare quando un valore di dati è citato. |
fieldsTerminatedBy |
Specifica il carattere che separa le colonne all'interno di ogni riga (linea) del file. |
linesTerminatedBy |
Viene utilizzato per separare le righe. Se una riga non contiene tutti i campi, le restanti colonne vengono impostate sui valori predefiniti. |
SqlBakImportOptions
| Rappresentazione JSON |
|---|
{ "encryptionOptions": { object ( |
| Campi | |
|---|---|
encryptionOptions |
|
striped |
Indica se il set di backup in fase di ripristino è suddiviso in bande. Si applica solo a Cloud SQL per SQL Server. |
noRecovery |
Indica se l'importazione del backup ripristinerà il database con l'opzione NORECOVERY. Si applica solo a Cloud SQL per SQL Server. |
recoveryOnly |
Indica se la richiesta di importazione del backup porterà online il database senza scaricare i contenuti Bak. Solo uno dei valori "no_recovery" e "recovery_only" può essere true, altrimenti verrà restituito un errore. Si applica solo a Cloud SQL per SQL Server. |
bakType |
Tipo di contenuti bak, FULL o DIFF |
stopAt |
Facoltativo. Il timestamp in cui l'importazione deve interrompersi. Questo timestamp è nel formato RFC 3339 (ad esempio, Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
stopAtMark |
Facoltativo. La transazione contrassegnata in cui deve interrompersi l'importazione. Questo campo è equivalente alla parola chiave STOPATMARK e si applica solo a Cloud SQL per SQL Server. |
EncryptionOptions
| Rappresentazione JSON |
|---|
{ "certPath": string, "pvkPath": string, "pvkPassword": string, "keepEncrypted": boolean } |
| Campi | |
|---|---|
certPath |
Percorso del certificato (.cer) in Cloud Storage, nel formato |
pvkPath |
Percorso della chiave privata del certificato (.pvk) in Cloud Storage, nel formato |
pvkPassword |
Password che cripta la chiave privata |
keepEncrypted |
Facoltativo. Indica se il file importato rimane criptato. |
BoolValue
| Rappresentazione JSON |
|---|
{ "value": boolean } |
| Campi | |
|---|---|
value |
Il valore booleano. |
SqlImportOptions
| Rappresentazione JSON |
|---|
{
"threads": integer,
"parallel": boolean,
"postgresImportOptions": {
object ( |
| Campi | |
|---|---|
threads |
Facoltativo. Il numero di thread da utilizzare per l'importazione parallela. |
parallel |
Facoltativo. Indica se l'importazione deve essere parallela o meno. |
postgresImportOptions |
Facoltativo. Opzioni per l'importazione da un'istanza Cloud SQL per PostgreSQL. |
Int32Value
| Rappresentazione JSON |
|---|
{ "value": integer } |
| Campi | |
|---|---|
value |
Il valore int32. |
PostgresImportOptions
| Rappresentazione JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Campi | |
|---|---|
clean |
Facoltativo. Il flag --clean per l'utilità pg_restore. Questo flag si applica solo se hai abilitato Cloud SQL per importare i file in parallelo. |
ifExists |
Facoltativo. Il flag --if-exists per l'utilità pg_restore. Questo flag si applica solo se hai abilitato Cloud SQL per importare i file in parallelo. |
SqlTdeImportOptions
| Rappresentazione JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Campi | |
|---|---|
certificatePath |
Obbligatorio. Percorso della chiave pubblica del certificato TDE nel formato gs://bucketName/fileName. L'istanza deve disporre dell'accesso in lettura al file. Applicabile solo alle istanze SQL Server. |
privateKeyPath |
Obbligatorio. Percorso della chiave privata del certificato TDE nel formato gs://bucketName/fileName. L'istanza deve disporre dell'accesso in lettura al file. Applicabile solo alle istanze SQL Server. |
privateKeyPassword |
Obbligatorio. Password che cripta la chiave privata. |
name |
Obbligatorio. Nome del certificato. Applicabile solo alle istanze SQL Server. |
ExportContext
| Rappresentazione JSON |
|---|
{ "uri": string, "databases": [ string ], "kind": string, "sqlExportOptions": { object ( |
| Campi | |
|---|---|
uri |
Il percorso del file in Google Cloud Storage in cui verrà archiviata l'esportazione. L'URI è nel formato |
databases[] |
Database da esportare. |
kind |
Questo valore è sempre |
sqlExportOptions |
Opzioni per l'esportazione dei dati come istruzioni SQL. |
csvExportOptions |
Opzioni per l'esportazione dei dati in formato CSV. Solo istanze |
fileType |
Il tipo di file per l'URI specificato. |
offload |
Indica se eseguire un'esportazione serverless. |
bakExportOptions |
Opzioni per l'esportazione dei dati come file BAK. |
tdeExportOptions |
Facoltativo. Esporta i parametri specifici per i certificati TDE di SQL Server |
SqlExportOptions
| Rappresentazione JSON |
|---|
{ "tables": [ string ], "schemaOnly": boolean, "mysqlExportOptions": { object ( |
| Campi | |
|---|---|
tables[] |
Tabelle da esportare o che sono state esportate dal database specificato. Se specifichi le tabelle, specifica un solo database. Per le istanze PostgreSQL, puoi specificare una sola tabella. |
schemaOnly |
Esporta solo gli schemi. |
mysqlExportOptions |
|
threads |
Facoltativo. Il numero di thread da utilizzare per l'esportazione parallela. |
parallel |
Facoltativo. Indica se l'esportazione deve essere parallela o meno. |
postgresExportOptions |
Facoltativo. Opzioni per l'esportazione da un'istanza Cloud SQL per PostgreSQL. |
MysqlExportOptions
| Rappresentazione JSON |
|---|
{ "masterData": integer } |
| Campi | |
|---|---|
masterData |
Opzione per includere l'istruzione SQL necessaria per configurare la replica. Se impostato su |
PostgresExportOptions
| Rappresentazione JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Campi | |
|---|---|
clean |
Facoltativo. Utilizza questa opzione per includere DROP
istruzioni SQL. Utilizza queste istruzioni per eliminare gli oggetti del database prima di eseguire l'operazione di importazione. |
ifExists |
Facoltativo. Opzione per includere un'istruzione SQL IF EXISTS con ogni istruzione DROP prodotta da clean. |
SqlCsvExportOptions
| Rappresentazione JSON |
|---|
{ "selectQuery": string, "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Campi | |
|---|---|
selectQuery |
La query SELECT utilizzata per estrarre i dati. |
escapeCharacter |
Specifica il carattere che deve essere visualizzato prima di un carattere di dati che deve essere sottoposto a escape. |
quoteCharacter |
Specifica il carattere di citazione da utilizzare quando un valore di dati è citato. |
fieldsTerminatedBy |
Specifica il carattere che separa le colonne all'interno di ogni riga (linea) del file. |
linesTerminatedBy |
Viene utilizzato per separare le righe. Se una riga non contiene tutti i campi, le restanti colonne vengono impostate sui valori predefiniti. |
SqlBakExportOptions
| Rappresentazione JSON |
|---|
{
"striped": boolean,
"stripeCount": integer,
"bakType": enum ( |
| Campi | |
|---|---|
striped |
Indica se l'esportazione deve essere suddivisa in strisce. |
stripeCount |
Opzione per specificare il numero di strisce da utilizzare per l'esportazione. Se è vuoto e il valore del campo a strisce è true, il numero di strisce viene scelto automaticamente. |
bakType |
Il tipo di questo file bak sarà export, FULL o DIFF, solo SQL Server |
copyOnly |
Deprecato: copy_only è deprecato. Usa invece differential_base |
differentialBase |
Indica se il backup può essere utilizzato come backup differenziale di sola copia. |
exportLogStartTime |
Facoltativo. Il timestamp di inizio in cui il log delle transazioni verrà incluso nell'operazione di esportazione. Formato RFC 3339 (ad esempio, Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
exportLogEndTime |
Facoltativo. Il timestamp finale in cui il log delle transazioni verrà incluso nell'operazione di esportazione. Formato RFC 3339 (ad esempio, Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
SqlTdeExportOptions
| Rappresentazione JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Campi | |
|---|---|
certificatePath |
Obbligatorio. Percorso della chiave pubblica del certificato TDE nel formato gs://bucketName/fileName. L'istanza deve disporre dell'accesso in scrittura al bucket. Applicabile solo alle istanze SQL Server. |
privateKeyPath |
Obbligatorio. Percorso della chiave privata del certificato TDE nel formato gs://bucketName/fileName. L'istanza deve disporre dell'accesso in scrittura alla posizione. Applicabile solo alle istanze SQL Server. |
privateKeyPassword |
Obbligatorio. Password che cripta la chiave privata. |
name |
Obbligatorio. Nome del certificato. Applicabile solo alle istanze SQL Server. |
BackupContext
| Rappresentazione JSON |
|---|
{ "backupId": string, "kind": string, "name": string } |
| Campi | |
|---|---|
backupId |
L'identificatore del backup. |
kind |
Questo valore è sempre |
name |
Il nome del backup. Formato: projects/{project}/backups/{backup} |
PreCheckMajorVersionUpgradeContext
| Rappresentazione JSON |
|---|
{ "targetDatabaseVersion": enum ( |
| Campi | |
|---|---|
targetDatabaseVersion |
Obbligatorio. La versione del database di destinazione di cui eseguire l'upgrade. |
preCheckResponse[] |
Solo output. Le risposte dell'operazione di precontrollo. |
kind |
Facoltativo. Questo valore è sempre |
PreCheckResponse
| Rappresentazione JSON |
|---|
{ "actionsRequired": [ string ], // Union field |
| Campi | |
|---|---|
actionsRequired[] |
Le azioni che l'utente deve intraprendere. Utilizza ripetuto per più azioni. |
Campo unione
|
|
message |
Il messaggio da mostrare all'utente. |
Campo unione
|
|
messageType |
Il tipo di messaggio, che può essere informativo, di avviso o di errore. |
AcquireSsrsLeaseContext
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione
|
|
setupLogin |
Il nome utente da utilizzare come accesso di configurazione per connettersi al server di database per la configurazione di SSRS. |
Campo unione
|
|
serviceLogin |
Il nome utente da utilizzare come accesso al servizio per connettersi al database dei report per la configurazione di SSRS. |
Campo unione
|
|
reportDatabase |
Il database dei report da utilizzare per la configurazione di SSRS. |
Campo unione
|
|
duration |
Durata del lease necessaria per la configurazione di SSRS. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
Durata
| Rappresentazione JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campi | |
|---|---|
seconds |
Secondi firmati dell'intervallo di tempo. Deve essere compreso tra -315.576.000.000 e +315.576.000.000 inclusi. Nota: questi limiti vengono calcolati in base a: 60 sec/min * 60 min/ora * 24 ore/giorno * 365,25 giorni/anno * 10.000 anni |
nanos |
Frazioni di secondo con segno con risoluzione in nanosecondi dell'intervallo di tempo. Le durate inferiori a un secondo sono rappresentate con un campo |
SqlSubOperationType
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione sub_operation_details. Dettagli dell'operazione secondaria corrispondenti al tipo di operazione. sub_operation_details può essere solo uno dei seguenti tipi: |
|
maintenanceType |
Il tipo di manutenzione da eseguire sull'istanza. |
Annotazioni dello strumento
Suggerimento distruttivo: ❌ | Suggerimento idempotente: ❌ | Suggerimento di sola lettura: ❌ | Suggerimento open world: ❌