クラスタ内のバケットのURIにPOSTコマンドを送信することで新しいバケットを作成することができます。これは、CouchbaseまたはMemcachedタイプのバケットを作成するために使用することができます。バケット名は、先頭にアンダースコアを設定できません。
新しいCouchbaseのバケットを作成するか、既存のバケットの既存のパラメータを編集するには、REST APIのエンドポイントへPOST
リクエストを送信します。また、この同じエンドポイントを使用して、クラスタに存在するバケットのリストを取得することもできます。
メソッド | POST /pools/default/buckets |
リクエストデータ | 新しいバケットのペイロードパラメータのリスト |
レスポンスデータ | バケット確認のもしくはエラー状況のJSON |
認証情報の要否 | 必要 |
ペイロード引数 | |
authType | 必須パラメータ。 新しいバケットで有効にする認証のタイプで、文字列指定。 指定しなければ、デフォルトの空白のパスワードとなる。 "sasl"は認証を有効。 "none"は認証を無効。 |
bucketType | 必須パラメータ。 作成するバケットのタイプ。 文字列値。 "memcached" はMemcachedバケットを構成。 "couchbase" はCouchbaseバケットを構成。 |
flushEnabled | 任意のパラメータ。 指定したバケットで'flush all'の機能を有効にします。 真偽値。 1は'flush all'のサポートを有効にし、0は'flush all'のサポートを無効にします。 デフォルトは0。 |
name | 必須パラメータ。 新しいバケットの名前。 |
parallelDBAndViewCompaction | 任意のパラメータ。 文字列値。 ディスク上のデータベースとビューのファイルが同時にコンパクションされるかどうかを指定。 デフォルトは"false"。 |
proxyPort | 必須パラメータ。 数値。 バケットと通信するためのプロキシのポート番号。 まだ使用されていない有効なネットワークポートであることが必要。 認証のタイプがSASLでない場合、有効なポート番号を指定する必要があります。 |
ramQuotaMB | 必須パラメータ。 新しいバケットのRAMクォータで、単位はMB。 数値。 100が最小値で、そのノードで確立されたメモリクォータと同じ量が最大値。 他のバケットがそのノードに関連付られている場合、 その他のバケットのメモリクォータに依存し、 RAMクォータはそのノードで残っているメモリの量と同じ値まで指定可能。 |
replicaIndex | 任意のパラメータ。 真偽値。 1はレプリカバケットデータのレプリカインデックスを有効にし、0は無効にします。 デフォルトは1。 |
replicaNumber | 任意のパラメータ。 数値。 このバケットを構成するためのレプリカの数。 Couchbaseバケットを作成する場合は必須パラメータ。 デフォルトは1、最小値は0、最大値は3。 |
saslPassword | 任意のパラメータ。 文字列。 SASL認証のためのパスワード。 SASL認証を有効にしている場合、必須。 |
リターンコード | |
202 | 受け付けられました |
204 | 不正なリクエスト。{"errors": { .... }}の形式でerrorsのあるJSON。name: すでに存在する名前のバケット、ramQuotaMB: RAM クォータが大きすぎるもしくは小さすぎる、replicaNumber: 正整数を指定する必要がある、proxyPort: ポート番号が無効、もしkはすでに使用されている |
404 | オブジェクトが見つかりません |
バケットを作成するときは、authType
パラメータを提供しなければなりません:
authType
をnone
に設定した場合、proxyPort番号を指定する必要があります。
authType
をsasl
に設定した場合、必要に応じてsaslPassword
パラメータを提供します。
ramQuotaMB
パラメータは、バケットのために各ノードへどのくらいのメモリを割り当てたいかをメガバイト単位で指定します。サポートされる最小値は、100MBです。
memcachedバケットに格納されているアイテムがramQuotaMB
を超える領域を使用する場合、Couchbase Serverは一般的にleast-requested-item基準で(もっともリクエストが少ない)アイテムを退避します。Couchbase Serverは、オブジェクトサイズ、もしくは頻繁にアイテムが参照されているかどうかによって、その他の使用頻度の低いアイテムを退避させます。
Couchbaseバケットでは、ramQuotaMB
に達した場合、システムは一時的な障害を返すかもしれません。システムは新規アイテム用に、メモリを占有している古いアイテムを排出することで、利用可能なramQuotaMBの25%の空き容量を保持しようとします。これらの項目が後で要求されたら、それらはディスクから取得されます。
例:
shell> curl -X POST -u admin:password -d name=newbucket -d ramQuotaMB=200 -d authType=none \ -d replicaNumber=2 -d proxyPort=11215 http://localhost:8091/pools/default/buckets
バケットを設定するためのパラメータは、アンパサンドで区切られたキー/値のペアとして各パラメータと値でペイロード・データとして提供されます。
HTTPリクエストはPOST
リクエストのペイロードで設定されるパラメータを含める必要があります。
POST /pools/default/buckets HTTP/1.1 Host: localhost:8091 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Authorization: Basic YWRtaW46YWRtaW4= Content-Length: xx name=newbucket&ramQuotaMB=20&authType=none&replicaNumber=2&proxyPort=11215
バケットの作成が成功した場合、HTTPレスポンス202(Accepted)と空のコンテンツが返されます。
202 Accepted
パラメータが不足していたり、間違っているために、バケットが作成できなかった場合は、エラーの理由を含むJSONペイロードを用いてHTTPレスポンス400が返されます。