Direcciones IP en Azure Functions

En este artículo se explican los siguientes conceptos relacionados con las direcciones IP de las aplicaciones de funciones:

  • Encontrar las direcciones IP que usa actualmente una aplicación de funciones.
  • Condiciones que hacen que cambien las direcciones IP de la aplicación de funciones.
  • Restringir las direcciones IP que pueden acceder a una aplicación de funciones.
  • Definir las direcciones IP dedicadas para una aplicación de funciones.

Las direcciones IP se asocian a aplicaciones de función, no a funciones individuales. Las solicitudes HTTP entrantes no pueden usar la dirección IP de entrada para llamar a funciones individuales; deben usar el nombre de dominio predeterminado (functionappname.azurewebsites.net) o un nombre de dominio personalizado.

Dirección IP de entrada de una aplicación de función

Cada aplicación de funciones comienza con una única dirección IP de entrada. Cuando se ejecuta en un plan de consumo o Premium, se pueden agregar direcciones IP de entrada adicionales a medida que se produce el escalado horizontal controlado por eventos. Para buscar la dirección IP de entrada o las direcciones que usa la aplicación, use la utilidad nslookup del equipo local, como en el ejemplo siguiente:

nslookup <APP_NAME>.azurewebsites.net

En este ejemplo, reemplace <APP_NAME> por el nombre de la aplicación de funciones. Si la aplicación usa un nombre de dominio personalizado, use nslookup en su lugar para ese nombre de dominio personalizado.

Direcciones IP de salida de una aplicación de función

Cada aplicación de función tiene un conjunto de direcciones IP de salida disponibles. Las conexiones de salida desde cualquier función, como a una base de datos back-end, usan una de las direcciones IP de salida disponibles como dirección IP de origen. No se puede saber con antelación qué dirección IP usará una conexión determinada. Por este motivo, el servicio back-end debe abrir su firewall a todas las direcciones IP de salida de la aplicación de función.

Sugerencia

Para algunas características a nivel de plataforma, como Referencias a Key Vault, es posible que la IP de origen no sea una de las IP de salida, por lo que no debería configurar el recurso de destino para que dependa de estas direcciones específicas. Se recomienda que la aplicación use en su lugar una integración de red virtual, ya que la plataforma dirigirá el tráfico al recurso de destino a través de esa red.

Para buscar las direcciones IP de salida disponibles para una aplicación de función:

  1. Inicie sesión en Azure Resource Explorer.
  2. Seleccione suscriptions (suscripciones) > {su suscripción} > providers (proveedores) > Microsoft.Web > sites (sitios).
  3. En el panel JSON, busque el sitio con una propiedad id que acabe en el nombre de la aplicación de función.
  4. Vea outboundIpAddresses y possibleOutboundIpAddresses.

El conjunto de outboundIpAddresses está actualmente disponible para la aplicación de función. El conjunto de possibleOutboundIpAddresses incluye las direcciones IP que estarán disponibles solo si la aplicación de función se escala a otros planes de tarifa.

Nota

Cuando se escala una aplicación de función que se ejecuta en el plan de consumo o el plan premium, puede asignarse un nuevo intervalo de direcciones IP de salida. Cuando la ejecución se realiza en cualquiera de estos planes, no puede confiar en las direcciones IP salientes notificadas para crear una lista de permitidos definitiva. Para poder incluir todas las direcciones salientes posibles que se usan durante el escalado dinámico, tendrá agregar el centro de datos completo a la lista de permitidos.

Direcciones IP de salida del centro de datos

Si tiene que agregar las direcciones IP de salida que usan las aplicaciones de funciones a una lista de permitidos, otra opción es agregar el centro de datos de las aplicaciones de funciones (región de Azure) a una lista de permitidos. Puede descargar un archivo JSON que contiene las direcciones IP de todos los centros de datos de Azure. Luego, busque el fragmento JSON que se aplique a la región en la que se ejecuta la aplicación de función.

Por ejemplo, el siguiente fragmento de JSON muestra el aspecto que puede tener la lista de permitidos del Oeste de Europa:

{
  "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"
    ]
  }
}

Para obtener información acerca de cuándo se actualiza este archivo y cuando cambian las direcciones IP, expanda la sección Details (Detalles) de la página del Centro de descarga.

Cambios en la dirección IP de entrada

La dirección IP de entrada puede cambiar cuándo se:

  • Elimina una aplicación de función y se vuelve a crearla en otro grupo de recursos.
  • Elimina la última aplicación de función de una combinación de grupo de recursos y región, y se vuelve a crear.
  • Elimina un enlace TLS; por ejemplo, cuando se renueva un certificado.

Si la aplicación de funciones se ejecuta en un plan de consumo o un plan premium, la dirección IP de entrada también podría cambiar aunque no se haya realizado ninguna acción como las que se indicaron anteriormente.

Cambios en la dirección IP de salida

La estabilidad relativa de la dirección IP de salida depende del plan de hospedaje.

Planes de consumo y prémium

Debido a los comportamientos de escalado automático, la dirección IP de salida puede cambiar en cualquier momento cuando se ejecute en un Plan de consumo o en un Plan prémium.

Si tiene que controlar la dirección IP de salida de la aplicación de funciones, por ejemplo, cuando necesite agregarla a una lista de permitidos, puede implementar una puerta de enlace NAT de red virtual en el plan de hospedaje Premium. También puede hacerlo si se ejecuta en un plan Dedicado (App Service).

Planes dedicados

Cuando se ejecuta en planes dedicados (App Service), el conjunto de direcciones IP de salida disponibles para una aplicación de funciones puede cambiar si:

  • Realiza alguna acción que puede cambiar la dirección IP de entrada.
  • Cambia el plan de tarifa del plan dedicado (App Service). La lista de todas las posibles direcciones IP de salida que puede utilizar una aplicación, para todos los planes de tarifa, está en la propiedad possibleOutboundIPAddresses. Consulte Búsqueda de las direcciones IP de salida.

Forzar el cambio de la dirección IP de salida

Use el procedimiento siguiente para forzar deliberadamente un cambio de dirección IP de salida en un plan dedicado (App Service):

  1. Escale el plan de App Service o redúzcalo verticalmente entre los planes de tarifa Estándar y Premium v2.

  2. Espere 10 minutos.

  3. Vuelva a escalar al plan inicial.

Restricciones de las direcciones IP

Puede configurar una lista de direcciones IP a las que desea permitir o denegar el acceso a una aplicación de función. Para más información, consulte Restricciones de IP estáticas de Azure App Service.

Direcciones IP dedicadas

Hay varias estrategias que puede examinar cuando la aplicación de funciones requiere direcciones IP dedicadas estáticas.

Instancia de NAT Gateway de red virtual para IP estática de salida

Para controlar la dirección IP del tráfico de salida desde las funciones, puede usar una instancia de NAT Gateway de red virtual, a fin de dirigir el tráfico a través de una dirección IP pública estática. Puede usar esta topología cuando realiza la ejecución en un plan Premium o en un plan Dedicado (App Service). Para más información, consulte Tutorial: Control de la IP de salida de Azure Functions mediante un servicio NAT Gateway de Azure Virtual Network.

Entornos de App Service

Para tener un control total sobre las direcciones IP, tanto de entrada como de salida, se recomienda usar instancias de App Service Environment (el nivel Aislado de los planes de App Service). Para más información, consulte Direcciones IP de App Service Environment y Control del tráfico de entrada a App Service Environment.

Para averiguar si una aplicación de función se ejecuta en App Service Environment:

  1. Inicie sesión en Azure Portal.
  2. Vaya a la aplicación de función.
  3. Seleccione la pestaña Información general.
  4. El nivel del plan de App Service aparece en Plan de App Service/plan de tarifa. El plan de tarifa de App Service Environment es Aislado.

El App Service Environment sku es Isolated.

Pasos siguientes

Una causa común de los cambios IP son los cambios de escala de las aplicaciones de función. Más información acerca del escalado de las aplicaciones de función.