Tutorial: Integración de Azure Functions con una red virtual de Azure mediante puntos de conexión privados
Artikulua
En este tutorial se explica cómo se utiliza Azure Functions para conectarse a recursos de una red virtual de 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.
Creación de recursos de Azure, como Service Bus
Bloquear la instancia de Service Bus tras un punto de conexión privado.
Implementar una aplicación de funciones que usa desencadenadores HTTP y de Service Bus.
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 usarán C# y Windows. También se admiten otros lenguajes y Linux.
En el menú de Azure Portal o la página Inicio, seleccione Crear un recurso.
En la página Nuevo, seleccione Proceso>Aplicación de funciones.
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.
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: Storage (Almacenamiento). En la página Almacenamiento, escriba la siguiente configuración.
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, se necesitará una cuenta de almacenamiento v2. Esta es la versión de almacenamiento predeterminada creada al crear una aplicación de funciones con funcionalidades de red a través de la hoja de creación.
Seleccione Siguiente: Redes. En la página Redes, escriba la siguiente configuración.
Oharra
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
Desactivado
Denegar el acceso a la red pública bloqueará todo el tráfico entrante, excepto el que proceda de puntos de conexión privados.
Habilitar la inserción de red
Activado
La capacidad de configurar la aplicación con la integración con red virtual en la creación aparecerá 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. Deberá habilitar explícitamente la integración de red virtual en la parte 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.
Argibidea
Para continuar interactuando con la aplicación de funciones desde el portal, deberá 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
Activado
La capacidad de configurar la aplicación con la integración con redes virtuales en la creación aparecerá en el portal después de que esta opción esté habilitada.
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. Se pueden agregar 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 DNS privada de Azure
Este valor indica qué servidor DNS usa el punto de conexión privado. En la mayoría de los casos, si está trabajando en Azure, la zona DNS privada de Azure será la zona DNS que debería usar como Manual para zonas DNS personalizadas que hayan aumentado 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 pasará 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
Activado
Esto integrará la aplicación de funciones con una red virtual en la creación y dirigirá todo el tráfico saliente a través de la red virtual.
Subred de salida
Crear nuevo
Esto creará una nueva subred para la integración de redes virtuales de la aplicación de funciones. Una aplicación de funciones solo podrá estar integrada con una red virtual con una subred vacía. Proporcione un nombre de subred. El bloque de direcciones de subred puede dejarse en el valor predeterminado. Si desea configurarlo, obtendrá más información sobre el ajuste de tamaño de subred aquí. 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. Esto integrará eficazmente la cuenta de almacenamiento con la red virtual.
Configuración
Valor sugerido
Descripción
Agregar un punto de conexión privado de almacenamiento
Activado
La capacidad de configurar la aplicación con la integración con redes virtuales en la creación se mostrará en el portal después de que esta opción esté habilitada.
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
Esto creará una nueva subred para el punto de conexión privado de entrada en la cuenta de almacenamiento. Se pueden agregar 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. Si desea configurarlo, obtendrá más información sobre el ajuste de tamaño de subred aquí. Seleccione Aceptar.
DNS
Zona DNS privada de Azure
Este valor indica qué servidor DNS usa el punto de conexión privado. En la mayoría de los casos, si está trabajando en Azure, la zona DNS privada de Azure será la zona DNS que debería usar como Manual para zonas DNS personalizadas que irán aumentado la complejidad.
Seleccione Siguiente: Supervisión. En la página Supervisión, escriba la siguiente configuración.
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.
¡Enhorabuena! Creó correctamente la aplicación de funciones prémium.
Oharra
Algunas implementaciones podrían producir errores en la creación de los puntos de conexión privados en la cuenta de almacenamiento con el error "StorageAccountOperationInProgress". 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 bus de servicio
A continuación, creará una instancia de Service Bus que se usará para probar la funcionalidad de las capacidades de red de la aplicación de funciones en este tutorial.
En el menú de Azure Portal o la página Inicio, seleccione Crear un recurso.
En la página Nuevo, busque Service Bus. Seleccione Crear.
En la pestaña Aspectos básicos, use la tabla siguiente para configurar las opciones de Service Bus. Todas las demás opciones de configuración pueden usar los valores predeterminados.
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 para la instancia de Service Bus.
Seleccione Guardar para almacenar las reglas de firewall actualizadas.
Los recursos de la red virtual ahora pueden comunicarse con la instancia de 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 menú de la izquierda de la instancia de Service Bus, seleccione Colas.
Seleccione Cola. Para los fines de este tutorial, especifique queue como nombre de la nueva cola.
Seleccione Crear.
Garrantzitsua
En este tutorial se muestra actualmente cómo conectarse a Service Bus mediante una cadena de conexión, lo que requiere que controle un secreto de recurso 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 menú de la izquierda de Service Bus, seleccione Directivas de acceso compartido.
Seleccione RootManageSharedAccessKey. Copie la Cadena de conexión principal y guárdela. Necesitará esta cadena de conexión cuando configure los valores de la aplicación.
Configuración de los valores de la aplicación de funciones
En el menú de la izquierda de la aplicación de funciones, 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 una configuración de aplicación para la cadena de conexión de la instancia de Service Bus. 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. Después, seleccione Guardar. 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.
Oharra
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
Oharra
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 repositorio de ejemplo siguiente. Contiene una aplicación de funciones y dos funciones, un desencadenador HTTP y un desencadenador de cola de Service Bus.
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.
¡Enhorabuena! Implementó correctamente la aplicación de funciones de ejemplo.
Prueba de la aplicación de funciones bloqueada
En el menú de la izquierda de la aplicación de funciones, seleccione Funciones.
Seleccione ServiceBusQueueTrigger.
En el menú de la izquierda, seleccione Monitor.
Verá que no puede supervisar la aplicación. El explorador no tiene acceso a la red virtual, por lo que no puede acceder directamente a los recursos de esa red.
A continuación, se muestra una forma alternativa de supervisar la función mediante el uso de Application Insights:
En el menú de la izquierda de la aplicación de funciones, seleccione Application Insights. Luego, seleccione Ver datos de Application Insights.
En el menú de la izquierda, seleccione Métricas activas.
Abra una nueva pestaña. En el menú de la izquierda de Service Bus, seleccione Colas.
Seleccione la cola.
En el menú de la izquierda, seleccione Service Bus Explorer. En Enviar, elija Texto/sin formato para Tipo de contenido. Luego, escriba un mensaje.
Seleccione Enviar para enviar el mensaje.
En la pestaña Live Metrics, debería ver que se activó el desencadenador de la cola de Service Bus. Si no es así, vuelva a enviar el mensaje desde Service Bus Explorer.
¡Enhorabuena! Probó correctamente la configuración de la aplicación de funciones con puntos de conexión privados.
Descripción de las zonas DNS privadas
Usó un punto de conexión privado para conectarse a los 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 de 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 de Azure configurado 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 anteriores, creó recursos de Azure en un grupo de recursos. Si no cree que vaya a necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo de recursos.
En el menú de Azure Portal o la página Inicio, seleccione Grupos de recursos. En la página Grupos de recursos, seleccione myResourceGroup.
En la página myResourceGroup, asegúrese de que los recursos enumerados sean los que desea eliminar.
Seleccione Eliminar grupo de recursos, escriba myResourceGroup en el cuadro de texto para confirmar y, después, seleccione Eliminar.
Pasos siguientes
En este tutorial, creó una aplicación de funciones, una cuenta de almacenamiento y una instancia de Service Bus de nivel Premium. 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 y puntos de conexión privados de Azure Functions:
Bat egin IAren soluzio eskalagarrien soluzioak sortzeko topaketa sortarekin, mundu errealaren erabilera-kasuetan oinarrituak, beste garatzaile eta aditu batzuekin.
Aprenda a conectar de forma segura un servidor de Azure SQL mediante un punto de conexión privado de Azure a través de Azure Portal, lo que garantiza una comunicación privada y segura con el servidor de SQL Server.
Cree soluciones de un extremo a otro en Microsoft Azure para crear Azure Functions, implementar y administrar aplicaciones web, desarrollar soluciones que usen Azure Storage, etc.
Aprenda a usar una cuenta de almacenamiento protegida en una red virtual como la cuenta de almacenamiento predeterminada para una aplicación de funciones en Azure Functions.