Aspectos internos de Service Connector

El Conector de servicio es un proveedor de recursos de extensión de Azure diseñado para proporcionar una manera sencilla de crear y administrar conexiones entre servicios de Azure.

El Conector de servicio ofrece las siguientes características:

  • Le permite conectar entre sí servicios de Azure con un único comando de la CLI de Azure o en unos pocos pasos mediante Azure Portal.
  • Admite un número creciente de bases de datos, almacenamiento, servicios en tiempo real, estados y almacenes de secretos que se usan con la aplicación nativa de nube.
  • Configura automáticamente las opciones de red, la autenticación y administra las propiedades o variables de entorno la de conexión.
  • Valida las conexiones y proporciona sugerencias para corregir las conexiones con errores.

Información general sobre el servicio

El concepto de conexión de servicio es un concepto fundamental del modelo de recursos del Conector de servicio. Una conexión de servicio representa una abstracción del vínculo entre dos servicios. Las conexiones de servicio tienen las siguientes propiedades:

Propiedad Descripción
Nombre de la conexión Nombre único de la conexión de servicio.
Tipo de servicio de origen Los servicios de origen se pueden conectar a los servicios de destino. Normalmente, son servicios de proceso de Azure e incluyen Azure App Service, Azure Container Apps, Azure Functions, Azure Kubernetes Service (AKS) y Azure Spring Apps.
Tipo de servicio de destino Los servicios de destino son servicios de respaldo o servicios de dependencia a los que se conectan los servicios de proceso. Service Connector admite varios tipos de servicio de destino, como bases de datos principales, almacenamiento, servicios en tiempo real, estados y almacenes secretos.
Tipo de cliente El tipo de cliente hace referencia a la pila del entorno de ejecución de proceso, el marco de desarrollo o el tipo específico de biblioteca cliente que acepta el formato específico de las propiedades o variables de entorno de la conexión.
Tipo de autenticación Tipo de autenticación utilizado de la conexión de servicio. Podría ser una cadena de conexión o un secreto, una identidad administrada o una entidad de servicio.

Los servicios de origen y los servicios de destino admiten varias conexiones de servicio simultáneas, lo que significa que puede conectar cada recurso a varios recursos.

El Conector de servicio administra las conexiones en las propiedades de la instancia de origen. La creación, obtención, actualización y eliminación de conexiones se realiza directamente abriendo la instancia de servicio de origen en Azure Portal o mediante los comandos de la CLI del servicio de origen.

Las conexiones se pueden realizar entre suscripciones o inquilinos, lo que significa que los servicios de origen y destino pueden pertenecer a diferentes suscripciones o inquilinos. Cuando se crea una nueva conexión de servicio, el recurso de conexión se crea de manera predeterminada en la misma región que la instancia de servicio de proceso.

Creación y actualización de una conexión de servicio

El Conector de servicio ejecuta varias tareas al crear o actualizar conexiones de servicio, entre las que se incluyen:

  • Configuración de las opciones de la red y el firewall. Obtenga más información sobre las soluciones de red.

  • Configuración de la información de conexión. Obtenga más información sobre las configuraciones de conexión.

  • Configuración de la información de autenticación. El Conector de servicio admite todos los tipos de autenticación disponibles entre los servicios de origen y los servicios de destino.

    • Identidad administrada asignada por el sistema. El Conector de servicio habilita la identidad administrada asignada por el sistema en los servicios de origen, si aún no está habilitada, concede roles RBAC de los servicios de destino a la identidad administrada. El usuario puede especificar los roles que se van a conceder.
    • Identidad administrada asignada por el usuario. El Conector de servicio habilita la identidad administrada asignada por el usuario en los servicios de origen, si aún no está habilitada, concede roles RBAC de los servicios de destino a la identidad administrada. El usuario puede especificar los roles que se van a conceder.
    • Cadena de conexión. El Conector de servicio recupera cadenas de conexión de servicios de destino como Storage, Redis Cache, etc., o construye cadenas de conexión basadas en la entrada del usuario, como Azure Database for SQL, PostgreSQL, etc.
    • Entidad de servicio. El Conector de servicio concede roles RBAC de los servicios de destino a la identidad administrada. El usuario puede especificar los roles que se van a conceder.

    El Conector de servicio guarda las configuraciones de autenticación correspondientes a los servicios de origen, por ejemplo, guardando AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_STORAGEACCOUNT_ENDPOINT para Storage con el tipo de autenticación de la identidad administrada asignada por el usuario.

  • Creación o actualización de la reversión de la conexión en caso de error

Si un paso genera un error durante este proceso, el Conector de servicio revierte todos los pasos anteriores para mantener la configuración inicial en las instancias de origen y destino.

Proveedor de recursos

Microsoft.ServiceLinker es el nombre del proveedor de recursos del Conector de servicio.

Cuando un usuario abre la pestaña del Conector de servicio en Azure Portal, el proveedor de recursos ServiceLinker se registra automáticamente en la suscripción activa del usuario. El usuario que generó el registro aparece como iniciador del evento de registro.

El Conector de servicio permite a los usuarios conectar servicios entre suscripciones. Cuando un usuario crea una conexión a un servicio de destino registrado en otra suscripción, Service Linker también se registra en la suscripción del servicio de destino. Este registro se produce cuando el usuario selecciona la pestaña Revisar y crear antes de crear la conexión.

Configuraciones de conexión

Las configuraciones de conexión se establecen en el servicio de origen.

En Azure Portal, abra un servicio de origen y vaya a Conector de servicio. Expanda cada conexión para ver las configuraciones de conexión.

Captura de pantalla de Azure Portal en la que se muestran los detalles de la conexión del servicio.

En la CLI, utilice el comando list-configuration para obtener las configuraciones de conexión.

az webapp connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
az spring connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
az containerapp connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>

Convención de nomenclatura de configuración

El Conector de servicio establece la configuración de conexión al crear una conexión. El tipo de cliente y el tipo de autenticación determinan los pares clave-valor de las variables de entorno. Por ejemplo, el uso de Azure SDK con una identidad administrada requiere un identificador de cliente, un secreto de cliente, etc. El uso de un controlador JDBC requiere una cadena de conexión a la base de datos. Siga estas convenciones para asignar un nombre a las configuraciones:

  • Cliente de Spring Boot: la biblioteca de Spring Boot para cada servicio de destino tiene su propia convención de nomenclatura. Por ejemplo, la configuración de conexión de MySQL sería spring.datasource.url, spring.datasource.username, spring.datasource.password. La configuración de conexión de Kafka sería spring.kafka.properties.bootstrap.servers.

  • Otros clientes:

    • El nombre de clave de la primera configuración de conexión usa el formato <Cloud>_<Type>_<Name>. Por ejemplo: AZURE_STORAGEBLOB_RESOURCEENDPOINT, CONFLUENTCLOUD_KAFKA_BOOTSTRAPSERVER.
    • Para el mismo tipo de recurso de destino, el nombre de clave de la segunda configuración de conexión utiliza el formato <Cloud>_<Type>_<Connection Name>_<Name>. Por ejemplo: AZURE_STORAGEBLOB_CONN2_RESOURCEENDPOINT, CONFLUENTCLOUD_KAFKA_CONN2_BOOTSTRAPSERVER.

Solución de red de servicio

El Conector de servicio ofrece tres soluciones de red entre las que los usuarios pueden elegir al crear una conexión. Estas soluciones están diseñadas para facilitar la comunicación segura y eficaz entre los recursos.

  1. Firewall: esta solución permite la conexión a través de la red pública y el recurso de proceso que accede al recurso de destino con la dirección IP pública. Al seleccionar esta opción, el Conector de servicio comprueba la configuración del firewall del recurso de destino y agrega una regla para permitir conexiones desde la dirección IP pública del recurso de origen. Si el firewall del recurso permite el acceso a todos los recursos de Azure, el Conector de servicio habilita esta configuración. Sin embargo, si el recurso de destino deniega todo el tráfico de red pública de forma predeterminada, el Conector de servicio no modifica esta configuración. En este caso, debe elegir otra opción o actualizar la configuración de red manualmente antes de intentarlo de nuevo.

  2. Punto de conexión de servicio: esta solución permite que el recurso de proceso se conecte a los recursos de destino a través de una red virtual, lo que garantiza que el tráfico de conexión no pase a través de la red pública. Solo está disponible si se cumplen ciertas condiciones previas:

    • El recurso de proceso debe tener habilitada la integración de red virtual. En Azure App Service, se puede configurar en sus opciones de red; para Azure Spring Apps, los usuarios deben establecer la inserción de Virtual Network durante la fase de creación de recursos.
    • El servicio de destino debe admitir el punto de conexión de servicio. Para obtener una lista de los servicios admitidos consulte Puntos de conexión de servicio de Virtual Network.

    Al seleccionar esta opción, el Conector de servicio agrega la dirección IP privada del recurso de proceso en la red virtual a las reglas de Virtual Network del recurso de destino y habilita el punto de conexión de servicio en la configuración de subred del recurso de origen. Si el usuario no tiene permisos suficientes, la SKU o región del recurso no admite puntos de conexión de servicio, se produce un error en la creación de la conexión.

  3. Punto de conexión privado: esta solución es una manera recomendada de conectar recursos a través de una red virtual y solo está disponible si se cumplen determinadas condiciones previas:

  • El recurso de proceso debe tener habilitada la integración de red virtual. En Azure App Service, se puede configurar en sus opciones de red; para Azure Spring Apps, los usuarios deben establecer la inserción de red virtual durante la fase de creación de recursos.

  • El servicio de destino debe admitir puntos de conexión privados. Para obtener una lista de los servicios admitidos, consulte Recurso de vínculo privado.

    Al seleccionar esta opción, el Conector de servicio no realiza más configuraciones en los recursos de proceso o de destino. En su lugar, comprueba la existencia de un punto de conexión privado válido y produce un error en la conexión si no se encuentra. Para mayor comodidad, los usuarios pueden seleccionar la casilla "Nuevo punto de conexión privado" en Azure Portal al crear una conexión. Con esto el Conector de servicio crea automáticamente todos los recursos relacionados para el punto de conexión privado en la secuencia adecuada, lo que simplifica el proceso de creación de la conexión.

Validación de la conexión de servicio

Al validar una conexión, el Conector de servicio comprueba los siguientes elementos:

  • Existen los recursos de origen y destino.
  • Origen: se registra la información de conexión correcta.
  • Destino: se registra la configuración correcta de la red y el firewall.
  • Recursos de origen y destino: se registra la información de autenticación correcta.

Eliminación de conexiones

Cuando se elimina una conexión de servicio, también se elimina la información de conexión.

Pasos siguientes

Consulte el siguiente artículo de concepto para más información sobre el Conector de servicio.