Étape 5 : créer la fonction externe pour Azure dans Snowflake

Cette rubrique fournit des instructions pour la création d’un objet de fonction externe dans Snowflake. Cet objet stocke des informations sur le service distant, comme les paramètres que le service distant accepte. Les instructions sont les mêmes, que vous utilisiez le portail Azure ou le modèle ARM.

Note

Les fonctions externes dans Snowflake sont des objets de base de données, ce qui signifie qu’elles doivent être créées dans un schéma d’une base de données. Pour créer une fonction externe, vous devez disposer des privilèges appropriés sur la base de données et le schéma où vous créez la fonction.

Pour plus de détails, voir Privilèges de contrôle d’accès.

Dans ce chapitre :

Étape précédente

Étape 4 : Lier l’intégration API pour Azure au service proxy dans le portail

Créer la fonction externe

Cette tâche suppose que vous êtes dans la page Worksheets Onglet Feuille de calcul de l”Classic Console :

  1. Entrez une instruction CREATE EXTERNAL FUNCTION. L’instruction devrait ressembler à ce qui suit :

    create or replace external function <external_function_name>(<parameters>)
        returns variant
        api_integration = <api_integration_name>
        as '<invocation_url>';
    
    Copy
  2. Remplacez <nom_de_fonction_externe> par un nom de fonction unique (par exemple, echo). Les noms doivent suivre les règles de Identificateurs d’objet.

    De plus, enregistrez le nom de la fonction dans le champ External Function Name de la feuille de calcul de suivi.

  3. Remplacez les <paramètres> par les noms et les types de données SQL des paramètres de la fonction, le cas échéant.

    Les paramètres doivent correspondre aux paramètres attendus par le service distant. Les noms des paramètres ne doivent pas nécessairement correspondre, mais les types de données doivent être compatibles.

    Si votre fonction Azure utilise l’exemple de code JavaScript fourni à l’étape 1, alors les paramètres sont un INTEGER et un VARCHAR. Par exemple :

    a integer, b varchar
    
    Copy

    De plus, enregistrez les noms du paramètre et les types de données dans le champ External Function Name de la feuille de calcul de suivi.

  4. Remplacez <nom_intégration_api> par la valeur du champ API Integration Name de votre feuille de calcul de suivi.

  5. Remplacez <url_appel> par l’URL appropriée. Il s’agit de l’URL à laquelle Snowflake envoie la commande HTTP POST pour appeler le service à distance, et comporte la format suivant :

    https://<api_management_service_name>.azure-api.net/<api_url_suffix>/<http_triggered_function_name>
    
    Copy

    L’URL que vous utilisez varie selon que vous utilisez le portail Azure ou le modèle ARM pour créer votre fonction externe :

    Portail Azure:

    Utilisez les valeurs des champs API Management service name, API Management API URL suffix, et HTTP-Triggered Function name de votre feuille de calcul de suivi. Par exemple, votre URL devrait ressembler à :

    https://my-api-management-svc.azure-api.net/my-api-url-suffix/my_http_function
    
    Copy
    Modèle ARM:

    Utilisez la valeur du champ Azure Function HTTP Trigger URL de votre feuille de calcul de suivi.

  6. Si vous ne l’avez pas encore fait, exécutez la commande CREATE EXTERNAL FUNCTION que vous avez entrée.

Testez votre fonction externe

Vous devriez maintenant être en mesure d’appeler votre fonction externe pour vérifier qu’elle fonctionne correctement.

Pour plus de détails, voir Appel d’une fonction externe pour Azure.

Étape suivante

Portail Azure:

Étape 6 : Créez la politique de sécurité Azure pour le service proxy dans le portail

Modèle ARM:

Étape 6 : Mettez à jour la politique de sécurité Azure pour le service proxy dans le portail