CREATE GATEWAY

現在のスキーマで新しい ゲートウェイ を作成します。ゲートウェイにより、複数のサービスエンドポイント間でトラフィックを分割できます。

こちらもご参照ください。

ALTER GATEWAYDESCRIBE GATEWAYDROP GATEWAYSHOW GATEWAYS

構文

CREATE [ OR REPLACE ] GATEWAY [ IF NOT EXISTS ] <name>
  FROM SPECIFICATION <specification_text>
Copy

必須パラメーター

name

ゲートウェイの識別子を指定する文字列。ゲートウェイが作成されるスキーマに対して一意である必要があります。

FROM SPECIFICATION

ゲートウェイ仕様をインラインで指定します。仕様は、トラフィック分割構成を定義します。

仕様では、次の形式を使用します。

spec:
  type: traffic_split
  split_type: custom
  targets:
  - type: endpoint
    value: <db>.<schema>.<service>!<endpoint>
    weight: <weight>
  - type: endpoint
    value: <db>.<schema>.<service>!<endpoint>
    weight: <weight>
Copy

仕様パラメーター

type

固定値。traffic_split に設定する必要があります。

split_type

固定値。custom に設定する必要があります。

targets

トラフィックをルーティングするターゲットエンドポイントのリスト。各ターゲットは以下を指定する必要があります。

type

固定値。endpoint に設定する必要があります。

value

db.schema.service!endpoint 形式の完全修飾エンドポイント名。各ターゲットエンドポイントが存在する必要があります。

weight

このエンドポイントのトラフィックの重み。整数として指定されます。すべての重みの合計は100である必要があります。

注釈

  • ゲートウェイあたりのエンドポイントの最大数は、デフォルトで5です。

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

CREATE GATEWAY

スキーマ

スキーマでゲートウェイを作成するために必要です。

BIND SERVICE ENDPOINT

アカウント

サービスエンドポイントをゲートウェイにバインドするために必要です。

USAGE

データベース

ゲートウェイを含むデータベースで必要です。

USAGE

スキーマ

ゲートウェイを含むスキーマで必要です。

USAGE

サービスエンドポイント

ターゲットサービスエンドポイントで必要です。サービスロール ALL_ENDPOINTS_USAGE を付与して、アクセスを提供します。

必要な権限を付与するには、次のコマンドを使用します。

-- Grant CREATE GATEWAY privilege in the schema
GRANT CREATE GATEWAY ON SCHEMA <schema_name> TO ROLE <role_name>;

-- Grant BIND SERVICE ENDPOINT privilege on the account
GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE <role_name>;

-- Grant USAGE on target endpoints via service role
GRANT SERVICE ROLE <db_name>.<schema_name>.<service_name>!ALL_ENDPOINTS_USAGE TO ROLE <role_name>;
Copy

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

2つのサービスエンドポイント間でトラフィックを分割するゲートウェイを作成します。

CREATE GATEWAY split_gateway
  FROM SPECIFICATION $$
spec:
  type: traffic_split
  split_type: custom
  targets:
  - type: endpoint
    value: db.schema.s2!ep1
    weight: 60
  - type: endpoint
    value: db.schema.s1!ep1
    weight: 40
$$;
Copy

ゲートウェイを新しいトラフィック分割構成で作成または置き換えます。

CREATE OR REPLACE GATEWAY split_gateway
  FROM SPECIFICATION $$
spec:
  type: traffic_split
  split_type: custom
  targets:
  - type: endpoint
    value: db.schema.service1!endpoint1
    weight: 70
  - type: endpoint
    value: db.schema.service2!endpoint1
    weight: 30
$$;
Copy