スキーマモードは、スキーマ レジストリまたは特定のサブジェクトでスキーマの書き込みや編集などの変更が許可されるかどうかを定義します。
スキーマモードでサポートされている値は、Readonly と Readwrite です。
スキーマモードは、Key-Value ペアを含む JSON オブジェクトとして管理されます。たとえば、次のようなサンプルがあります。
{ "mode": "READWRITE" }スキーマ レジストリ レベルで明示的に設定されていない場合、スキーマモードはデフォルトで Readwrite になります。
スキーマモードがサブジェクト レベルで明示的に指定されていない場合、スキーマ レジストリから値が継承されます。
サブジェクト レベルで設定された構成は、スキーマ レジストリ レベルで設定された構成をオーバーライドします。
スキーマモードとその値の詳細については、スキーマモードをご覧ください。
スキーマ モードの更新に必要なロールと権限
スキーマ レジストリまたはサブジェクトのスキーマモードを更新するために必要な権限を取得するには、プロジェクトに対する Managed Kafka Schema Registry 編集者 (roles/managedkafka.schemaRegistryEditor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、スキーマ レジストリまたはサブジェクトのスキーマモードを更新するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
スキーマ レジストリまたはサブジェクトのスキーマ モードを更新するには、次の権限が必要です。
-
モードを更新するリソースに対して、次の権限を付与します。
managedkafka.mode.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Managed Service for Apache Kafka で使用できる事前定義ロールの詳細については、アクセス制御のドキュメントをご覧ください。
スキーマ レジストリのスキーマモードを更新する
コンソール
スキーマ レジストリ全体のスキーマモードを更新する手順は次のとおりです。
- Google Cloud コンソールで、[スキーマ レジストリ] ページに移動します。
プロジェクト内のスキーマ レジストリのリストが表示されます。
- スキーマモードを更新するスキーマ レジストリの名前をクリックします。
[スキーマ レジストリの詳細] ページが開きます。
- レジストリのメインの詳細セクションで、[スキーマモード] 設定を見つけて、その横にある [編集] アイコンをクリックします。
[スキーマの編集モード] ページが開きます。
- [スキーマモード] プルダウン メニューから値を選択します。
これらの値の詳細については、スキーマモードについてをご覧ください。
- [保存] をクリックします。
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: 新しいスキーマモード。有効な値は次のとおりです。READWRITEREADONLY
例:
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 は、モードの有効な文字列オプションのいずれかに置き換えます。
READWRITEREADONLY
成功すると、API は 200 OK ステータス コードと、更新されたモード構成の JSON 表現を含むレスポンス本文を返します。
詳細については、REST API のドキュメントをご覧ください。
サブジェクトのスキーマモードを更新する
コンソール
特定のサブジェクトのスキーマモードを更新する手順は次のとおりです。
- Google Cloud コンソールで、[スキーマ レジストリ] ページに移動します。
- サブジェクトを含むスキーマ レジストリの名前をクリックします。
[スキーマ レジストリの詳細] ページが開きます。
- [Subjects in this schema registry] テーブルで、スキーマモードを更新するサブジェクトの名前をクリックします。
- サブジェクトの [スキーマモード] 設定を見つけて、その横にある [編集] アイコンをクリックします。
[スキーマの編集モード] ページが開きます。
- [スキーマモード] プルダウン メニューから値を選択します。ここで値を選択すると、この特定のサブジェクトのレジストリ レベルの設定がオーバーライドされます。
これらの値の詳細については、 スキーマモードについてをご覧ください。
- [保存] をクリックします。
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: 新しいスキーマモード。有効な値は次のとおりです。READWRITEREADONLY
例:
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 は、モードの有効な文字列オプションのいずれかに置き換えます。
READWRITEREADONLY
例 - デフォルトのコンテキストでサブジェクト 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 は、モードの有効な文字列オプションのいずれかに置き換えます。
READWRITEREADONLY
例 - コンテキスト 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 のドキュメントをご覧ください。