Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial se muestra cómo usar Azure Functions para conectarse a los recursos de una red virtual Azure mediante puntos de conexión privados. Cree una nueva aplicación de funciones mediante una nueva cuenta de almacenamiento que esté bloqueada detrás de una red virtual a través de Azure Portal. La red virtual usa un desencadenador de cola de Service Bus.
En este tutorial, hará lo siguiente:
- Cree una aplicación de funciones en el plan Elastic Premium con integración de red virtual y puntos de conexión privados.
- Crear recursos Azure, como el Service Bus
- Bloquear la instancia de Service Bus tras un punto de conexión privado.
- Implemente una aplicación de funciones que use los desencadenadores Service Bus y HTTP.
- Probar para comprobar si la aplicación de funciones está protegida dentro de la red virtual.
- Limpieza de recursos.
Creación de una aplicación de funciones en un plan Premium
Cree una aplicación de funciones de C# en un plan Elastic Premium que admita funcionalidades de red, como la integración de red virtual en la creación junto con la escala sin servidor. En este tutorial se usa C# y Windows. También se admiten otros lenguajes y Linux.
En el menú Azure portal o en la página Home, seleccione Crear un recurso.
En la página "Nuevo", seleccione Aplicación de Funciones Web.
En la página de opciones de hospedaje, seleccione Functions Premium.
En la página Aspectos básicos, use la tabla siguiente para configurar la aplicación de funciones.
Configuración Valor sugerido Descripción Suscripción Su suscripción Suscripción en la que se creará esta aplicación de funciones nueva. Grupo de recursos myResourceGroup Nombre del grupo de recursos nuevo en el que se creará la aplicación de funciones. Nombre de la aplicación de función Nombre único globalmente Nombre que identifica la nueva Function App. Los caracteres válidos son (no distingue mayúsculas de minúsculas), y . Publicar Código Elija publicar archivos de código o un contenedor de Docker. Pila en tiempo de ejecución .NET En este tutorial se usa .NET. Versión 8 (LTS) En este tutorial se usa .NET 8.0 que se ejecuta en el mismo proceso que el host Functions. Región Región preferida Elija una región cerca de usted o cerca de otros servicios a los que tendrán acceso las funciones. Sistema operativo Windows En este tutorial se usa Windows, pero también funciona para Linux. Planeamiento Funciones Premium Plan de hospedaje que define cómo se asignan los recursos a la Function App. De manera predeterminada, cuando seleccione Premium, se crea un plan de App Service. El valor predeterminado de SKU y tamaño es EP1, donde EP son las siglas de Elástico Premium. Para más información, consulte la lista de las SKU Premium.
Al ejecutar las funciones de JavaScript en un plan Premium, debe elegir una instancia que tenga menos vCPU. Para más información, consulte el apartado sobre la elección de planes Premium de un solo núcleo.Seleccione Siguiente: Almacenamiento. En la página Almacenamiento, escriba la siguiente configuración.
Configuración Valor sugerido Descripción Cuenta de almacenamiento Nombre único globalmente Cree una cuenta de almacenamiento que use la aplicación de función. Los nombres de cuenta de almacenamiento deben tener entre 3 y 24 caracteres. Solo pueden contener números y letras minúsculas. También puede usar una cuenta existente que no esté restringida por reglas de firewall y que cumpla con los requisitos de la cuenta de almacenamiento. Al usar Functions con una cuenta de almacenamiento bloqueada, necesita una cuenta de almacenamiento v2. Esta versión es la versión de almacenamiento predeterminada creada al crear una aplicación de funciones con funcionalidades de red a través del portal de Azure. Seleccione Siguiente: redes. En la página Redes, escriba la siguiente configuración.
Nota:
Algunas de estas opciones no son visibles hasta que se seleccionen otras opciones.
Configuración Valor sugerido Descripción Habilitación del acceso público Off Denegar el acceso a la red pública bloquea todo el tráfico entrante, excepto que procede de los puntos de conexión privados. Habilitar la inserción de red Por La capacidad de configurar la aplicación con integración de red virtual en la creación aparece en la ventana del portal después de cambiar esta opción a Activado. Virtual Network Crear nuevo Seleccione el campo Crear nuevo. En la pantalla emergente, proporcione un nombre para la red virtual y seleccione Aceptar. Se mostrarán las opciones para restringir el acceso entrante y saliente a la aplicación de funciones en la creación. Debe habilitar explícitamente la integración de red virtual en la parte de acceso saliente de la ventana para restringir el acceso saliente. Escriba la siguiente configuración en la sección Acceso de entrada. Este paso creará un punto de conexión privado en la aplicación de funciones.
Sugerencia
Para seguir interactuando con la aplicación de funciones desde el portal de Azure, debe agregar el equipo local a la red virtual. Si no desea restringir el acceso entrante, omita este paso.
Configuración Valor sugerido Descripción Habilitación de puntos de conexión privados Por La capacidad de configurar la aplicación con integración de red virtual en la creación aparece en el portal después de habilitar esta opción. Nombre del punto de conexión privado myInboundPrivateEndpointName Nombre que identifica el nuevo punto de conexión privado de la aplicación de funciones. Subred de entrada Crear nuevo Esta opción creará una nueva subred para el punto de conexión privado de entrada. Es posible que se agreguen varios puntos de conexión privados a una subred singular. Proporcione un nombre de subred. El bloque de direcciones de subred puede dejarse en el valor predeterminado. Seleccione Aceptar. Para obtener más información sobre el ajuste de tamaño de subred, consulte Subredes. DNS zona de Azure Private DNS Este valor indica qué servidor DNS usa el punto de conexión privado. En la mayoría de los casos, si trabaja dentro de Azure, la Azure Private DNS Zone es la zona DNS que debe usar, ya que el uso de Manual para zonas DNS personalizadas aumenta la complejidad. Escriba la siguiente configuración en la sección Acceso de salida. Este paso integrará la aplicación de funciones con una red virtual al crearla. También expondrá opciones para crear puntos de conexión privados en la cuenta de almacenamiento y restringir la cuenta de almacenamiento desde el acceso de red en la creación. Cuando la aplicación de funciones está integrada en la red virtual, todo el tráfico saliente pasa de forma predeterminada a través de la red virtual.
Configuración Valor sugerido Descripción Habilitación de la integración con redes virtuales Por Esta configuración integra la aplicación de funciones con una red virtual para crear y dirigir todo el tráfico saliente a través de la red virtual. Subred de salida Crear nuevo Esta configuración crea una nueva subred para la integración de red virtual de la aplicación de funciones. Una aplicación de funciones solo puede ser una red virtual integrada con una subred vacía. Proporcione un nombre de subred. El bloque de direcciones de subred puede dejarse en el valor predeterminado. Seleccione Aceptar. Se muestra la opción para crear puntos de conexión privados de Storage. Para usar la aplicación de funciones con redes virtuales, debe unirla a una subred. Escriba la siguiente configuración en la sección Punto de conexión privado de almacenamiento. En este paso, se crearán puntos de conexión privados para los puntos de conexión de blob, cola, archivo y tabla en la cuenta de almacenamiento en la creación. Este enfoque integra eficazmente la cuenta de almacenamiento con la red virtual.
Configuración Valor sugerido Descripción Agregar un punto de conexión privado de almacenamiento Por La capacidad de configurar la aplicación con integración de red virtual en la creación se muestra en el portal después de habilitar esta opción. Nombre del punto de conexión privado myInboundPrivateEndpointName Nombre que identifica el punto de conexión privado de la cuenta de almacenamiento. Subred del punto de conexión privado Crear nuevo Esta configuración crea una nueva subred para el punto de conexión privado de entrada en la cuenta de almacenamiento. Es posible que se agreguen varios puntos de conexión privados a una subred singular. Proporcione un nombre de subred. El bloque de direcciones de subred puede dejarse en el valor predeterminado. Seleccione Aceptar. DNS zona de Azure Private DNS Este valor indica qué servidor DNS usa el punto de conexión privado. En la mayoría de los casos, si trabaja en Azure, la Zona de DNS Privada de Azure es la zona DNS que debe usar, ya que usar Manual para zonas DNS personalizadas tendrá una mayor complejidad. Seleccione Siguiente: Supervisión. En la página Supervisión, escriba la siguiente configuración.
Configuración Valor sugerido Descripción Application Insights Valor predeterminado Cree un recurso de Application Insights con el mismo nombre de aplicación en la región más cercana compatible. Expanda esta configuración si tiene que cambiar el Nuevo nombre de recurso o almacenar los datos en una Ubicación distinta en una geografía de Azure. Seleccione Revisar y crear para revisar las selecciones de configuración de la aplicación.
En la página Revisar y crear, revise la configuración. Luego, seleccione Crear para crear e implementar la aplicación de funciones.
En la esquina superior derecha del portal, seleccione el icono Notificaciones y observe el mensaje Implementación correcta.
Seleccione Ir al recurso para ver la nueva aplicación de función. También puede seleccionar Anclar al panel. Dicho anclaje facilita la vuelta a este recurso de aplicación de función desde el panel.
Felicidades. Ha creado con éxito su aplicación de funciones Premium.
Nota:
Algunas implementaciones pueden ocasionalmente fallar al crear los puntos de conexión privados en la cuenta de almacenamiento con el error . Este error se producirá aunque la propia aplicación de funciones se cree correctamente. Cuando encuentre un error de este tipo, elimine la aplicación de funciones y vuelva a intentar la operación. En su lugar, puede crear los puntos de conexión privados en la cuenta de almacenamiento manualmente.
Creación de un Service Bus
A continuación, creará una instancia de Service Bus que se usa para probar la funcionalidad de las funcionalidades de red de la aplicación de funciones en este tutorial.
En el menú Azure portal o en la página Home, seleccione Crear un recurso.
En la página New, busque Service Bus. Seleccione Crear.
En la pestaña Basics, use la tabla siguiente para configurar las opciones de Service Bus. Todas las demás opciones de configuración pueden usar los valores predeterminados.
Configuración Valor sugerido Descripción Suscripción Su suscripción Suscripción en la que se han creado los recursos. Grupo de recursos myResourceGroup El grupo de recursos que creó con la aplicación de funciones. Nombre del espacio de nombres myServiceBus Nombre de la instancia de Service Bus para la que está habilitado el punto de conexión privado. Ubicación myFunctionRegion La región en la que creó la aplicación de funciones. Plan de tarifa De primera calidad Elija este nivel para usar puntos de conexión privados con Azure Service Bus. Seleccione Revisar + crear. Una vez que se complete la validación, seleccione Crear.
Bloqueo de Service Bus
Cree el punto de conexión privado para bloquear la instancia de Service Bus:
En el nuevo Service Bus, en el menú de Settings, seleccione Networking.
En la pestaña Conexiones de puntos de conexión privados, seleccione Punto de conexión privado.
En la pestaña Aspectos básicos, use la configuración de punto de conexión privado que se muestra en la tabla siguiente.
Configuración Valor sugerido Descripción Suscripción Su suscripción Suscripción en la que se han creado los recursos. Grupo de recursos myResourceGroup El grupo de recursos que creó con la aplicación de funciones. Nombre sb-endpoint Nombre del punto de conexión privado de Service Bus. Región myFunctionRegion La región en la que creó la cuenta de almacenamiento. En la pestaña Recurso, use la configuración de punto de conexión privado que se muestra en la tabla siguiente.
Configuración Valor sugerido Descripción Suscripción Su suscripción Suscripción en la que se han creado los recursos. Tipo de recurso Microsoft.ServiceBus/namespaces Tipo de recurso para el Service Bus. Recurso myServiceBus El Bus de Servicio que creó anteriormente en el tutorial. Subrecurso de destino espacio de nombres Punto de conexión privado que se usará para el espacio de nombres de la instancia de Service Bus. En la pestaña Virtual Network, para la configuración Subnet, elija la subred de entrada que creó.
Deje DNS y Etiquetas como valor predeterminado y, a continuación, seleccione Revisar y crear. Una vez que se complete la validación, seleccione Crear.
Una vez creado el punto de conexión privado, vuelva a la sección Networking del espacio de nombres Service Bus y compruebe la pestaña Public Access.
Asegúrese de que esté seleccionada la opción Redes seleccionadas.
Seleccione + Agregar red virtual existente para agregar la red virtual creada recientemente.
En la pestaña Agregar redes, use la configuración de red de la tabla siguiente:
Configuración Valor sugerido Descripción Suscripción Su suscripción Suscripción en la que se han creado los recursos. Redes virtuales myVirtualNet Nombre de la red virtual a la que se conectará la aplicación de funciones. Subredes funciones Nombre de la subred a la que se conectará la aplicación de funciones. Seleccione Agregar la dirección IP del cliente para dar acceso a esa IP de cliente actual al espacio de nombres.
Nota:
Es necesario permitir que la dirección IP del cliente habilite el portal de Azure para publicar mensajes en la cola más adelante en este tutorial.
Seleccione Habilitar para habilitar el punto de conexión de servicio.
Seleccione Agregar para agregar la red virtual y la subred seleccionadas a las reglas de firewall de la Service Bus.
Seleccione Guardar para almacenar las reglas de firewall actualizadas.
Los recursos de la red virtual ahora pueden comunicarse con el Service Bus mediante el punto de conexión privado.
Creación de una cola
Cree la cola en la que el desencadenador de Azure Functions Service Bus obtendrá los eventos:
En el Service Bus, en el menú de Entities, seleccione Queues.
Seleccione Cola. Para los fines de este tutorial, especifique queue como nombre de la nueva cola.
Seleccione Crear.
Importante
En este tutorial se muestra cómo conectarse a Service Bus mediante una cadena de conexión, lo que requiere que gestione un secreto compartido. Para mejorar la seguridad, debe usar identidades administradas al conectarse a Service Bus desde la aplicación. Para más información, consulte Conexiones basadas en identidades en el artículo referencia de enlace de Service Bus.
Obtención de la cadena de conexión de Service Bus
En el Service Bus, en el menú de Configuración, seleccione Políticas de acceso compartido.
Seleccione RootManageSharedAccessKey. Copie la Cadena de conexión principal y guárdela. Necesita este connection string al configurar las opciones de la aplicación.
Configuración de los valores de la aplicación de funciones
En la aplicación de funciones, en el menú de Configuración, seleccione Configuración.
Para usar la aplicación de funciones con redes virtuales y Service Bus, actualice la configuración de la aplicación que se muestra en la tabla siguiente. Para agregar o editar una configuración, seleccione + Nueva configuración de la aplicación o el icono Editar en la columna situada más a la derecha de la tabla de configuración de la aplicación. Cuando termine, seleccione Save (Guardar).
Configuración Valor sugerido Descripción SERVICEBUS_CONNECTION myServiceBusConnectionString Cree esta configuración de la aplicación para la cadena de conexión del Bus de Servicio. Esta cadena de conexión de almacenamiento proviene de la sección Obtención de la cadena de conexión de Service Bus. WEBSITE_CONTENTOVERVNET 1 Cree esta configuración de aplicación. Un valor de 1 permite escalar la aplicación de funciones cuando la cuenta de almacenamiento está restringida a una red virtual. Puesto que usa un plan de hospedaje Elastic Premium, en la vista Configuración seleccione la pestaña Configuración del entorno de ejecución de la función. Establezca Supervisión de escalado en tiempo de ejecución en Activado. Luego, seleccione Aplicar. El escalado controlado por el entorno de ejecución permite conectar funciones de desencadenador no HTTP a los servicios que se ejecutan dentro de la red virtual.
Nota:
El escalado en tiempo de ejecución no es necesario para las aplicaciones de funciones hospedadas en un plan de App Service dedicado.
Implementación de un desencadenador de Service Bus y un desencadenador HTTP
Nota:
La habilitación de puntos de conexión privados en una aplicación de funciones también hace que el sitio del Administrador de control de código fuente (SCM) sea inaccesible públicamente. Las indicaciones siguientes proporcionan instrucciones de implementación mediante el Centro de implementación dentro de la aplicación de funciones. Como alternativa, use implementación zip o agentes auto-hospedados que se implementan en una subred de la red virtual.
En GitHub, vaya al siguiente repositorio de ejemplo. Contiene una aplicación de funciones y dos funciones, un desencadenador HTTP y un desencadenador de cola de Service Bus.
En la parte superior de la página, seleccione Fork para crear una bifurcación de este repositorio en su propia cuenta o organización de GitHub.
En la aplicación de funciones, en el menú de Implementación, seleccione Centro de implementación. Luego, seleccione Configuración.
En la pestaña Configuración, use la configuración de implementación que se muestra en la tabla siguiente.
Configuración Valor sugerido Descripción Origen GitHub Debe haber creado un repositorio de GitHub para el código de ejemplo en el paso 2. Organización miOrganización La organización en la que está insertado el repositorio. Por lo general, se trata de su cuenta. Repositorio Tutorial de functions-vnet El repositorio bifurcado desde aquí. Rama main (principal) La rama principal del repositorio que creó. Pila en tiempo de ejecución .NET El código de ejemplo está en C#. Versión .NET Core 3.1 Versión del entorno de ejecución. Seleccione Guardar.
La implementación inicial debería tardar unos minutos. Cuando la aplicación se implementa correctamente, en la pestaña Registros, verá un mensaje de estado correcto (activo). Si es necesario, actualice la página.
Felicidades. Implementó correctamente la aplicación de funciones de ejemplo.
Prueba de la aplicación de funciones bloqueada
Esta es una manera de supervisar la función mediante Application Insights:
En la aplicación de funciones, en el menú de Supervisión, seleccione Application Insights. Elija Aplicar y, a continuación, seleccione Ver datos de Application Insights.
Captura de pantalla sobre cómo ver Application Insights para una aplicación de funciones.
En el menú de Investigar, seleccione Métricas activas.
Abra una nueva pestaña. En el Service Bus, en el menú de Entities, seleccione Queues.
Seleccione la cola.
En el menú, seleccione Service Bus Explorer. Seleccione Enviar mensajes y, en Tipo de contenido , elija Texto/Sin formato. Luego, escriba un mensaje.
Seleccione Enviar para enviar el mensaje.
En la pestaña Métricas en directo, debería ver que se activó el desencadenador de la cola de Service Bus. Si no lo tiene, vuelva a enviar el mensaje de Service Bus Explorer.
Captura de pantalla sobre cómo ver mensajes mediante Live Metrics para las aplicaciones de funciones.
Felicidades. Ha probado correctamente la configuración de la aplicación de funciones con puntos de conexión privados.
Descripción de las zonas DNS privadas
Ha usado un punto de conexión privado para conectarse a recursos de Azure. Está estableciendo una conexión a una dirección IP privada en lugar del punto de conexión público. Los servicios Azure existentes están configurados para usar un DNS existente para conectarse al punto de conexión público. Debe reemplazar la configuración de DNS para conectarse al punto de conexión privado.
Se crea una zona DNS privada para cada recurso Azure que se configuró con un punto de conexión privado. También se crea un registro de DNS para cada dirección IP privada asociada con el punto de conexión privado.
En este tutorial se han creado las siguientes zonas DNS:
- privatelink.file.core.windows.net
- privatelink.blob.core.windows.net
- privatelink.servicebus.windows.net
- privatelink.azurewebsites.net
Limpieza de recursos
En los pasos precedentes, creó recursos de Azure en un grupo de recursos. Si no espera necesitar estos recursos en el futuro, puede eliminarlos eliminando el grupo de recursos:
En el menú del portal de Azure o la página principal, seleccione Resource groups>myResourceGroup.
En el panel myResourceGroup , asegúrese de que los recursos enumerados son los que desea eliminar.
Seleccione Eliminar grupo de recursos. Escriba myResourceGroup en el cuadro de texto para confirmar y, a continuación, seleccione Eliminar.
Pasos siguientes
En este tutorial, ha creado una aplicación de función Premium, una cuenta de almacenamiento y Service Bus. Protegió todos estos recurso tras puntos de conexión privados.
Use los vínculos siguientes para obtener más información sobre las opciones de red Azure Functions y los puntos de conexión privados: