Cloud Databases API
Gen 2
L'API " Cloud Databases " utilizza generalmente l'API del Resource Controller per le operazioni. Utilizza questa documentazione sull'API per interagire con i tuoi servizi dati.
Autenticazione
L'accesso all'API avviene tramite autenticazione con token, utilizzando l'intestazione Authorization: Bearer <token>. Il token deve essere emesso da IAM. È possibile inviare una
chiave API IAM direttamente come token oppure utilizzare la chiave API per generare un token bearer IAM.
Per poter richiamare ciascun metodo, è necessario che ti venga assegnato un ruolo che includa le azioni IAM richieste. Ogni metodo elenca l'azione associata. Per ulteriori informazioni sulle azioni IAM e su come queste corrispondono ai ruoli, consultare la guida " Gestione degli accessi" all'indirizzo IBM Cloud®.
Gestione degli errori
L'API utilizza i codici di risposta standard HTTP per indicare se un metodo è stato eseguito con successo. Una risposta di tipo " 200 " indica sempre che l'operazione è andata a buon fine. Una risposta del
tipo " 4xx " indica un errore di qualche tipo, mentre una risposta del tipo " 500 " indica solitamente un errore interno del sistema. Ciascuna di queste risposte potrebbe essere accompagnata da
un corpo in formato JSON contenente informazioni più dettagliate sull'errore.
Monitoraggio degli eventi
È possibile monitorare l'attività delle API all'interno del proprio account utilizzando il IBM Cloud® Activity Tracker servizio. Ogni volta che viene chiamato un metodo API, viene generato un evento che è possibile monitorare e verificare dall'interno di Activity Tracker. Il tipo specifico di evento è indicato per ogni singolo metodo.
ID di distribuzione e CRN
Gli ID di distribuzione corrispondono ai CRN sulla piattaforma Cloud Data Services. Quando si utilizza il CRN, ricordarsi di codificarlo URL poiché potrebbe contenere il carattere barra (/) %2F.
Esempio: il seguente CRN
crn:v1:bluemix:public:databases-for-redis:us-south:a/274074dce64e9c423ffc238516c755e1:29caf0e7-120f-4da8-9551-3abf57ebcfc7::
diventa il seguente quando viene codificato con il metodo " URL ".
crn:v1:bluemix:public:databases-for-redis:us-south:a%2F274074dce64e9c423ffc238516c755e1:29caf0e7-120f-4da8-9551-3abf57ebcfc7::
Paginazione
Al momento nessun endpoint restituisce dati impaginati.
Limitazione della frequenza
Al momento nessun endpoint implementa la limitazione della velocità.
Metodi
Elenca tutti i prodotti implementati
Restituisce un elenco di tutti i servizi cloud distribuiti.
GET /v2/resource_instances
Richiesta di esempio:
curl -X GET https://resource-controller.cloud.ibm.com/v2/resource_instances -H "Authorization: Bearer <IAM token>"
Risposta di esempio:
{
"rows_count": 100,
"next_url": "/v2/resource_instances?start=<token>",
"resources": [
{
"id": "crn:v1:bluemix:public:databases-for-redis:eu-de:a/40ddc34a953a8c02f10987b59085b60e:07d523b1-6eea-4263-bd03-c17edf355e0b::",
"guid": "07d523b1-6eea-4263-bd03-c17edf355e0b",
"url": "/v2/resource_instances/07d523b1-6eea-4263-bd03-c17edf355e0b",
"created_at": "2026-07-17T06:41:51.267012883Z",
"updated_at": "2026-07-17T06:42:11.22949657Z",
"deleted_at": null,
"created_by": "Id-270000000X",
"updated_by": "",
"deleted_by": "",
"scheduled_reclaim_at": null,
"restored_at": null,
"scheduled_reclaim_by": "",
"restored_by": "",
"name": "test-redis-gen2",
"region_id": "eu-de",
"account_id": "40ddc34a953a8c02f10987b59085b60e",
"reseller_channel_id": "",
"resource_plan_id": "databases-for-redis-gen2-standard",
"resource_group_id": "eb922ba0717f47589ca26d202c5cc915",
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/40ddc34a953a8c02f10987b59085b60e::resource-group:eb922ba0717f47589ca26d202c5cc915",
"target_crn": "crn:v1:bluemix:public:globalcatalog::::deployment:databases-for-redis-standard-gen2%3Aeu-de",
"parameters": {
"dataservices": {
"redis": {
"host_flavor": "bxf.4x16",
"members": 2,
"storage_gb": 15,
"version": "8.2"
}
}
},
"allow_cleanup": false,
"crn": "crn:v1:bluemix:public:databases-for-redis:eu-de:a/40ddc34a953a8c02f10987b59085b60e:07d523b1-6eea-4263-bd03-c17edf355e0b::",
"state": "provisioning",
"type": "service_instance",
"sub_type": "Public",
"resource_id": "databases-for-redis",
"dashboard_url": null,
"last_operation": {
"type": "create",
"state": "in progress",
"async": true,
"description": "Provision in progress",
"cancelable": true,
"poll": true
},
"resource_keys_url": "/v2/resource_instances/07d523b1-6eea-4263-bd03-c17edf355e0b/resource_keys",
"plan_history": [
{
"resource_plan_id": "databases-for-redis-gen2-standard",
"start_date": "2026-07-17T06:41:51.267012883Z",
"requestor_id": "Id-270000000X"
}
],
"migrated": false,
"controlled_by": "",
"locked": false,
"onetime_credentials": false
}
]
}
Gli oggetti risorsa aggiuntivi vengono restituiti nell'array resources . Utilizza il token next_url per recuperare la pagina successiva dei risultati.
Ottieni informazioni sull'implementazione
Recupera tutti i dati associati a una distribuzione. Questi dati includono l'ID, il nome, il tipo di database e la versione.
GET /v2/resource_instances/{id}
Richiesta di esempio:
curl -X GET https://resource-controller.cloud.ibm.com/v2/resource_instances/95004d03-9fec-443b-9f6e-083f2b25e73a -H "Authorization: Bearer <IAM token>" \
Risposta di esempio:
{
"id": "crn:v1:bluemix:public:databases-for-postgresql:us-east:a/23b09aee04da4545b6e32805fa93249d:95004d03-9fec-443b-9f6e-083f2b25e73a::",
"guid": "95004d03-9fec-443b-9f6e-083f2b25e73a",
"url": "/v2/resource_instances/95004d03-9fec-443b-9f6e-083f2b25e73a",
"created_at": "2026-07-02T14:04:29.613949688Z",
"updated_at": "2026-07-02T14:15:54.226535327Z",
"deleted_at": null,
"created_by": "Id-4700030B2K",
"updated_by": "",
"deleted_by": "",
"scheduled_reclaim_at": null,
"restored_at": null,
"scheduled_reclaim_by": "",
"restored_by": "",
"name": "Databases for PostgreSQL-3b",
"region_id": "us-east",
"account_id": "23b09aee04da4545b6e32805fa93249d",
"reseller_channel_id": "",
"resource_plan_id": "databases-for-postgresql-gen2-standard",
"resource_group_id": "c21a4e8564c14d1aab2a9a8b441904eb",
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/23b09aee04da4545b6e32805fa93249d::resource-group:c21a4e8564c14d1aab2a9a8b441904eb",
"target_crn": "crn:v1:bluemix:public:globalcatalog::::deployment:databases-for-postgresql-standard-gen2%3Aus-east",
"parameters": {
"dataservices": {
"postgresql": {
"host_flavor": "bx3d.4x20",
"members": 2,
"storage_gb": 10,
"version": "18"
}
}
},
"allow_cleanup": false,
"crn": "crn:v1:bluemix:public:databases-for-postgresql:us-east:a/23b09aee04da4545b6e32805fa93249d:95004d03-9fec-443b-9f6e-083f2b25e73a::",
"state": "active",
"type": "service_instance",
"sub_type": "Public",
"resource_id": "databases-for-postgresql",
"dashboard_url": null,
"last_operation": {
"type": "create",
"state": "succeeded",
"async": true,
"description": "Provision completed successfully",
"cancelable": true,
"poll": true
},
"resource_keys_url": "/v2/resource_instances/95004d03-9fec-443b-9f6e-083f2b25e73a/resource_keys",
"plan_history": [
{
"resource_plan_id": "databases-for-postgresql-gen2-standard",
"start_date": "2026-07-02T14:04:29.613949688Z",
"requestor_id": "Id-4700030B2K"
}
],
"migrated": false,
"extensions": {
"dataservices": {
"$schema": {
"version": "1.0.0"
},
"connection": {
"cli": {
"arguments": [
"host=95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud port=5432 dbname=postgres user=$PGUSER password=$PGPASSWORD sslmode=verify-full"
],
"bin": "psql",
"composed": [
"PGUSER=$PGUSER PGPASSWORD=$PGPASSWORD PGSSLMODE=verify-full PGSSLROOTCERT=system psql 'host=95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud port=5432 dbname=postgres'"
],
"environment": {
"PGPASSWORD": "$PGPASSWORD",
"PGSSLMODE": "verify-full",
"PGSSLROOTCERT": "system",
"PGUSER": "$PGUSER"
},
"type": "cli"
},
"postgres": {
"authentication": {
"method": "direct",
"password": "$PGPASSWORD",
"username": "$PGUSER"
},
"composed": [
"postgres://$PGUSER:$PGPASSWORD@95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud:5432/postgres?sslmode=verify-full"
],
"database": "postgres",
"hosts": [
{
"hostname": "95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud",
"port": 5432
}
],
"path": "/postgres",
"port": 5432,
"query_options": {
"sslmode": "verify-full"
},
"scheme": "postgres",
"type": "uri"
}
},
"postgresql": {
"configuration": {
"max_connections": 115
},
"cpu_count": 4,
"host_flavor": "bx3d.4x20",
"members": 2,
"memory_gb": 20,
"storage_gb": 10,
"version": "18"
}
},
"virtual_private_endpoints": {
"dns_domain": "95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud",
"dns_hosts": [
"",
"*"
],
"endpoints": [
{
"ip_address": "10.51.217.34",
"zone": "us-east-1"
},
{
"ip_address": "10.51.219.57",
"zone": "us-east-2"
},
{
"ip_address": "10.51.221.12",
"zone": "us-east-3"
}
],
"origin_type": "vpc",
"ports": [
{
"port_max": 5432,
"port_min": 5432
}
]
}
},
"controlled_by": "",
"locked": false,
"onetime_credentials": false
}
Dalla risposta dell'API è possibile ricavare le seguenti informazioni:
last_operationoggetto - Mostra l'ultima attività che hai eseguito.connectionoggetto - Mostra le informazioni relative alla connessione del prodotto.- Le informazioni specifiche sul prodotto sono riportate sotto la scheda del prodotto (ad esempio,
postgresql).
Come configurare il database
POST /v2/resource_instances
Richiesta di esempio:
curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_instances \
-H "Authorization: Bearer <IAM token>" \
-H 'Content-Type: application/json' \
-d '{
"name": "my-instance",
"target": "ca-mon",
"resource_group": "5c49eabc-f5e8-5881-a37e-2d100a33b3df",
"resource_plan_id": "databases-for-postgresql-gen2-standard",
"parameters": {
"dataservices": {
"postgresql": {
"storage_gb": 10,
"members": 2,
"host_flavor": "b3c.8x32.encrypted",
"version": "18"
},
"encryption": {
"disk": "crn:v1..."
},
"$schema": {
"version": "1.0.0"
}
}
}
}'
Parametri di input
name(Stringa)- Il nome dell'istanza.target(Stringa)- La regione in cui effettuare il deployment (ad esempio,us-south,eu-de).resource_group(Stringa)- L'ID del gruppo di risorse.resource_plan_id(Stringa)- L'ID del piano (ad esempio,databases-for-postgresql-gen2-standard).parameters(Oggetto)dataservices(Oggetto)<service>(Oggetto)- La chiave del nome del servizio (ad esempio,postgresql,mysql).storage_gb(Numero intero)- Dimensione di archiviazione in GB.members(Numero intero)- Numero di membri.host_flavor(Stringa)- L'ID del tipo di host (ad esempio,b3c.8x32.encrypted).version(Stringa)- La versione del database (ad esempio,"18").
encryption(Oggetto, facoltativo)- Impostazioni di crittografia del disco.disk(Stringa)- CRN della chiave " Key Protect " per la crittografia del disco.
$schema(Oggetto)- Metadati dello schema.version(Stringa)- Versione dello schema; deve essere"1.0.0".
Come scalare il proprio database
PATCH /v2/resource_instances/{id}
Richiesta di esempio:
curl -X PATCH https://resource-controller.cloud.ibm.com/v2/resource_instances/ed9d2c9b-444b-421d-bbc0-503ca8dd3036 \
-H "Authorization: Bearer <IAM token>" \
-H 'Content-Type: application/json' \
-d '{
"parameters": {
"dataservices": {
"postgresql": {
"storage_gb": 12,
"members": 2,
"host_flavor": "bxf.4x16"
}
}
}
}'
Parametri di input
parameters(Oggetto)dataservices(Oggetto)<service>(Oggetto)- La chiave del nome del servizio (ad esempio,postgresql,mysql).storage_gb(Numero intero)- Dimensione di archiviazione in GB.members(Numero intero)- Numero di membri.host_flavor(Stringa)- L'ID del tipo di host (ad esempio,bxf.4x16).