게이트웨이 수정
게이트웨이 수정 (ALTER GATEWAY)
%spcs%는 일부 예외를 제외하고 AWS, Microsoft Azure, and Google Cloud Platform commercial regions의 계정에서 사용할 수 있습니다. 자세한 내용은 를 참조하세요.
기존 gateway의 구성을 수정합니다. 이 명령을 사용하여 게이트웨이의 트래픽 분할 또는 섀도 트래픽 구성을 업데이트하세요.
참조:
CREATE GATEWAY , DESCRIBE GATEWAY, DROP GATEWAY , SHOW GATEWAYS
출처: 문서
본문
구문
ALTER GATEWAY [ IF EXISTS ]
FROM SPECIFICATION
매개변수
name
변경할 게이트웨이의 식별자를 지정해요.
식별자에 공백이나 특수 문자가 포함되어 있으면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶인 식별자는 대소문자도 구분해요.
자세한 내용은 식별자 요구 사항을 참조하세요.
FROM SPECIFICATION
업데이트된 게이트웨이 사양을 인라인으로 지정해요. 사양은 트래픽 분할 또는 섀도 트래픽 구성을 정의해요.
트래픽 분할 게이트웨이의 경우 사양은 다음 형식을 사용해요:
spec:
type: traffic_split
split_type: custom
targets:
- type: endpoint
value: ..!
weight:
- type: endpoint
value: ..!
weight:
섀도 트래픽 게이트웨이의 경우 사양은 다음 형식을 사용해요:
섀도 트래픽 게이트웨이는 모든 계정에서 사용할 수 있어요.
spec:
type: shadow_traffic
primary:
- type: endpoint
value: ..!
shadow:
- type: endpoint
value: ..!
weight:
사양 매개변수
type
게이트웨이 구성 유형이에요. 지원되는 값은 다음과 같아요:
traffic_split: 가중치에 따라 대상 엔드포인트 간에 요청을 라우팅해요.shadow_traffic: 모든 요청을 하나의 기본 엔드포인트로 라우팅하고 요청의 일정 비율을 하나 이상의 섀도 엔드포인트로 미러링해요.
split_type
traffic_split 게이트웨이의 경우 고정 값 custom이에요.
shadow_traffic 게이트웨이에서는 이 매개변수를 지정하지 마세요.
targets
traffic_split 게이트웨이의 경우 트래픽을 라우팅할 대상 엔드포인트 목록이에요. 각 대상은 다음을 지정해야 해요:
type
고정 값이에요. endpoint로 설정해야 해요.
value
db.schema.service!endpoint 형식의 정규화된 엔드포인트 이름이에요. 각 대상 엔드포인트는 존재해야 해요.
weight
이 엔드포인트의 트래픽 가중치로, 정수로 지정해요. 모든 가중치의 합은 100이 되어야 해요.
primary
shadow_traffic 게이트웨이의 경우 정확히 하나의 기본 엔드포인트를 포함하는 목록이에요. 기본 엔드포인트는 모든 요청을 받고 클라이언트에 응답을 반환해요.
기본 엔드포인트에는 weight를 지정하지 마세요.
shadow
shadow_traffic 게이트웨이의 경우 하나 이상의 섀도 엔드포인트 목록이에요. 각 섀도 엔드포인트는 weight로 지정된 요청 비율의 복사본을 받아요. 섀도 엔드포인트의 응답은 클라이언트에 반환되지 않아요.
각 섀도우 타깃은 트래픽 분할 타깃과 동일한 type 및 value 필드를 사용해요. weight는 0부터 100 사이의 정수로 설정하세요. 여러 섀도우 타깃의 가중치가 합계 100이 될 필요는 없어요.
- 게이트웨이당 최대 엔드포인트 수는 기본적으로 5개예요.
액세스 제어 요구 사항
이 작업을 실행하는 데 사용되는 role은 최소한 다음 privileges을 보유해야 해요.
| 권한 | 객체 | 참고 |
|---|---|---|
| MODIFY or OWNERSHIP | Gateway | 게이트웨이 구성을 변경하는 데 필요해요. |
| BIND SERVICE ENDPOINT | Account | 서비스 엔드포인트를 게이트웨이에 바인딩하는 데 필요해요. |
| USAGE | Database | 게이트웨이가 포함된 데이터베이스에 필요해요. |
| USAGE | Schema | 게이트웨이가 포함된 스키마에 필요해요. |
| USAGE | Service endpoints | 대상 서비스 엔드포인트에 필요해요. |
필요한 권한을 부여하려면 다음 명령을 사용하세요.
-- Grant MODIFY or OWNERSHIP privilege on the gateway
GRANT MODIFY ON GATEWAY TO ROLE ;
-- OR
GRANT OWNERSHIP ON GATEWAY TO ROLE ;
-- Grant BIND SERVICE ENDPOINT privilege on the account
GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE ;
지정된 권한 집합을 가진 사용자 지정 역할을 만드는 방법은 을 참조하세요.
securable objects에 대해 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반적인 정보는 Overview of Access Control을 참조하세요.
사용 참고 사항
-
메타데이터 관련:
고객은 Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User object용 데이터 제외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터가 입력되지 않도록 해야 해요. 자세한 내용은 Metadata fields in Snowflake를 참조하세요.
예제
게이트웨이를 변경하여 트래픽 분할 구성을 업데이트해요:
ALTER 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
$$;
섀도우 트래픽 게이트웨이를 변경하여 요청의 25%를 챌린저 엔드포인트로 미러링해요:
ALTER GATEWAY shadow_gateway
FROM SPECIFICATION $$
spec:
type: shadow_traffic
primary:
- type: endpoint
value: db.schema.production_service!inference
shadow:
- type: endpoint
value: db.schema.challenger_service!inference
weight: 25
$$;