É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 :

Créer la fonction externe

Cette tâche suppose que vous êtes dans la page Worksheets Worksheet tab de l’interface Web de Snowflake :

  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>';
    
  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 « Nom de la fonction externe » 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
    

    De plus, enregistrez les noms du paramètre et les types de données dans le champ « Nom de la fonction externe » de la feuille de calcul de suivi.

  4. Remplacez <nom_intégration_api> par la valeur du champ « Nom d’intégration API » dans 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>
    

    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 « Nom de service de gestion des API », « Suffixe d’URL d’API de gestion des API » et « Nom de fonction déclenchée par HTTP » dans 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
    
    Modèle ARM

    Utilisez la valeur du champ « URL de déclenchement HTTP de la fonction Azure » dans 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.