非セキュア・データ・ストアでのプロキシの使用
プロキシの起動
非セキュア・データ・ストアのプロキシを開始するには、次のコマンドを使用します。
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を使用するには、マシンによっては追加の権限が必要になる場合があります。
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ポートと一致する必要があります。
onPremises構成には、Oracle NoSQLデータベースの実行中インスタンスが必要です。また、実行中のプロキシ・サービスも必要です。
borneo.kv.StoreAccessTokenProvider
の空のインスタンスが使用されます。たとえば:from borneo import NoSQLHandle, NoSQLHandleConfig
from borneo.kv import StoreAccessTokenProvider
#
# Assume the proxy is running on localhost:8080
#
endpoint = 'http://localhost:8080'
#
# 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)
onPremises構成には、Oracle NoSQLデータベースの実行中インスタンスが必要です。また、実行中のプロキシ・サービスも必要です。この場合、Endpoint
構成パラメータは、NoSQLプロキシ・ホストおよびポートの場所を指す必要があります。
...cfg:= nosqldb.Config{
// EDIT: set desired endpoint for the Proxy server accordingly in your environment.
Endpoint: "http://localhost:8080",
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.// ...
アプリケーションは、プロキシ・サービスを介して接続して、実行中の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: 'myhost:8080'
});
{
"serviceType": "KVSTORE",
"endpoint": "myhost:8080",
}
その後、このファイルを使用して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 = "myhost:8080"
});
JSON構成ファイルで同じ構成を指定することもできます。次の内容を含むファイルconfig.jsonを作成します。{
"ServiceType": "KVStore",
"Endpoint": "myhost:8080"
}
その後、このファイルを使用してNoSQLClientインスタンスを作成できます。var client = new NoSQLClient("/path/to/config.json");
Oracle NoSQL Database Spring Data SDKには、Spring Dataアプリケーションがプロキシと通信できるようにするファイルが含まれています。
アプリケーションのクラスパスにJavaドライバをインストールします。次のコードを使用してプロキシに接続します。
configuration
Spring Beanは、NosqlDbConfig
オブジェクトを提供します。StoreAccessTokenProvider
クラスを使用すると、Oracle NoSQL Databaseストアに接続するようにSpring Data Frameworkを構成できます。
import com.oracle.nosql.spring.data.config.AbstractNosqlConfiguration;
import com.oracle.nosql.spring.data.config.NosqlDbConfig;
import com.oracle.nosql.spring.data.repository.config.EnableNosqlRepositories;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import oracle.nosql.driver.kv.StoreAccessTokenProvider;
@Configuration
@EnableNosqlRepositories
public class AppConfig extends AbstractNosqlConfiguration {
@Bean
public NosqlDbConfig nosqlDbConfig() {
AuthorizationProvider authorizationProvider;
authorizationProvider = new StoreAccessTokenProvider();
return new NosqlDbConfig("http://<proxy_host:proxy_http_port>", authorizationProvider);
}
}
proxy_host
は、プロキシ・サービスをホストするマシンのホスト名です。proxy_http_port
は、プロキシがホスト・マシンでリクエストを監視しているポートです。