非セキュア・データ・ストアでのプロキシの使用

プロキシの起動

非セキュア・データ・ストアのプロキシを開始するには、次のコマンドを使用します。

java -jar lib/httpproxy.jar \ 
-storeName <kvstore_name> \ 
-helperHosts <kvstore_helper_host> \ 
[-hostname <proxy_host>] \ 
[-httpPort <proxy_http_port>] 
説明
  • kvstore_nameは、データ・ストア・デプロイメントから取得されたデータ・ストア名です。pingを参照してください。
  • kvstore_helper_hostは、データ・ストア・デプロイメントから取得されたデータ・ストアのヘルパーhost:portリストです。Javaダイレクト・ドライバ開発者ガイドKVStoreハンドルの取得
  • proxy_hostは、プロキシ・サービスをホストするマシンのホスト名です。このパラメータはオプションで、デフォルトはlocalhostです。プロキシを実行するマシンの完全なホスト名を指定することもできます。
  • proxy_http_portは、プロキシでリクエストをリスニングしているポートです。これはオプションのパラメータで、デフォルトは80です。

    ノート:

    ポート80を使用するには、root権限が必要です。root権限がない場合は、ポート8080を使用できます。

非セキュアなデータ・ストアへのアプリケーションの接続


proxy_arch.pngの説明が続きます
図proxy_arch.pngの説明

Oracle NoSQL Databaseドライバは、クライアント・アプリケーションで使用される様々なプログラミング言語で使用できます。現在は、Java、Python、Go、Node.js、C#がサポートされています。Oracle NoSQL Databaseプロキシは、クライアント・アプリケーションからのリクエストを受け入れ、Oracle NoSQL Databaseを使用してそれらを処理するサーバーです。

Oracle NoSQL Database Javaドライバには、Javaアプリケーションがプロキシと通信できるようにするjarファイルが含まれています。

Javaドライバをアプリケーションのクラスパスにインストールし、次のコードを使用してプロキシに接続します。

String endpoint = "http://<proxy_host>:<proxy_http_port>"; 
StoreAccessTokenProvider atProvider = new StoreAccessTokenProvider(); 
NoSQLHandleConfig config = new NoSQLHandleConfig(endpoint); 
config.setAuthorizationProvider(atProvider); 
NoSQLHandle handle = NoSQLHandleFactory.createNoSQLHandle(config); 

説明

  • proxy_hostは、プロキシ・サービスを実行しているマシンのホスト名です。これは、以前に構成したホストと一致している必要があります。
  • proxy_http_portは、プロキシでリクエストをリスニングしているポートです。これは、以前に構成したhttpポートと一致する必要があります。

オンプレミス構成では、実行されているOracle NoSQLデータベース・インスタンスが必要です。また、実行中のプロキシ・サービスも必要です。

データ・ストアが保護されていない場合は、borneo.kv.StoreAccessTokenProviderの空のインスタンスが使用されます。たとえば:
from borneo import NoSQLHandle, NoSQLHandleConfig
from borneo.kv import StoreAccessTokenProvider
endpoint = 'http://<proxy_host>:<proxy_http_port>'
# Create the AuthorizationProvider for a not secure store:
ap = StoreAccessTokenProvider()
# create a configuration object
config = NoSQLHandleConfig(endpoint).set_authorization_provider(ap)
# create a handle from the configuration object
handle = NoSQLHandle(config)
説明
  • proxy_hostは、プロキシ・サービスを実行しているマシンのホスト名です。これは、以前に構成したホストと一致している必要があります。
  • proxy_http_portは、プロキシでリクエストをリスニングしているポートです。これは、以前に構成したhttpポートと一致する必要があります。

オンプレミス構成では、実行されているOracle NoSQLデータベース・インスタンスが必要です。また、実行中のプロキシ・サービスも必要です。この場合、Endpoint構成パラメータは、NoSQLプロキシ・ホストおよびポートの場所を指す必要があります。

次のコードを使用してプロキシに接続します。
...cfg:= nosqldb.Config{
    // EDIT: set desired endpoint for the Proxy server accordingly in your environment.
    Endpoint: "http:<proxy_host>:<proxy_http_port>",
    Mode:     "onprem",
}
client, err:=nosqldb.NewClient(cfg)
iferr!=nil {
    fmt.Printf("failed to create a NoSQL client: %v\n", err)
    return
}
deferclient.Close()
// Perform database operations using client APIs.// ...
説明
  • proxy_hostは、プロキシ・サービスを実行しているマシンのホスト名です。これは、以前に構成したホストと一致している必要があります。
  • proxy_http_portは、プロキシでリクエストをリスニングしているポートです。これは、以前に構成したhttpポートと一致する必要があります。

アプリケーションは、プロキシ・サービスを介して接続して、実行中のNoSQLデータベースを使用します。

非セキュアなモードでは、ドライバはHTTPプロトコル経由でプロキシと通信します。必要な情報は通信エンドポイントのみです。オンプレミスNoSQLデータベースの場合、エンドポイントはプロキシのURLをhttp://proxy_host:proxy_http_portの形式で指定します

次のコードを使用してプロキシに接続します。
const NoSQLClient = require('oracle-nosqldb').NoSQLClient;
const ServiceType = require('oracle-nosqldb').ServiceType;
const client = new NoSQLClient({
    serviceType: ServiceType.KVSTORE,
    endpoint: '<proxy_host>:<proxy_http_port>'
});
説明
  • proxy_hostは、プロキシ・サービスを実行しているマシンのホスト名です。これは、以前に構成したホストと一致している必要があります。
  • proxy_http_portは、プロキシでリクエストをリスニングしているポートです。これは、以前に構成したhttpポートと一致する必要があります。
同じ構成をファイルに格納することもできます。次の内容を含むファイルconfig.jsonを作成します。
{
    "serviceType": "KVSTORE",
    "endpoint": "<proxy_host>:<proxy_http_port>",
}
その後、このファイルを使用してNoSQLClientインスタンスを作成できます。
const NoSQLClient = require('oracle-nosqldb').NoSQLClient;
const client = new NoSQLClient('</path/to/config.json>');

アプリケーションは、プロキシ・サービスを介して接続して、実行中のNoSQLデータベースを使用します。

非セキュアなモードでは、ドライバはHTTPプロトコル経由でプロキシと通信します。必要な情報は通信エンドポイントのみです。オンプレミスNoSQLデータベースの場合、エンドポイントはプロキシのURLをhttp://proxy_host:proxy_http_portの形式で指定します

非セキュア・モードでプロキシに接続するには、通信エンドポイントおよびサービス・タイプをServiceType.KVStoreとして指定する必要があります。NoSQLConfigのインスタンスは、直接またはJSON構成ファイルで指定できます。
var client = new NoSQLClient(
    new NoSQLConfig
    {
        ServiceType = ServiceType.KVStore,
        Endpoint = "<proxy_host>:<proxy_http_port>"
    });
説明
  • proxy_hostは、プロキシ・サービスを実行しているマシンのホスト名です。これは、以前に構成したホストと一致している必要があります。
  • proxy_http_portは、プロキシでリクエストをリスニングしているポートです。これは、以前に構成したhttpポートと一致する必要があります。
JSON構成ファイルで同じ構成を指定することもできます。次の内容を含むファイルconfig.jsonを作成します。
{
    "ServiceType": "KVStore",
    "Endpoint": "<proxy_host>:<proxy_http_port>"
}
その後、このファイルを使用してNoSQLClientインスタンスを作成できます。
var client = new NoSQLClient("</path/to/config.json>");