- カテゴリ:
システム関数 (システム制御)
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>' ] )
引数¶
'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オブジェクトで指定したものと一致する必要があります。
AWS:
たとえば、
bedrock-runtime.us-west-2.amazonaws.com
や*.s3.us-west-2.amazonaws.com
です。外部ステージおよび外部ボリュームにプライベート接続を使用する場合、
host_name
には、特定の AWS S3バケットを指定する代わりにワイルドカードを使用する必要があります。この値を AWS から取得する情報については、 プライベート接続エンドポイントのプロビジョニング をご参照ください。
Azure:
Microsoft Azure API 管理の場合、値は API 統合の
API_ALLOWED_PREFIXES
プロパティと一致する必要があります。https://
を含めないでください。外部関数のアウトバウンドプライベート接続のホスト名の例については、以下をご参照ください。
'provider_resource_id'
VPC または VNet でリソースの完全修飾識別子を指定します。
'subresource'
Azureリソースのサブリソース名を指定します。
この引数は、 Azure Private Link Service およびAzure API Management Serviceでは必要ありません。
サポートされているすべての値については、 サブリソースの表 をご参照ください。
戻り値¶
エンドポイントのプロビジョニングに成功したというステータスメッセージ、またはエンドポイントのプロビジョニングに失敗した理由の詳細と指示を返します。
使用上の注意¶
アカウント管理者(ACCOUNTADMIN ロールを持つユーザー)のみが、この関数を呼び出すことができます。
既存のプライベート接続エンドポイントを変更することはできません。エンドポイントのプロビジョニングを解除してから、新しいエンドポイントをプロビジョニングする必要があります。エンドポイントのデプロビジョンを行うには、 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT システム関数を呼び出します。
この関数は、(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/databases/testdb', '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"