Adresses IP dans Azure Functions

Cet article aborde les concepts suivants relatifs aux adresses IP des applications de fonction :

  • Localisation des adresses IP actuellement utilisées par une application de fonction.
  • Conditions qui entraînent la modification des adresses IP des applications de fonction.
  • Restriction des adresses IP pouvant accéder à une application de fonction.
  • Définition d’adresses IP dédiées pour une application de fonction.

Les adresses IP sont associées à des applications de fonction, et non à des fonctions individuelles. Les requêtes HTTP entrantes ne peuvent pas utiliser l’adresse IP entrante pour appeler des fonctions individuelles ; elles doivent utiliser le nom de domaine par défaut (functionappname.azurewebsites.net) ou un nom de domaine personnalisé.

Adresse IP entrante de l’application de fonction

Chaque application de fonction commence par utiliser une seule adresse IP entrante. Lors de l’exécution dans un plan Consommation ou Premium, des adresses IP entrantes supplémentaires peuvent être ajoutées à mesure du déroulement du scale-out piloté par les événements. Pour rechercher l’adresse IP entrante ou les adresses utilisées par votre application, utilisez l’utilitaire nslookup à partir de votre ordinateur local, comme dans l’exemple suivant :

nslookup <APP_NAME>.azurewebsites.net

Dans cet exemple, remplacez <APP_NAME> par le nom de votre application de fonction. Si votre application utilise un nom de domaine personnalisé, utilisez plutôt nslookup pour ce nom de domaine personnalisé.

Adresses IP sortantes de l’application de fonction

Chaque application de fonction a différentes adresses IP sortantes disponibles. Toute connexion sortante d’une fonction, par exemple, à une base de données principale, utilise l’une des adresses IP sortantes comme adresse IP d’origine. Il n’est pas possible de savoir à l’avance laquelle sera utilisée. C’est pourquoi le service principal doit ouvrir son pare-feu à toutes les adresses IP sortantes de l’application de fonction.

Conseil

Pour certaines fonctionnalités au niveau de la plateforme, notamment les références Key Vault, l’adresse IP d’origine peut ne pas être l’une des adresses IP sortantes, tout comme vous ne devez pas configurer la ressource cible pour qu’elle s’appuie sur ces adresses spécifiques. Il est recommandé que l’application utilise plutôt une intégration du réseau virtuel, car la plateforme achemine le trafic vers la ressource cible par ce réseau.

Pour trouver les adresses IP sortantes disponibles pour une application de fonction :

  1. Connectez-vous à Azure Resource Explorer.
  2. Sélectionnez Abonnements >{votre abonnement}> Fournisseurs > Microsoft.Web >Sites.
  3. Dans le volet JSON, recherchez le site dont la propriété id se termine par le nom de votre application de fonction.
  4. Localisez outboundIpAddresses et possibleOutboundIpAddresses.

L’ensemble de outboundIpAddresses est actuellement accessible à l’application de fonction. L’ensemble de possibleOutboundIpAddresses comporte les adresses IP qui ne seront disponibles que si l’application de fonction passe à d’autres niveaux tarifaires.

Notes

Lorsqu’une application de fonction qui s’exécute sur le plan de consommation ou le plan Premium est mise à l’échelle, une nouvelle plage d’adresses IP sortantes peut être attribuée. En cas d’exécution sur l’un de ces plans, vous ne pouvez pas compter sur les adresses IP sortantes signalées pour créer une liste d'autorisation définitive. Pour pouvoir inclure toutes les adresses sortantes potentielles utilisées pendant la mise à l’échelle dynamique, vous devez ajouter l’ensemble du centre de données à votre liste d'autorisation.

Adresses IP sortantes du centre de données

Si vous devez ajouter les adresses IP sortantes utilisées par vos applications de fonction à une liste d’autorisation, vous pouvez également ajouter le centre de données des applications de fonction (région Azure) à une liste d’autorisation. Vous pouvez télécharger un fichier JSON qui liste les adresses IP de tous les centres de données Azure. Recherchez ensuite le fragment JSON qui s’applique à la région dans laquelle s’exécute votre application de fonction.

Par exemple, le fragment JSON suivant est ce à quoi pourrait ressembler la liste d’autorisation pour la région Europe Ouest :

{
  "name": "AzureCloud.westeurope",
  "id": "AzureCloud.westeurope",
  "properties": {
    "changeNumber": 9,
    "region": "westeurope",
    "platform": "Azure",
    "systemService": "",
    "addressPrefixes": [
      "13.69.0.0/17",
      "13.73.128.0/18",
      ... Some IP addresses not shown here
     "213.199.180.192/27",
     "213.199.183.0/24"
    ]
  }
}

Pour savoir quand ce fichier est mis à jour et quand les adresses IP changent, développez la section Détails de la page du Centre de téléchargement.

Changement d’adresse IP entrante

L’adresse IP entrante peut changer dans les cas suivants :

  • vous supprimez une application de fonction, puis la recréez dans un autre groupe de ressources ;
  • vous supprimez la dernière application de fonction dans une combinaison de groupe de ressources et de région, puis la recréez ;
  • vous supprimez une liaison TLS, par exemple, pendant le renouvellement des certificats.

Lorsque votre application de fonction s’exécute dans un plan de consommation ou un plan Premium, l’adresse IP entrante peut également changer, même quand vous n’avez effectué aucune des actions répertoriées ci-dessus.

Changement d’adresse IP sortante

La stabilité relative de l'adresse IP sortante dépend du plan d'hébergement.

Plans de consommation et Premium

En raison des comportements de mise à l'échelle automatique, l'adresse IP sortante peut changer à tout moment en cas d'exécution sur un plan de consommation ou un plan Premium.

Si vous devez contrôler l'adresse IP sortante de votre application de fonction, par exemple pour l'ajouter à une liste d'autorisation, envisagez d'implémenter une passerelle NAT de réseau virtuel lors de son exécution dans votre plan d'hébergement Premium. Vous pouvez également effectuer cette opération en l’exécutant dans un plan dédié (App Service).

Plans dédiés

En cas d'exécution sur des plans dédiés (App Service), l'ensemble des adresses IP sortantes disponibles pour une application de fonction peut changer lorsque :

  • vous effectuez une action susceptible de modifier l’adresse IP entrante ;
  • vous modifiez le niveau tarifaire de votre plan dédié (App Service). La liste de toutes les adresses IP sortantes utilisables par votre application, pour tous les niveaux tarifaires, est donnée dans la propriété possibleOutboundIPAddresses. Consultez Trouver des adresses IP sortantes.

Imposer une modification d'adresse IP sortante

Utilisez la procédure suivante pour imposer délibérément une modification d'adresse IP sortante dans un plan dédié (App Service) :

  1. Faites évoluer votre plan App Service entre les niveaux tarifaires Standard et Premium v2.

  2. Attendez 10 minutes.

  3. Revenez au niveau tarifaire de départ.

Restriction des adresses IP

Vous pouvez configurer la liste des adresses IP auxquelles vous souhaitez autoriser ou refuser l’accès à une application de fonction. Pour plus d’informations, consultez Restrictions d’adresse IP statique avec Azure App Service.

Adresses IP dédiées

Il existe plusieurs stratégies à explorer lorsque votre application de fonction requiert des adresses IP statiques et dédiées.

Passerelle NAT de réseau virtuel pour les adresses IP statiques sortantes

Vous pouvez contrôler l’adresse IP du trafic sortant à partir de vos fonctions en utilisant une passerelle NAT de réseau virtuel pour diriger le trafic vers une IP publique statique. Vous pouvez utiliser cette topologie lors de l’exécution dans un plan Premium ou un plan dédié (App Service). Poiur en savoir plus, consultez Tutoriel : Contrôler l’adresse IP sortante Azure Functions avec une passerelle NAT de réseau virtuel Azure.

Environnements App Service

Pour un contrôle total sur les adresses IP, entrantes et sortantes, nous recommandons les environnements App Service Environment (niveau Isolé des plans App service). Pour plus d’informations, voir Adresses IP de l’environnement App Service et Guide pratique pour contrôler le trafic entrant dans un environnement App Service.

Pour savoir si votre application de fonction s’exécute dans un environnement App Service :

  1. Connectez-vous au portail Azure.
  2. Accédez à l’application de fonction.
  3. Sélectionnez l’onglet Vue d’ensemble.
  4. Le niveau du plan App Service apparaît sous Niveau tarifaire/plan App Service. Le niveau tarifaire de l’environnement App Service est Isolé.

L’environnement App Service sku est Isolated.

Étapes suivantes

L’une des causes courantes des changements d’adresses IP est le changement d’échelle de l’application de fonction. En savoir plus sur la mise à l’échelle des applications de fonction.