機能の概要
このAPIは、データソースを作成するために使用します。リクエストヘッダーには、X-Ob-Project-IdとX-Ob-Org-Idを必ず指定する必要があります。
呼び出しの説明
インターフェース制約
呼び出し元は、マルチクラウドAPIにアクセスするためのキーを保有している必要があります。AccessKey IDとAccessKey Secretの取得方法については、アクセスキーの管理を参照してください。
リクエストパス
POST /api/v2/datasource/datasources
リクエストパラメータ
ヘッダー
プロパティ |
型 |
必須 |
説明 |
サンプル値 |
|---|---|---|---|---|
| X-Ob-Project-Id | String | はい | プロジェクトID | proj-xxxxxxxx |
| X-Ob-Org-Id | String | はい | 組織ID | org-xxxxxxxx |
ボディ
完全なリクエストボディには、共通必須フィールド、データソースタイプ専用フィールド、およびネットワーク方式フィールドの3つの部分がすべて含まれている必要があります。いずれも省略できません。
共通必須フィールド
プロパティ |
型 |
必須 |
説明 |
サンプル値 |
|---|---|---|---|---|
| name | String | はい | データソース名。1文字以上128文字以下。先頭と末尾の空白、および末尾のピリオドは使用できません | my-mysql |
| databaseType | String | はい | データベースタイプ。OB_MYSQL、OB_ORACLE、MYSQL、ORACLE、POSTGRESQL、TIDB、KAFKAから選択可能 |
MYSQL |
| instanceType | String | はい | インスタンス製品タイプの列挙。例:OB_CLOUD_CLUSTER、ALIYUN_RDS、AWS_RDS、ALIYUN_SELF_MANAGEDなど |
ALIYUN_RDS |
| cloudProvider | String | はい | クラウドプロバイダー:ALIYUN、HUAWEI、AWS、GCP、AZURE |
ALIYUN |
| region | String | はい | リージョンコード。例:zone-xxxx |
zone-xxxx |
| networkAccessType | String | はい | ネットワークアクセス方式:INNER、PRIVATE_LINK、PUBLIC_NETWORK、PEERING |
PUBLIC_NETWORK |
| description | String | いいえ | 備考。フロントエンドで最大200文字に制限されます | 業務取引用のテナント |
| deployMode | String | いいえ | デプロイモード:SAAS。省略可能 |
SAAS |
データソースがサポートするクラウドプロバイダーの範囲は以下のとおりです:
データベースタイプ |
サポートするクラウドプロバイダー |
説明 |
|---|---|---|
OB_MYSQL、OB_ORACLE |
ALIYUN、AWS、AZURE、GCP、HUAWEI |
HUAWEIは自社構築データベースをサポートしていません |
MYSQL、ORACLE、TIDB |
ALIYUN、AWS、AZURE、GCP |
— |
POSTGRESQL、KAFKA |
ALIYUN、AWS、GCP |
— |
データベースアカウントフィールド
プロパティ |
型 |
必須 |
説明 |
サンプル値 |
|---|---|---|---|---|
| username | String | 条件必須 | データベースのログインユーザー名。データベースタイプ(KAFKA以外)では必須 | root |
| password | String | 条件必須 | データベースのログインパスワード(平文)。データベースタイプ(KAFKA以外)では必須 | your-password |
データソースタイプ専用フィールド
プロパティ |
型 |
必須 |
説明 |
サンプル値 |
|---|---|---|---|---|
| databaseName | String | 条件必須 | データベース名。databaseType=POSTGRESQL の場合は必須 |
app_db |
| serviceName | String | 条件必須 | Oracleサービス名。databaseType=ORACLE の場合は必須 |
ORCLPDB1 |
| instanceId | String | 条件必須 | OBインスタンスID。マルチテナントOBまたは OB_CLOUD_OLAP の場合は必須 |
ob-cluster-example |
| tenantId | String | 条件必須 | OBテナントID。マルチテナントOBまたは OB_CLOUD_TENANT の場合は必須 |
ob-tenant-example |
| instanceName | String | いいえ | OBインスタンス名 | 業務クラスタ |
| tenantName | String | いいえ | OBテナント名 | mysql_tenant |
| accessPoints | Array | 条件必須 | Kafka接続ポイントリスト。databaseType=KAFKA の場合は必須 |
Kafkaの例を参照 |
| kafkaId | Long | いいえ | 関連するKafkaデータソースID。databaseType=TIDB の場合のみ使用 |
10001 |
| kafkaTopic | String | 条件必須 | Kafkaトピック。databaseType=TIDB かつ kafkaId がNULLでない場合は必須 |
tidb_cdc_topic |
| cdcDataFormat | String | 条件必須 | TiDB CDCデータ形式。選択可能な値:tidbOpenProtocol、tidbBinlog |
tidbOpenProtocol |
自己管理型OB追加フィールド
プロパティ |
型 |
必須 |
説明 |
サンプル値 |
|---|---|---|---|---|
| sysTenantUsername | String | 条件必須 | システムテナントのユーザー名。自己管理型OBのパブリックネットワークまたはPrivateLink接続の場合は必須 | sys_user@sys#ob_cluster |
| sysTenantPassword | String | 条件必須 | システムテナントのパスワード(平文)。自己管理型OBのパブリックネットワークまたはPrivateLink接続の場合は必須 | your-sys-password |
| logProxyIp | String | 条件必須 | ログプロキシのアドレス。自己管理型OBのパブリックネットワーク接続の場合は必須 | logproxy.example.com |
| logProxyPort | Integer | 条件必須 | ログプロキシのポート。自己管理型OBのパブリックネットワーク接続の場合は必須 | 2983 |
| logProxyEndpointServiceName | String | 条件必須 | ログプロキシのプライベートネットワークサービス名。自己管理型OBのPrivateLink接続の場合は必須 | REPLACE_WITH_LOGPROXY_ENDPOINT_SERVICE |
| logProxyEndpointServicePort | Integer | 条件必須 | ログプロキシのプライベートネットワークサービスポート。自己管理型OBのPrivateLink接続の場合は必須 | 2983 |
ネットワークフィールド (networkAccessType による条件必須)
PEERING は ALIYUN、AWS、GCP のみをサポートします。
プロパティ |
型 |
必須 |
説明 |
サンプル値 |
|---|---|---|---|---|
| host | String | 条件必須 | 接続アドレス。PUBLIC_NETWORK または PEERING かつ KAFKA以外の場合は必須 |
rm-xxx.mysql.rds.aliyuncs.com |
| port | Integer | 条件必須 | 接続ポート。PUBLIC_NETWORK または PEERING かつ KAFKA以外の場合は必須 |
3306 |
| endpointServiceName | String | 条件必須 | プライベートネットワークエンドポイントサービス名。PRIVATE_LINK かつ KAFKA以外の場合は必須 |
REPLACE_WITH_ENDPOINT_SERVICE |
| endpointServicePort | Integer | 条件必須 | プライベートネットワークエンドポイントサービスポート。PRIVATE_LINK かつ KAFKA以外の場合は必須 |
3306 |
| vpcId | String | 条件必須 | 対象データソースが存在するVPC ID。PEERING の場合は必須 |
vpc-target-example |
| vpcCidr | String | 条件必須 | 対象VPCのCIDR。PEERING の場合は必須 |
10.20.0.0/16 |
| vpcPeeringId | String | 条件必須 | ピアリング接続ID。PEERING の場合は必須 |
peering-example |
戻り値
プロパティ |
型 |
説明 |
|---|---|---|
| success | Boolean | 成功したかどうか |
| httpStatus | String | HTTPステータスコード |
| data | DataSource | 作成されたデータソースオブジェクト。平文のパスワードは含まれません |
例
以下の例は、さまざまなデータソースタイプの典型的なリクエストボディの構築方法を示しています。リクエストボディは、共通必須フィールド、データソースタイプ専用フィールド、ネットワーク方式フィールド の3つで構成されており、いずれも省略できません。対応するJSONを request.json として保存し、リソース情報を置き換えた後に呼び出します。
リクエスト例
curl --digest -u '<あなたの AK:SK>' \
--request POST \
--url 'https://api-cloud.oceanbase.com/api/v2/datasource/datasources' \
-H 'Content-Type: application/json' \
-H 'X-Ob-Project-Id: <プロジェクトID>' \
-H 'X-Ob-Org-Id: <組織ID>' \
--data @request.json
必要なサンプルのJSONを request.json として保存した後、上記コマンドを実行します。
例1:OceanBase Cloud MySQL(クラスタモード、プライベートネットワーク)
{
"name": "ob_mysql_source",
"databaseType": "OB_MYSQL",
"instanceType": "OB_CLOUD_CLUSTER",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "INNER",
"instanceId": "ob-cluster-example",
"tenantId": "ob-tenant-mysql-example",
"instanceName": "業務クラスタ",
"tenantName": "mysql_tenant",
"username": "app_user",
"password": "REPLACE_WITH_DB_PASSWORD",
"description": "OB MySQL 業務テナント"
}
例2:MySQL(Alibaba Cloud RDS、パブリックネットワーク)
{
"name": "mysql_source",
"databaseType": "MYSQL",
"instanceType": "ALIYUN_RDS",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PUBLIC_NETWORK",
"host": "mysql.example.com",
"port": 3306,
"username": "app_user",
"password": "REPLACE_WITH_DB_PASSWORD"
}
例3:PostgreSQL(Alibaba Cloud RDS、パブリックネットワーク)
{
"name": "postgresql_source",
"databaseType": "POSTGRESQL",
"instanceType": "ALIYUN_RDS",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PUBLIC_NETWORK",
"host": "postgresql.example.com",
"port": 5432,
"databaseName": "app_db",
"username": "app_user",
"password": "REPLACE_WITH_DB_PASSWORD"
}
例4:Oracle(AWS RDS、パブリックネットワーク)
{
"name": "oracle_source",
"databaseType": "ORACLE",
"instanceType": "AWS_RDS",
"cloudProvider": "AWS",
"region": "ap-southeast-1",
"networkAccessType": "PUBLIC_NETWORK",
"host": "oracle.example.com",
"port": 1521,
"serviceName": "ORCLPDB1",
"username": "APP_USER",
"password": "REPLACE_WITH_DB_PASSWORD"
}
例5:TiDB(自己管理、パブリックネットワーク、Kafka非連携)
{
"name": "tidb_source",
"databaseType": "TIDB",
"instanceType": "ALIYUN_SELF_MANAGED",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PUBLIC_NETWORK",
"host": "tidb.example.com",
"port": 4000,
"username": "app_user",
"password": "REPLACE_WITH_DB_PASSWORD"
}
例6:TiDB(自己管理、パブリックネットワーク、Kafka CDC連携)
{
"name": "tidb_cdc_source",
"databaseType": "TIDB",
"instanceType": "ALIYUN_SELF_MANAGED",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PUBLIC_NETWORK",
"host": "tidb.example.com",
"port": 4000,
"username": "app_user",
"password": "REPLACE_WITH_DB_PASSWORD",
"kafkaId": 10001,
"kafkaTopic": "tidb_cdc_topic",
"cdcDataFormat": "tidbOpenProtocol"
}
例7:Kafka(Alibaba Cloud上の自己管理環境、パブリックネットワーク、SASL認証)
{
"name": "kafka_source",
"databaseType": "KAFKA",
"instanceType": "ALIYUN_SELF_MANAGED",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PUBLIC_NETWORK",
"accessPoints": [
{ "type": "PRIMARY", "address": "broker1.example.com", "port": 9092 },
{ "type": "PRIMARY", "address": "broker2.example.com", "port": 9092 }
],
"saslAuthPlugin": {
"enableSASL": true,
"saslMechanism": "SCRAM_SHA_256",
"username": "kafka_user",
"password": "REPLACE_WITH_KAFKA_PASSWORD"
},
"sslPlugin": { "enableSSL": false }
}
例8:Kafka(AWS MSK、PrivateLink)
{
"name": "kafka_private_source",
"databaseType": "KAFKA",
"instanceType": "AWS_SELF_MANAGED",
"cloudProvider": "AWS",
"region": "ap-southeast-1",
"networkAccessType": "PRIVATE_LINK",
"accessPoints": [
{
"type": "PRIVATE_LINK",
"endpointServiceName": "REPLACE_WITH_BROKER1_ENDPOINT_SERVICE",
"endpointServicePort": 9092,
"address": "broker1.internal.example.com",
"port": 9092
}
],
"saslAuthPlugin": { "enableSASL": false },
"sslPlugin": { "enableSSL": false }
}
例9:Kafka(自己管理、パブリックネットワーク、SASLとSSLの二重認証)
{
"name": "kafka_sasl_ssl_source",
"databaseType": "KAFKA",
"instanceType": "ALIYUN_SELF_MANAGED",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PUBLIC_NETWORK",
"accessPoints": [
{ "type": "PRIMARY", "address": "broker1.example.com", "port": 9093 },
{ "type": "PRIMARY", "address": "broker2.example.com", "port": 9093 }
],
"saslAuthPlugin": {
"enableSASL": true,
"saslMechanism": "SCRAM_SHA_256",
"username": "kafka_user",
"password": "REPLACE_WITH_KAFKA_PASSWORD"
},
"sslPlugin": {
"enableSSL": true,
"certFileId": "REPLACE_WITH_UPLOADED_CERT_FILE_ID",
"certFileName": "client-truststore.jks",
"certSslPassword": "REPLACE_WITH_TRUSTSTORE_PASSWORD",
"disableIdentificationAlgorithm": false
}
}
例10:OB MySQL(自己管理、パブリックネットワーク、SYSアカウントとLogProxyを含む)
{
"name": "ob_mysql_self_public_source",
"databaseType": "OB_MYSQL",
"instanceType": "ALIYUN_SELF_MANAGED",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PUBLIC_NETWORK",
"host": "obproxy.example.com",
"port": 2883,
"username": "app_user@mysql_tenant#ob_cluster",
"password": "REPLACE_WITH_TENANT_PASSWORD",
"sysTenantUsername": "sys_user@sys#ob_cluster",
"sysTenantPassword": "REPLACE_WITH_SYS_PASSWORD",
"logProxyIp": "logproxy.example.com",
"logProxyPort": 2983
}
例11:OB MySQL(自己管理、PrivateLink、LogProxyエンドポイントサービスを含む)
{
"name": "ob_mysql_self_private_source",
"databaseType": "OB_MYSQL",
"instanceType": "ALIYUN_SELF_MANAGED",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PRIVATE_LINK",
"endpointServiceName": "REPLACE_WITH_OB_ENDPOINT_SERVICE",
"endpointServicePort": 2883,
"username": "app_user@mysql_tenant#ob_cluster",
"password": "REPLACE_WITH_TENANT_PASSWORD",
"sysTenantUsername": "sys_user@sys#ob_cluster",
"sysTenantPassword": "REPLACE_WITH_SYS_PASSWORD",
"logProxyEndpointServiceName": "REPLACE_WITH_LOGPROXY_ENDPOINT_SERVICE",
"logProxyEndpointServicePort": 2983
}
例12:MySQL(PEERINGピアリング接続)
{
"name": "mysql_peering_source",
"databaseType": "MYSQL",
"instanceType": "ALIYUN_SELF_MANAGED",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"networkAccessType": "PEERING",
"vpcId": "vpc-target-example",
"vpcCidr": "10.20.0.0/16",
"vpcPeeringId": "peering-example",
"host": "10.20.1.10",
"port": 3306,
"username": "app_user",
"password": "REPLACE_WITH_DB_PASSWORD"
}
戻り値の例
{
"success": true,
"httpStatus": "OK",
"data": {
"id": 1001,
"uuid": "ds-uuid-xxx",
"name": "my-mysql",
"projectId": "proj-xxx",
"creatorUid": "123456",
"cloudProvider": "ALIYUN",
"region": "zone-xxxx",
"databaseType": "MYSQL",
"instanceType": "ALIYUN_RDS",
"networkAccessType": "PUBLIC_NETWORK",
"username": "root",
"host": "rm-xxx.mysql.rds.aliyuncs.com",
"port": 3306,
"visible": true,
"createTime": "2026-06-30T10:00:00+08:00",
"updateTime": "2026-06-30T10:00:00+08:00"
}
}