OCI SDK APIについて
Oracle Cloud Infrastructureには、カスタム・ソリューションの開発を容易にするための多数のソフトウェア開発キット(SDK)が用意されています。
ソフトウェア開発キット(SDK)は、Oracle Cloud Infrastructureサービスと統合するアプリケーションの構築およびデプロイに使用されます。Java、Python、Go、.NET、Typescript、Javascript、Rubyをサポートする様々なOCI SDKがあります。それぞれのSDKには、アプリケーション開発に必要なツールが用意されており、このツールには作成やテスト、トラブルシューティング用のコード・サンプルとドキュメントが含まれています。Oracle Cloud Infrastructure SDKを使用して、Oracle Cloud Infrastructureのリソースを管理するためのコードを記述できます。
OCI SDK APIの使用
OCI SDKを使用するには、次が必要です:
- Oracle Cloud Infrastructureアカウント。
- グループ内のそのアカウントで作成され、必要な権限を付与するポリシーがあるユーザー。これは、APIをコールする必要がある、ユーザー自身または別の個人/システムです。
OCI SDK for Java: OCI SDK for Javaは、ここからダウンロードできます。前述の要件に加えて、Javaバージョン8以上をインストールする必要があります。詳細は、「SDK for Java」を参照してください。
ノート:
OCI SDKは、Python、Go、Typescript、Javascript、.NETおよびRubyでも使用できます。詳細は、OCI SDKガイドを参照してください。OCI Java SDKを使用したシングルトン表の作成
createTable
メソッド内でCreateTableRequest
クラスを使用して、新しいNoSQL表を作成できます。
次のコード・スニペットは、OCI Java SDKを使用してシングルトン表を作成する方法を示しています。
private static final String DEF_OCI_CONFIG = "~/.oci/config";
private static final String DEF_PROFILE = "DEFAULT";
String tableName = "<table_name>";
String region = "<region_name>";
/* Initialize NoSQLHandle */
NosqlClient client = connect(endpoint, DEF_OCI_CONFIG, DEF_PROFILE);
/* Create table */
String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + "(" +
"id INTEGER, info JSON, PRIMARY KEY(id)) " ;
TableLimits limits = TableLimits.builder()
.maxReadUnits(50)
.maxWriteUnits(50)
.maxStorageInGBs(1)
.build();
CreateTableDetails.Builder payload = CreateTableDetails.builder()
.compartmentId(compartmentId)
.name(tableName)
.ddlStatement(ddl)
.tableLimits(limits);
CreateTableRequest tableReq = CreateTableRequest.builder()
.createTableDetails(payload.build())
.build();
CreateTableResponse tableRes = client.createTable(tableReq);
output("\nCreating table: " + ddl);
waitForComplete(client, tableRes.getOpcWorkRequestId());
output("Table created: " + tableName);
OCI Java SDKを使用したグローバル・アクティブ表の作成
OCI Java SDKを使用して、NDCSにグローバル・アクティブ表を作成できます。
グローバル・アクティブ表を作成するには:
- 1つ以上のJSON列を含むNoSQL表を作成します。
- 表のスキーマを凍結します。DDL CREATE TABLE文にスキーマfrozenを追加して、作成中に表をフリーズできます。
- NoSQLデータベース表は、リージョナル・レプリカ表を追加した後にのみグローバル・アクティブ表になります。リージョナル・レプリカ表が別のリージョンに作成されます。
次のコード・スニペットは、OCI Java SDKを使用してグローバル・アクティブ表を作成する方法を示しています。
private static final String DEF_OCI_CONFIG = "~/.oci/config";
private static final String DEF_PROFILE = "DEFAULT";
String tableName = "<table_name>";
String region = "<region_name>";
/* Initialize NoSQLHandle */
NosqlClient client = connect(endpoint, DEF_OCI_CONFIG, DEF_PROFILE);
/* Create table */
String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + "(" +
"id INTEGER, info JSON, PRIMARY KEY(id)) " +
"with schema frozen";
TableLimits limits = TableLimits.builder()
.maxReadUnits(50)
.maxWriteUnits(50)
.maxStorageInGBs(1)
.build();
CreateTableDetails.Builder payload = CreateTableDetails.builder()
.compartmentId(compartmentId)
.name(tableName)
.ddlStatement(ddl)
.tableLimits(limits);
CreateTableRequest tableReq = CreateTableRequest.builder()
.createTableDetails(payload.build())
.build();
CreateTableResponse tableRes = client.createTable(tableReq);
output("\nCreating table: " + ddl);
waitForComplete(client, tableRes.getOpcWorkRequestId());
output("Table created: " + tableName);
/* Add replica ca-montreal-1 */
CreateReplicaDetails info = CreateReplicaDetails
.builder()
.region(region)
.compartmentId(compartmentId)
.build();
CreateReplicaRequest replicaReq = CreateReplicaRequest
.builder()
.tableNameOrId(tableName)
.createReplicaDetails(info)
.build();
CreateReplicaResponse replicaRes = client.createReplica(replicaReq);
output("\nAdding replica: " + region);
waitForComplete(client, replicaRes.getOpcWorkRequestId());
output("Added replica: " + region);