割当て制限ポリシーの構文

次のトピックでは、コンパートメント割当てポリシーの構文について説明します。

割当てポリシー・ステートメントの3つのタイプを使用できます:

  • set: コンパートメントに使用できるクラウド・リソースの最大数を設定します。
  • unset: 割当て制限をデフォルトのサービス制限にリセットします。
  • zero: コンパートメントのクラウド・リソースへのアクセス権を削除します。
割当てポリシー・ステートメントの形式は次のとおりです:
割当て制限ポリシーのsetステートメントの図
割当て制限ポリシーのunsetステートメントの図
割当て制限ポリシーのzeroステートメントの図

割当てポリシー・ステートメントの言語コンポーネントは次のとおりです:

  • 定義されている割当てのタイプに対応するactionキーワード。キーワードは、setunsetまたはzeroです。
  • サービス・ファミリの名前。例: compute-core
  • quotaまたはquotasキーワード
  • 割当ての名前。これはサービス・ファミリによって異なります。たとえば、compute-coreファミリの有効な割当てはstandard-e4-core-countです。
    • ワイルドカードを使用して、名前の範囲を指定することもできます。たとえば、"/standard*/"は、フレーズ"standard"で始まるすべてのコンピュート割当てに一致します。
  • setステートメントの場合は、割当ての値です。
  • 割当ての対象コンパートメント。
  • オプションの条件。たとえば、where request.region = 'us-phoenix-1'です。現在サポートされている条件は、request.regionおよびrequest.adです。

一般的な使用例については、サンプル割当ても参照してください。

スコープ

割当てには様々なスコープがあり、可用性ドメイン、リージョン、またはグローバルで使用できます。コンパートメント割当てを操作する際のスコープについて理解する重要なポイントを次に示します:

  • 可用性ドメイン(AD)レベルで割当てを設定する場合、その割当ては各ADに割り当てられます。そのため、たとえば、コンパートメントに120 OCPUの割当てを設定すると、実際にはAD当たり120 OCPUの制限が設定されます。特定のADをターゲットにするには、where句でrequest.adパラメータを使用します。

  • リージョンの割当てが各リージョンに適用されます。リージョン割当ての例については、サンプル割当て制限を参照してください。

  • サブコンパートメントの使用量は、メイン・コンパートメントの使用量に対してカウントされます。

詳細は、リージョンおよび可用性ドメインを参照してください。

権限とネスト

テナンシの任意のコンパートメントにコンパートメント割当てを設定できます。管理者は、コンパートメントおよび任意の子コンパートメントの割当て制限を設定できます。

割当て制限ポリシーには、コンパートメントとその子コンパートメントに適用されるステートメントを含めることができます。割当て制限ポリシーの場所は、その優先順位には影響しません。割当て文は、リソース・リクエストが発生したコンパートメントに対して文がスコープ内にある場合に適用されます。

ノート

ネストされたコンパートメントをターゲットとするポリシーは、次のように記述されます:
set compute quota standard-e4-core-count to 10 in compartment parent:child:another_child

割当ての評価および優先度

割当てステートメントの評価時には次のルールが適用されます:

  • ポリシー内では、割当て制限ステートメントが順番に評価されます。後の文は、同じリソースをターゲットとする以前の文よりも優先されます。

  • 複数のポリシーが同じリソースをターゲットとする場合、最も制限の多いポリシーが適用されます。

  • 割当て制限ポリシーが作成されるコンパートメントでは、優先順位は決定されません。同じコンパートメント系統内の同じリソースをターゲットとするポリシーには、最も制限の多いポリシーが適用されます。

  • サービス制限は、割当て制限よりも優先されます。リソースのサービス限度を超える割当て制限を指定できますが、サービス制限は引き続き適用されます

ワイルドカード

一部の割当て制限ファミリには多数のリソースがあります。たとえば、データベース割当て制限ファミリは多数の割当て制限で構成されます。このような場合、割当て制限名ワイルドカードを使用して、名前の範囲を指定できます。

この例では、ワイルドカードを使用してすべてのexadataリソースをProductionAppコンパートメントに割り当てます。

zero database quota /*exadata*/ in tenancy
unset database quota /*exadata*/ in compartment ProductionApp