- Catégories :
Fonctions système (Contrôle du système)
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT¶
Fournit un point de terminaison de connectivité privée dans le VPC ou VNet Snowflake pour permettre à Snowflake de se connecter à un service externe à l’aide d’une connectivité privée. Le point de terminaison peut être un point de terminaison de service ou un point de terminaison de ressource selon la plateforme cloud qui héberge votre compte Snowflake.
Note
Si le compte Snowflake se trouve dans une région Azure Government, l’ID de la ressource du fournisseur doit être l’ID d’une ressource dans un abonnement gouvernemental. Pour plus d’informations sur les régions gouvernementales pour les clients Snowflake, voir États-Unis Régions SnowGov.
Syntaxe¶
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>' )
Arguments¶
AWS:
'provider_service_name'
Spécifie le service externe ou la ressource auquel se connecter. Par exemple,
com.amazonaws.us-west-2.execute-api
pour Amazon API Gateway oucom.amazonaws.us-west-2.s3
pour Amazon S3.Pour obtenir des informations sur la manière de récupérer cette valeur à partir de AWS, voir Fournir des points de terminaison de connectivité privée.
'host_name'
Spécifie le nom d’hôte complet pour accéder à la ressource dans votre VPC ou VNet.
Cette valeur ne contient aucun numéro de port et doit correspondre à ce que vous avez spécifié dans l’objet Snowflake qui vous permet de vous connecter au service externe.
Les exemples incluent
bedrock-runtime.us-west-2.amazonaws.com
et*.s3.us-west-2.amazonaws.com
.Lors de l’utilisation de la connectivité privée pour les zones de préparation externes et les volumes externes, le
host_name
doit utiliser un caractère générique au lieu de spécifier un compartiment S3 AWS spécifique.Pour obtenir des informations sur la manière de récupérer cette valeur à partir de AWS, voir Fournir des points de terminaison de connectivité privée.
Azure :
'provider_resource_id'
Spécifie l’identificateur complet de la ressource dans votre VPC ou VNet.
'host_name'
Spécifie le nom d’hôte complet pour accéder à la ressource dans votre VPC ou VNet.
Vous trouverez ci-dessous des exemples de nom d’hôte pour la connectivité privée sortante pour les fonctions externes :
'subresource'
Spécifie le nom de la sous-ressource de la ressource Azure.
Cet argument n’est pas requis pour Azure Private Link Service et Azure API Management Service.
Pour toutes les valeurs prises en charge, consultez la Table des sous-ressources.
Google Cloud :
'target_service_id'
Spécifie l’ID de la pièce jointe de service (vers un service personnalisé) ou le point de terminaison API Google régional auquel se connecter.
'host_name'
Spécifie le nom d’hôte complet pour accéder à la ressource.
Renvoie¶
Renvoie un message de statut indiquant que le point de terminaison a été provisionné correctement ou des détails et des instructions expliquant pourquoi le point de terminaison n’a pas été provisionné correctement.
Exigences en matière de contrôle d’accès¶
Seuls les administrateurs de comptes (utilisateurs dotés du rôle ACCOUNTADMIN) peuvent appeler cette fonction.
Notes sur l’utilisation¶
Vous pouvez uniquement modifier le nom d’hôte d’un point de terminaison de connectivité privée existant. Pour plus d’informations sur la modification d’un nom d’hôte, voir SYSTEM$SET_PRIVATELINK_ENDPOINT_HOSTNAME.
Cette fonction peut prendre environ 5 minutes à exécuter, car elle dépend du processus de provisionnement du point de terminaison de connectivité privée sur la plateforme cloud (en dehors de Snowflake).
Pour plus de détails sur les limites des points de terminaison privés, voir Remarques relatives à la mise à l’échelle.
Exemples¶
- AWS:
Configurer la connectivité privée sortante à un service S3 externe :
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.us-west-2.s3', '*.s3.us-west-2.amazonaws.com' );
Pour d’autres exemples AWS, consultez les guides suivants :
- Microsoft Azure :
Fournissez un point de terminaison privé pour autoriser Snowflake sur Microsoft Azure à se connecter au service de gestion des API Microsoft Azure dans votre VNet Microsoft Azure :
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.
Fournissez un point de terminaison privé pour autoriser Snowflake sur Microsoft Azure à se connecter à un service externe à l’aide d’un accès réseau externe :
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"
Fournissez un point de terminaison privé pour autoriser Snowflake à se connecter à une zone de préparation externe pour 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 :
Connectez-vous à un service publié :
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'projects/my-project/regions/us-west2/serviceAttachments/my-http-server', 'my-http-server.com' );
Après la création du point de terminaison, la connexion doit être acceptée sur Google Cloud par le fournisseur de ressources.
Provisionnez un point de terminaison privé pour permettre à Snowflake sur Google Cloud de se connecter à une attache de service dans votre réseau VPC Google Cloud :
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.
Fournissez un point de terminaison privé pour autoriser Snowflake sur Google Cloud à se connecter au point de terminaison régional du service Cloud Key Management (Cloud 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.
Fournissez un point de terminaison privé pour autoriser Snowflake à se connecter à une zone de préparation externe pour 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.