- 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-apipour Amazon API Gateway oucom.amazonaws.us-west-2.s3pour Amazon S3.Note
Lorsque vous vous connectez à un service de point de terminaison VPC dans une région différente de la région Snowflake, assurez-vous que l’e service de point de terminaison VPC prend en charge la région Snowflake.
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.comet*.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_namedoit 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.
Pour obtenir des exemples de nom d’hôte en matière de connexion privée sortante pour les fonctions externes, consultez les rubriques suivantes :
'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.
Note
Lorsque l’ID de service cible est un point de terminaison Google API régional, la valeur du nom d’hôte doit correspondre à la valeur ID de service.
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 modifier d’autres propriétés, vous devez déprovisionner le point de terminaison, puis en provisionner un nouveau. Pour plus d’informations sur la modification d’un nom d’hôte, consultez 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.