本記事では、APIを使用してテナントを作成する方法について説明します。
呼び出しの説明
インターフェース制約
obshell ServerはこのAPIに対してセキュリティ検証を実施します。詳細については、APIハイブリッド暗号化を参照してください。
リクエストパス
POST /api/v1/tenant
リクエストパラメータ
| パラメータ | タイプ | 必須 | サンプル値 | 説明 |
|---|---|---|---|---|
| name | string | はい | t1 | 作成するテナントの名前を設定します。 |
| zone_list | []ZoneParam | はい | 詳細については、以下のZoneParamのデータ構造を参照してください | テナントが使用するリソース仕様とレプリカの分散状況を設定します。 |
| mode | string | いいえ | MYSQL | 作成するテナントのテナントタイプを設定します。MYSQLにのみ設定できます。 |
| primary_zone | string | いいえ | RANDOM | テナントのプライマリゾーンを設定し、テナントが読み書きサービスを提供するゾーンの優先順位を指定します。 |
| whitelist | string | いいえ | % | テナントのアクセスアローリストを指定します。 |
| root_password | string | いいえ | 123456 | テナントのrootユーザーのパスワードを設定します。 |
| scenario | string | いいえ | kv | テナントのワークロードタイプを指定します。オプション値は次のとおりです:
説明このオプションを使用してテナントのワークロードタイプを設定できるのは、OceanBaseクラスタがV4.3.0以降のバージョンの場合に限ります。 |
| variables | map[string]interface{} | いいえ | { "max_connections": 1000, "ob_query_timeout": 10000000 } |
テナントのシステム変数を設定します。 |
| parameters | map[string]interface{} | いいえ | { "backup_data_file_size": "2G", "arbitration_timeout": "10s" } |
テナントの構成パラメータを設定します。 |
| charset | string | いいえ | なし | テナントが使用する文字セットを指定します。 |
| collation | string | いいえ | なし | テナントが使用する照合順序を指定します。 |
| read_only | bool | いいえ | false | テナントが読み取り可能かどうかを指定します。 |
| comment | string | いいえ | なし | テナントの情報を指定します。 |
| import_script | bool | いいえ | false | タイムゾーンデータとGISメタデータをシステムテナントにインポートするかどうかを制御します。デフォルトはfalseです。
説明このパラメータは、obshell V4.2.4.2以降でのみ設定がサポートされています。 |
ZoneParamのデータ構造:
| パラメータ | タイプ | 必須 | サンプル値 | 説明 |
|---|---|---|---|---|
| name | string | はい | zone1 | Zoneの名前を設定します。 |
| replica_type | string | いいえ | FULL | テナントのZone上のレプリカタイプを設定します。FULL(フル機能型レプリカ)またはREADONLY(読み取り専用型レプリカ)に設定できます。デフォルトはFULLです。 |
| unit_config_name | string | はい | s1 | テナントリソースプールがZone上で使用するリソース仕様を設定します。 |
| unit_num | int | はい | 1 | テナントのZone上のユニット数を設定します。 |
実行結果
| パラメータ | タイプ | 説明 |
|---|---|---|
| successful | bool | リクエストが成功したかどうかを示します。 |
| timestamp | time.Time | サーバーがリクエストを完了したタイムスタンプです。 |
| duration | int | サーバーがリクエストを処理した時間(ミリ秒)です。 |
| status | int | HTTP Status規格に準拠するエンコードです。 |
| traceId | string | リクエストのトレースIDです。 |
| data | DagDetailDTO | 非同期タスク情報。詳細については、以下のDagDetailDTO情報のデータ構造を参照してください。 |
| error | ApiError | リクエストによって生成されたエラー。以下の情報が含まれます:
|
DagDetailDTO情報のデータ構造は以下のとおりです:
| パラメータ | タイプ | 説明 |
|---|---|---|
| id | string | DAG共通ID。 |
| dag_id | int | DAGのIDであり、OceanBaseデータベースに記録される主キーです。 |
| name | string | DAGの名前。 |
| stage | int | DAGの現在の実行段階。 |
| max_stage | int | DAG実行プロセス中の総段階数。 |
| state | string | DAGの実行状態。 |
| operator | string | DAG実行操作タイプ。 |
| start_time | time.Time | DAG実行開始時間。 |
| end_time | time.Time | DAG実行終了時間。 |
| additional_data | map[string]any | DAGその他のデータ。 |
| nodes | []NodeDetailDTO | DAG内のすべてのノード情報。詳細については、Nodeの詳細情報を取得するを参照してください。 |
例
リクエスト例
POST 10.10.10.1:2886/api/v1/tenant
{
"name": "t1",
"zone_list": [
{
"name": "zone1",
"unit_config_name": "s1",
"unit_num": 1
},
{
"name": "zone2",
"unit_config_name": "s1",
"unit_num": 1
},
{
"name": "zone3",
"unit_config_name": "s1",
"unit_num": 1
}
],
"mode": "MYSQL",
"read_only": false
}
レスポンス例
{
"successful": true,
"timestamp": "2024-10-12T17:35:23.85443063+08:00",
"duration": 64,
"status": 200,
"traceId": "42ee97601d3de292",
"data": {
"id": "18",
"dag_id": 8,
"name": "Create tenant t1",
"stage": 1,
"max_stage": 3,
"state": "READY",
"operator": "RUN",
"start_time": "0001-01-01T00:00:00Z",
"end_time": "0001-01-01T00:00:00Z",
"additional_data": null,
"nodes": null
}
}
関連ドキュメント
コマンドラインでAPIを呼び出す以外に、SDKメソッドを使用してAPIを呼び出すこともできます。