- カテゴリ:
システム関数 (システム制御)
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT¶
プライベート接続を使用してSnowflakeが外部サービスに接続できるように、Snowflake VPC または VNet にプライベート接続エンドポイントを提供します。エンドポイントは、Snowflakeアカウントをホストするクラウドプラットフォームに応じて、サービスエンドポイントまたはリソースエンドポイントになります。
注釈
SnowflakeアカウントがAzure政府リージョンにある場合、プロバイダーリソース ID は、政府サブスクリプション内のリソースの ID にする必要があります。Snowflake顧客向けの政府リージョンに関する詳細情報については、 米国SnowGov リージョン をご参照ください。
構文¶
AWS:
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<provider_service_name>', '<host_name>' )
Azure:
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<provider_resource_id>', '<host_name>', [, '<subresource>' ] )Google Cloud:
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '<target_service_id>', '<host_name>' )
引数¶
AWS:
'provider_service_name'
接続する外部サービスまたはリソースを指定します。たとえば、Amazon API Gatewayの場合は
com.amazonaws.us-west-2.execute-api
、Amazon S3の場合はcom.amazonaws.us-west-2.s3
です。この値を AWS から取得する情報については、 プライベート接続エンドポイントのプロビジョニング をご参照ください。
'host_name'
VPC または VNet でリソースにアクセスするための完全修飾ホスト名を指定します。
この値にはポート番号は含まれず、外部サービスへの接続を可能にするSnowflakeオブジェクトで指定したものと一致する必要があります。
たとえば、
bedrock-runtime.us-west-2.amazonaws.com
や*.s3.us-west-2.amazonaws.com
です。外部ステージおよび外部ボリュームにプライベート接続を使用する場合、
host_name
には、特定の AWS S3バケットを指定する代わりにワイルドカードを使用する必要があります。この値を AWS から取得する情報については、 プライベート接続エンドポイントのプロビジョニング をご参照ください。
Azure:
'provider_resource_id'
VPC または VNet でリソースの完全修飾識別子を指定します。
'host_name'
VPC または VNet でリソースにアクセスするための完全修飾ホスト名を指定します。
外部関数のアウトバウンドプライベート接続のホスト名の例については、以下のトピックをご参照ください。
'subresource'
Azureリソースのサブリソース名を指定します。
この引数は、 Azure Private Link Service およびAzure API Management Serviceでは必要ありません。
サポートされているすべての値については、 サブリソースの表 をご参照ください。
Google Cloud:
'target_service_id'
接続先として、カスタムサービスへのサービスアタッチメント ID、またはリージョン単位のGoogle API エンドポイントを指定します。
'host_name'
リソースにアクセスするための完全修飾ホスト名を指定します。
戻り値¶
エンドポイントのプロビジョニングに成功したというステータスメッセージ、またはエンドポイントのプロビジョニングに失敗した理由の詳細と指示を返します。
アクセス制御の要件¶
アカウント管理者(ACCOUNTADMIN ロールを持つユーザー)のみが、この関数を呼び出すことができます。
使用上の注意¶
変更するできるのは、既存のプライベート接続エンドポイントのホスト名のみです。ホスト名の変更の詳細については、SYSTEM$SET_PRIVATELINK_ENDPOINT_HOSTNAME をご参照ください。
この関数は、(Snowflake外の)クラウドプラットフォームのプライベート接続エンドポイントをプロビジョニングするプロセスに依存するため、実行に約5分かかることがあります。
プライベートエンドポイント制限の詳細については、 スケーリングに関する考慮事項 をご参照ください。
例¶
- AWS:
外部S3サービスへのアウトバウンドプライベート接続を設定します。
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.us-west-2.s3', '*.s3.us-west-2.amazonaws.com' );
その他の AWS の例については、以下のガイドをご参照ください。
- Microsoft Azure:
プライベートエンドポイントをプロビジョニングして、 Microsoft Azure のSnowflakeが Microsoft Azure VNet の Microsoft Azure API 管理サービスに接続できるようにします。
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api', 'aztest1-external-function-api.azure.net', 'Gateway' );
Private endpoint with ID "/subscriptions/e48379a7-2fc4-473e-b071-f94858cc83f5/resourcegroups/test_rg/providers/microsoft.network/privateendpoints/32bd3122-bfbd-417d-8620-1a02fd68fcf8" to resource "/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api" has been provisioned successfully. Please note down the endpoint ID and approve the connection from it on the Azure portal.
プライベートエンドポイントをプロビジョニングして、 Microsoft Azure のSnowflakeが外部ネットワークアクセスを使用して外部サービスに接続できるようにします。
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/11111111-2222-3333-4444-5555555555/resourceGroups/leorg1/providers/Microsoft.Sql/servers/myserver', 'testdb.database.windows.net', 'sqlServer' );
"Resource Endpoint with id "/subscriptions/f0abb333-1b05-47c6-8c31-dd36d2512fd1/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/external-network-access-pe" provisioned successfully"
プライベートエンドポイントをプロビジョニングして、Snowflakeが Microsoft Azure 用の外部ステージに接続できるようにします。
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo', 'storagedemo.blob.core.windows.net', 'blob' );
"Resource Endpoint with id "/subscriptions/57faea9a-20c2-4d35-b283-9c0c1e9593d8/resourceGroups/privatelink-test/providers/Microsoft.Network/privateEndpoints/external-network-access-pe" provisioned successfully"
- Google Cloud:
公開されているサービスに接続します。
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'projects/my-project/regions/us-west2/serviceAttachments/my-http-server', 'my-http-server.com' );
エンドポイントを作成した後、リソースプロバイダーによって Google Cloud で接続が承認される必要があります。
Google Cloud 上のSnowflakeが |google-cloud|VPC ネットワーク内のサービスアタッチメントに接続できるようにプライベートエンドポイントをプロビジョニングします。
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'projects/my-project/regions/us-east4/serviceAttachments/my-service-attachment', 'my-service.com' );
Private endpoint with ID "abcd0000000000000001" to resource "projects/my-project/regions/us-east4/serviceAttachments/my-service-attachment" was provisioned successfully. Please note the Private Endpoint ID and approve the corresponding connection request in the cloud provider console.
Google Cloud 上のSnowflakeがリージョンのクラウドキー管理サービス(クラウド KMS)エンドポイントに接続できるようにプライベートエンドポイントをプロビジョニングします。
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'cloudkms.us-east4.rep.googleapis.com', 'cloudkms.us-east4.rep.googleapis.com' );
Private endpoint with ID "abcd0000000000000001" to resource "cloudkms.us-east4.rep.googleapis.com" was provisioned successfully. Please note the Private Endpoint ID and approve the corresponding connection request in the cloud provider console.
プライベートエンドポイントをプロビジョニングして、Snowflakeが Google Cloud 用の外部ステージに接続できるようにします。
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'storage.us-east4.rep.googleapis.com', 'storage.us-east4.rep.googleapis.com' );
Private endpoint with ID "abcd0000000000000001" to resource "storage.us-east4.rep.googleapis.com" was provisioned successfully. Please note the Private Endpoint ID and approve the corresponding connection request in the cloud provider console.