Planification d’une fonction externe pour Azure

Cette rubrique vous aide à vous préparer à créer une fonction externe pour Microsoft Azure en utilisant soit le portail Azure, soit un modèle ARM (Azure Resource Manager) fourni par Snowflake.

Dans ce chapitre :

Conditions préalables

Ces instructions supposent que vous êtes un utilisateur du portail Azure expérimenté.

Pour créer une fonction externe pour Azure, vous devez disposer des éléments suivants :

  • Un client Azure AD (Active Directory).

  • Un compte dans ce client Azure AD. Le compte doit avoir les privilèges pour :

    • Créer une application de fonction Azure.

    • Créez un point de terminaison de service en utilisant le service de gestion des API Azure.

    • Inscrire une application AD Azure.

  • Un compte Snowflake dans lequel vous disposez du rôle ACCOUNTADMIN ou d’un rôle avec le privilège CREATE INTEGRATION.

En outre, vous devriez déjà avoir un ID de client Azure AD.

L’ID de client Azure AD est un UUID qui est généralement formaté de manière à ressembler à 12345678-abcd-1234-efab-123456789012, où chaque caractère qui n’est pas un tiret est un chiffre hexadécimal.

Si vous ne connaissez pas encore votre ID de client AD Azure, vous pouvez le trouver en procédant comme suit :

  1. Connectez-vous au portail Azure (http://portal.azure.com).

  2. Dans les icônes Azure services en haut de la page, cliquez sur Azure Active Directory.

  3. Dans le menu de gauche, recherchez la section intitulée Manage, puis cliquez sur Properties sous celle-ci.

L’ID de client Azure AD s’affiche dans le champ Tenant ID.

Choix de la méthode de création de la fonction externe

Snowflake fournit des instructions sur deux façons de créer une fonction externe sur Azure :

  • Interface Web du portail Azure

  • Modèle ARM (Azure Resource Manager) fourni par Snowflake

Portail Azure

Vous pouvez utiliser le portail Azure pour créer une fonction Azure (en tant que service distant) et une instance de service de gestion des API (en tant que service proxy). Si vous choisissez cette méthode, vous utilisez également le portail Azure pour configurer les paramètres de sécurité.

Les instructions relatives à la création d’une fonction externe à l’aide du portail Azure comprennent un exemple de fonction Azure et des détails sur la création d’une instance de service de gestion de base des API :

  • Les utilisateurs novices peuvent utiliser les instructions et l’exemple de la fonction Azure avec peu ou pas de modifications.

  • Les utilisateurs expérimentés peuvent utiliser les instructions et l’exemple Azure Function comme point de départ pour créer une fonction Azure personnalisée et une instance de service de gestion des API configurée de manière personnalisée.

Modèle ARM (Azure Resource Manager)

Un modèle ARM utilise JSON pour décrire les informations de configuration d’une fonction Azure (en tant que service distant) et d’une instance de service de gestion des API Azure (en tant que service proxy).

Snowflake fournit un exemple de modèle ARM qui comprend les éléments suivants :

  • Exemple de fonction Azure.

  • La plupart des informations de configuration d’un exemple de service de gestion des API. Vous devez entrer quelques informations supplémentaires si vous souhaitez personnaliser l’exemple de service de gestion des API.

  • Code pour créer un compte de stockage nécessaire au service de la fonction Azure.

  • Code to add a validate-JWT (JSON Web Token) Policy to the API Management instance in order to increase security of the Azure API Management service. However, you must manually update the validate-JWT policy before using it.

Les modèles ARM peuvent être utiles tant aux utilisateurs novices qu’aux utilisateurs expérimentés :

  • Les utilisateurs novices voudront peut-être commencer par l’exemple de modèle Snowflake, car il réduit le nombre d’étapes nécessaires à la création de la fonction Azure et de l’instance de service de gestion des API.

    Notez que bien que ces instructions basées sur un modèle vous aident à créer rapidement votre première fonction externe, elles sautent des étapes dont la plupart des utilisateurs ont besoin lorsqu’ils créent des fonctions externes personnalisées.

  • Les utilisateurs expérimentés peuvent vouloir utiliser les modèles ARM car les modèles peuvent être utilisés pour automatiser le déploiement. Cela peut être utile si vous développez une fonction Azure et un service de gestion des API de manière itérative.

Pour plus d’informations sur la configuration d’Azure Functions à l’aide de modèles ARM, consultez la documentation Microsoft : Déploiement de ressources .

Préparation à l’utilisation du portail Azure

Ces sections vous aident à vous préparer à utiliser le portail Azure pour créer une fonction externe sur Microsoft Azure.

Choisir le plan tarifaire pour votre fonction Azure

Dans Microsoft Azure, une fonction Azure (service distant) peut être exécutée sur un hôte Linux ou Windows. Pour l’instant, Azure propose différentes combinaisons de prix et d’options d’authentification pour les hôtes Linux et Windows.

Si vous prévoyez d’exécuter votre fonction Azure sur Linux, vous devez choisir une combinaison valide de plan tarifaire Azure et d’authentification :

Créer une feuille de calcul pour le suivi des informations requises

Lorsque vous effectuez des tâches pour créer une fonction externe dans le portail Azure, vous devez saisir des valeurs spécifiques (par exemple, le nom du service de gestion des API) à chaque étape du processus. Souvent, les valeurs que vous saisissez sont requises dans les étapes suivantes.

Pour faciliter l’enregistrement/le suivi de ces informations, nous avons fourni une feuille de calcul avec des champs pour chacune des valeurs requises :

================================================================================
======================= TRACKING WORKSHEET: AZURE PORTAL =======================
================================================================================

****** Step 1: Azure Function (Remote Service) Info ****************************

Azure Function app name: _______________________________________________________
HTTP-Triggered Function name: __________________________________________________
Azure Function AD app registration name: _______________________________________
Azure Function App AD Application ID: __________________________________________

    (The value for the Azure Function App AD Application ID above is the
    "Application (client) ID" of the Azure AD app registration for the
    Azure Function. The value is used to fill in the "azure_ad_application_id"
    field in the CREATE API INTEGRATION command. This value is in the form of
    a `UUID <https://en.wikipedia.org/wiki/Universally_unique_identifier>`_ , which contains hexadecimal digits and dashes.)


****** Step 2: Azure API Management Service (Proxy Service) Info ***************

API Management service name: ___________________________________________________
API Management API URL suffix: _________________________________________________


****** Steps 3-5: API Integration & External Function Info *********************

API Integration Name: __________________________________________________________
AZURE_MULTI_TENANT_APP_NAME: ___________________________________________________
AZURE_CONSENT_URL: _____________________________________________________________

External Function Name: ________________________________________________________

Préparation à l’utilisation du modèle ARM

Ces sections vous aident à vous préparer à utiliser le modèle ARM fourni par Snowflake pour créer une fonction externe sur Microsoft Azure.

Télécharger le modèle

Le modèle peut être téléchargé à partir du référentiel Snowflake dans GitHub.

Avant de pouvoir utiliser le modèle, vous devez l’importer dans le portail Azure. Les détails de l’importation du modèle sont inclus plus loin dans la rubrique qui décrit l’utilisation du modèle.

Choisir le plan tarifaire pour votre fonction Azure

Dans Microsoft Azure, une fonction Azure (service distant) peut être exécutée sur un hôte Linux ou Windows. Pour l’instant, Azure propose différentes combinaisons de prix et d’options d’authentification pour les hôtes Linux et Windows.

Le modèle ARM fourni par Snowflake utilise par défaut le plan tarifaire et les informations d’authentification suivants :

  • Par défaut, la fonction Azure utilise un hôte Windows.

  • La valeur par défaut est le niveau de prix « Consommation ».

  • Crée une application Azure Function et configure cette application pour qu’elle nécessite une authentification AD (Active Directory).

  • Crée une politique de sécurité pour valider un JWT (JSON Web Token) qui autorise Snowflake à appeler votre fonction Azure.

    Notez qu’il manque un champ à cette politique de sécurité ; les instructions fournies plus loin vous indiquent comment remplir ce champ.

Si vous prévoyez d’exécuter votre instance de gestion des API Azure ou une fonction Azure avec une configuration différente, vous devez mettre à jour le modèle. Pour plus d’informations sur la mise à jour du modèle, consultez la documentation Microsoft :

Créer une feuille de calcul pour le suivi des informations requises

Lorsque vous effectuez les tâches pour créer une fonction externe en utilisant le modèle ARM fourni par Snowflake, vous devez saisir des valeurs spécifiques (par exemple, le nom de service de gestion des API) à chaque étape du processus. Souvent, les valeurs que vous saisissez sont requises dans les étapes suivantes.

Pour faciliter l’enregistrement/le suivi de ces informations, nous avons fourni une feuille de calcul avec des champs pour chacune des valeurs requises :

Note

Pour des informations codées en dur dans le modèle ARM, les valeurs ont déjà été renseignées.

================================================================================
======================= TRACKING WORKSHEET: ARM TEMPLATE =======================
================================================================================

****** Step 1: Azure Function (Remote Service) Info ****************************

HTTP-Triggered Function name: __________________ echo __________________________
Azure Function AD Application ID: ______________________________________________

    (The value for the Azure Function AD Application ID above is the
    "Application (client) ID" of the Azure AD app registration for the
    Azure Function. The value is used to fill in the "azure_ad_application_id"
    field in the CREATE API INTEGRATION command.  This field is in the form of a
    `UUID <https://en.wikipedia.org/wiki/Universally_unique_identifier>`_ , which contains hexadecimal digits and dashes.)


****** Step 2: Azure API Management Service (Proxy Service) Info ***************

API Management service name: ___________________________________________________
API Management URL: ____________________________________________________________
Azure Function HTTP Trigger URL: _______________________________________________
API Management API URL suffix: _________________________________________________


****** Steps 3-5: API Integration & External Function Info *********************

API Integration Name: __________________________________________________________
AZURE_MULTI_TENANT_APP_NAME: ___________________________________________________
AZURE_CONSENT_URL: _____________________________________________________________

External Function Name: ________________________________________________________