スキーマ更新モード

スキーマモードは、スキーマ レジストリまたは特定のサブジェクトでスキーマの書き込みや編集などの変更が許可されるかどうかを定義します。

  • スキーマモードでサポートされている値は、ReadonlyReadwrite です。

  • スキーマモードは、Key-Value ペアを含む JSON オブジェクトとして管理されます。たとえば、次のようなサンプルがあります。

    {
      "mode": "READWRITE"
    }
    
  • スキーマ レジストリ レベルで明示的に設定されていない場合、スキーマモードはデフォルトで Readwrite になります。

  • スキーマモードがサブジェクト レベルで明示的に指定されていない場合、スキーマ レジストリから値が継承されます。

  • サブジェクト レベルで設定された構成は、スキーマ レジストリ レベルで設定された構成をオーバーライドします。

スキーマモードとその値の詳細については、スキーマモードをご覧ください。

スキーマ モードの更新に必要なロールと権限

スキーマ レジストリまたはサブジェクトのスキーマモードを更新するために必要な権限を取得するには、プロジェクトに対する Managed Kafka Schema Registry 編集者 roles/managedkafka.schemaRegistryEditor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、スキーマ レジストリまたはサブジェクトのスキーマモードを更新するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

スキーマ レジストリまたはサブジェクトのスキーマ モードを更新するには、次の権限が必要です。

  • モードを更新するリソースに対して、次の権限を付与します。 managedkafka.mode.update

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Managed Service for Apache Kafka で使用できる事前定義ロールの詳細については、アクセス制御のドキュメントをご覧ください。

スキーマ レジストリのスキーマモードを更新する

コンソール

スキーマ レジストリ全体のスキーマモードを更新する手順は次のとおりです。

  1. Google Cloud コンソールで、[スキーマ レジストリ] ページに移動します。

    スキーマ レジストリに移動

    プロジェクト内のスキーマ レジストリのリストが表示されます。

  2. スキーマモードを更新するスキーマ レジストリの名前をクリックします。

    [スキーマ レジストリの詳細] ページが開きます。

  3. レジストリのメインの詳細セクションで、[スキーマモード] 設定を見つけて、その横にある [編集] アイコンをクリックします。

    [スキーマの編集モード] ページが開きます。

  4. [スキーマモード] プルダウン メニューから値を選択します。

    これらの値の詳細については、スキーマモードについてをご覧ください。

  5. [保存] をクリックします。

gcloud

スキーマ レジストリのスキーマモードを更新するには、gcloud alpha managed-kafka schema-registries update コマンドを使用します。

gcloud alpha managed-kafka schema-registries update SCHEMA_REGISTRY_ID \
    --location=LOCATION \
    --mode=MODE_TYPE
  • SCHEMA_REGISTRY_ID: 更新するスキーマ レジストリの ID。
  • LOCATION: 更新するスキーマ レジストリのリージョン。
  • MODE_TYPE: 新しいスキーマモード。有効な値は次のとおりです。
    • READWRITE
    • READONLY

例:

us-central1 リージョンの test-registry スキーマ レジストリのスキーマモードを READONLY に更新するには、次のコマンドを実行します。

gcloud alpha managed-kafka schema-registries update test-registry \
    --location=us-central1 \
    --mode=READONLY

REST

リクエストは、Authorization ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得する場合は、 gcloud auth application-default print-access-token を使用します。

スキーマモードを更新するには、projects.locations.schemaRegistries.contexts.mode.update メソッドを使用して、スキーマ レジストリの REST API エンドポイントに PUT リクエストを行います。

デフォルトのコンテキストを使用してスキーマ レジストリのスキーマモードを更新する:

PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/mode

次のパスパラメータを置き換えます。

  • PROJECT_ID: Google Cloud プロジェクト ID。
  • LOCATION: スキーマ レジストリが存在するリージョン。
  • SCHEMA_REGISTRY_ID: スキーマ レジストリの一意の ID。

リクエスト本文:

モードの詳細を指定する JSON オブジェクトをリクエストの本文に含めます。

{
  "mode": "MODE_TYPE"
}

MODE_TYPE は、モードの有効な文字列オプションのいずれかに置き換えます。

  • READWRITE
  • READONLY

成功すると、API は 200 OK ステータス コードと、更新されたモード構成の JSON 表現を含むレスポンス本文を返します。

詳細については、REST API のドキュメントをご覧ください。

サブジェクトのスキーマモードを更新する

コンソール

特定のサブジェクトのスキーマモードを更新する手順は次のとおりです。

  1. Google Cloud コンソールで、[スキーマ レジストリ] ページに移動します。

    スキーマ レジストリに移動

  2. サブジェクトを含むスキーマ レジストリの名前をクリックします。

    [スキーマ レジストリの詳細] ページが開きます。

  3. [Subjects in this schema registry] テーブルで、スキーマモードを更新するサブジェクトの名前をクリックします。
  4. サブジェクトの [スキーマモード] 設定を見つけて、その横にある [編集] アイコンをクリックします。

    [スキーマの編集モード] ページが開きます。

  5. [スキーマモード] プルダウン メニューから値を選択します。ここで値を選択すると、この特定のサブジェクトのレジストリ レベルの設定がオーバーライドされます。

    これらの値の詳細については、 スキーマモードについてをご覧ください。

  6. [保存] をクリックします。

gcloud

サブジェクトのスキーマモードを更新するには、gcloud alpha managed-kafka schema-registries subject update コマンドを使用します。

gcloud alpha managed-kafka schema-registries subject update SUBJECT_NAME \
    --schema-registry=SCHEMA_REGISTRY_ID \
    --location=LOCATION \
    --mode=MODE_TYPE
  • SUBJECT_NAME: 更新するサブジェクトの名前。
  • SCHEMA_REGISTRY_ID: サブジェクトを含むスキーマ レジストリの ID。
  • LOCATION: サブジェクトを含むスキーマ レジストリのリージョン。
  • MODE_TYPE: 新しいスキーマモード。有効な値は次のとおりです。
    • READWRITE
    • READONLY

例:

us-central1 リージョンの test-registry スキーマ レジストリで test-subject サブジェクトのスキーマモードを READONLY に更新するには、次のコマンドを実行します。

gcloud alpha managed-kafka schema-registries subject update test-subject \
    --schema-registry=test-registry \
    --location=us-central1 \
    --mode=READONLY

REST

リクエストは、Authorization ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得する場合は、 gcloud auth application-default print-access-token を使用します。

サブジェクトのスキーマモードを更新するには、projects.locations.schemaRegistries.contexts.mode.update メソッドを使用して、特定のサブジェクトの REST API エンドポイントに PUT リクエストを送信します。

デフォルト コンテキストのサブジェクトのスキーマモードを更新する:

PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/mode/SUBJECT_NAME

次のパスパラメータを置き換えます。

  • PROJECT_ID: Google Cloud プロジェクト ID。
  • LOCATION: スキーマ レジストリが存在するリージョン。
  • SCHEMA_REGISTRY_ID: スキーマ レジストリの一意の ID。
  • SUBJECT_NAME: サブジェクトの名前。

リクエスト本文:

モードの詳細を指定する JSON オブジェクトをリクエストの本文に含めます。

{
  "mode": "MODE_TYPE"
}

MODE_TYPE は、モードの有効な文字列オプションのいずれかに置き換えます。

  • READWRITE
  • READONLY

例 - デフォルトのコンテキストでサブジェクト user_events スキーマモードを Readonly に設定します。

PUT https://managedkafka.googleapis.com/v1main/projects/test-gcp-project/locations/us-east1/schemaRegistries/main_registry/mode/user_events さんへのリクエスト

本文あり:

{
  "mode": "READONLY"
}

成功した場合、API は 200 OK ステータス コードと、この変更を反映した更新されたサブジェクトまたはコンテキスト リソースの JSON 表現を含むレスポンスの本文を返します。

特定のコンテキストのサブジェクトのスキーマモードを更新する:

PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/contexts/CONTEXT_NAME/mode/SUBJECT_NAME

次のパスパラメータを置き換えます。

  • PROJECT_ID: Google Cloud プロジェクト ID。
  • LOCATION: スキーマ レジストリが存在するリージョン。
  • SCHEMA_REGISTRY_ID: スキーマ レジストリの一意の ID。
  • CONTEXT_NAME: コンテキストの名前。
  • SUBJECT_NAME: サブジェクトの名前。

リクエスト本文:

モードの詳細を指定する JSON オブジェクトをリクエストの本文に含めます。

{
  "mode": "MODE_TYPE"
}

MODE_TYPE は、モードの有効な文字列オプションのいずれかに置き換えます。

  • READWRITE
  • READONLY

例 - コンテキスト test_context でサブジェクト user_events スキーマモードを Readonly に設定する:

PUT https://managedkafka.googleapis.com/v1main/projects/test-gcp-project/locations/us-east1/schemaRegistries/main_registry/contexts/test_context/mode/user_events さんへのリクエスト

本文あり:

{
  "mode": "READONLY"
}

成功した場合、API は 200 OK ステータス コードと、この変更を反映した更新されたサブジェクトまたはコンテキスト リソースの JSON 表現を含むレスポンスの本文を返します。

詳細については、REST API のドキュメントをご覧ください。

次のステップ

Apache Kafka® は、Apache Software Foundation または米国その他の諸国における関連会社の商標です。