SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO

SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO

SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO는 사용자가 프로비저닝한 모든 프라이빗 연결 엔드포인트의 상태를 반환하는 시스템 함수예요. 엔드포인트는 Snowflake 계정을 호스팅하는 클라우드 플랫폼에 따라 서비스 엔드포인트 또는 리소스 엔드포인트가 될 수 있어요.

출처: Snowflake SQL Reference

본문

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"
  }
]

더 알아보기