SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO
SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO
SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO는 사용자가 프로비저닝한 모든 프라이빗 연결 엔드포인트의 상태를 반환하는 시스템 함수예요. 엔드포인트는 Snowflake 계정을 호스팅하는 클라우드 플랫폼에 따라 서비스 엔드포인트 또는 리소스 엔드포인트가 될 수 있어요.
본문
Business Critical 기능 — 이 기능을 사용하려면 Business Critical 이상 에디션이 필요해요. 업그레이드 문의는 Snowflake Support에 연락해 주세요.
카테고리: System 함수 (System Information)
구문 (Syntax)
SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO()
반환값 (Returns)
다음 필드를 가진 JSON 객체를 반환해요:
AWS:
provider_service_name — 서비스 또는 리소스의 이름이에요.
snowflake_endpoint_name — Snowflake 계정의 VPC 엔드포인트 ID예요. 엔드포인트가 생성되는 동안에는 임시 이름을 담고 있어요. 엔드포인트가 생성된 뒤 endpoint_state가 CREATED로 바뀌면 이 이름도 바뀌어요.
endpoint_state — Snowflake의 엔드포인트 상태예요. 다음 상태 중 하나를 담을 수 있어요:
PENDING_CREATION: 엔드포인트가 아직 생성 중이에요.CREATED: Snowflake가 클라우드 제공자로부터 엔드포인트가 성공적으로 생성되어 사용할 준비가 되었다는 응답을 받았음을 나타내요.FAILED: 엔드포인트가 클라우드 제공자에서 예상치 못한 상태이며 사용할 수 없어요.PENDING_DELETION: 엔드포인트가 삭제 대기열에 있지만 복원할 수 있어요.DELETING: 엔드포인트가 클라우드 제공자에서 삭제 중이며 복원할 수 없어요.
host — 서비스에 연결하는 데 사용하는 호스트 이름이에요.
status — AWS의 엔드포인트 프로비저닝 상태예요. 다음 상태 중 하나를 담을 수 있어요:
Pending: 엔드포인트가 아직 생성 중이에요.Available: 엔드포인트가 생성되어 사용할 준비가 됐어요.
Azure:
provider_resource_id — 엔드포인트가 연결하는 리소스의 Azure Resource ID예요.
subresource — 엔드포인트가 연결하는 Azure 리소스의 하위 리소스(subresource)예요.
snowflake_resource_id — Azure 리소스에 연결하는 프라이빗 엔드포인트의 Azure Resource ID예요.
host — 리소스에 연결하는 데 사용하는 호스트 이름이에요.
endpoint_state — Snowflake의 엔드포인트 상태예요. (AWS의 상태 값과 동일하게 PENDING_CREATION, CREATED, FAILED, PENDING_DELETION, DELETING 중 하나)
status — Microsoft Azure의 엔드포인트 프로비저닝 상태예요. Microsoft Azure가 리소스에 대한 프라이빗 엔드포인트 연결을 승인했는지 확인하려면 이 필드를 사용해요. 다음 상태 중 하나를 담을 수 있어요: APPROVED, PENDING, DISCONNECTED, REJECTED.
additional_hostnames — SYSTEM$ADD_PRIVATELINK_ENDPOINT_HOSTNAME을 사용해 엔드포인트에 바인딩된 추가 호스트 이름 목록이에요. 엔드포인트에 등록된 추가 호스트 이름이 없으면 비어 있어요.
Google Cloud:
provider_resource_id — 프라이빗 연결 엔드포인트가 연결하는 리소스 ID(서비스 첨부 ID)예요.
snowflake_resource_id — 프라이빗 연결 엔드포인트의 식별자예요.
host — 이 엔드포인트를 사용하는 제공자 서비스 또는 리소스에 접근할 때 사용하는 호스트 이름이에요.
endpoint_state — Snowflake 쪽의 엔드포인트 상태예요.
status — Google Cloud의 연결 상태예요. 프라이빗 연결 엔드포인트를 만든 직후에는 클라우드 제공자가 연결 설정을 완료하는 데 시간이 걸리므로 NO CONNECTION이 나타날 수 있어요. 다음 상태 중 하나를 담을 수 있어요: ACCEPTED, NO CONNECTION, REJECTED.
사용 시 유의사항 (Usage notes)
- 이 함수는 Snowflake 외부에 있는 클라우드 플랫폼의 프라이빗 연결 엔드포인트를 가져오는 프로세스에 의존하므로 실행에 약 5분이 걸릴 수 있어요.
additional_hostnames필드는 Microsoft Azure에 호스팅된 Snowflake 계정에서만 지원돼요.
예시 (Examples)
AWS: Amazon S3에 대한 외부 접근이 있는 모든 PrivateLink 엔드포인트를 나열하려면 다음 SQL 문을 실행해요:
SELECT SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO();
[
{
"provider_service_name": "com.amazonaws.us-west-2.s3",
"snowflake_endpoint_name": "vpce-123456789012abcdea",
"endpoint_state": "CREATED",
"host": "*.s3.us-west-2.amazonaws.com",
"status": "Available"
},
...
Azure: Microsoft Azure의 Snowflake 계정에서, 프로비저닝한 프라이빗 연결 엔드포인트와 각 엔드포인트에 연결된 서비스 이름을 나열해요:
SELECT SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO();
[
{
"provider_resource_id": "/subscriptions/11111111-2222-3333-4444-5555555555/...",
"subresource": "sqlServer",
"snowflake_resource_id": "/subscriptions/66666666-7777-8888-9999-000000000000/...",
"host": "testdb.database.windows.net",
"endpoint_state": "CREATED",
"status": "Approved",
"additional_hostnames": []
}
]
Google Cloud: Google Cloud의 Snowflake 계정에서, 프로비저닝한 프라이빗 연결 엔드포인트와 각 엔드포인트에 연결된 서비스 이름을 나열해요:
SELECT SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO();
[
{
"provider_resource_id": "projects/my-project/regions/us-east4/serviceAttachments/...",
"snowflake_resource_id": "abcd0000000000000001",
"host": "my-service.com",
"endpoint_state": "CREATED",
"status": "ACCEPTED"
}
]