É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 de l”Classic Console :
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>';
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.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
External Function Name
de la feuille de calcul de suivi.Remplacez
<nom_intégration_api>
par la valeur du champAPI Integration Name
de votre feuille de calcul de suivi.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
API Management service name
,API Management API URL suffix
, etHTTP-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
- Modèle ARM:
Utilisez la valeur du champ
Azure Function HTTP Trigger URL
de votre feuille de calcul de suivi.
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.