Creación de tareas de replicación para recursos de Azure mediante Azure Logic Apps (versión preliminar)
Importante
Esta funcionalidad está en versión preliminar y está sujeta a las Condiciones de uso complementarias para las versiones preliminares de Microsoft Azure.
Aunque la disponibilidad y la confiabilidad máximas son las máximas prioridades operativas de los servicios de Azure, todavía existen muchas formas de que la comunicación se detenga debido a problemas de red o de resolución de nombres, a errores o a una falta de respuesta temporal. Estas condiciones no son tan "desastrosas" como para querer abandonar la implementación regional por completo, como podría hacer en una situación de recuperación ante desastres. Sin embargo, el escenario empresarial de algunas aplicaciones puede verse afectado por eventos de disponibilidad que no duran más que unos minutos o incluso segundos.
Para reducir el efecto que los eventos impredecibles pueden tener en sus recursos de Azure en una región de Azure, puede replicar el contenido de estos recursos de una región a otra para poder mantener la continuidad del negocio. En Azure, puede crear una tarea de replicación que mueva los datos, los eventos o los mensajes de un origen de una región a un destino de otra región. De esta manera, puede tener el destino fácilmente disponible si el origen se desconecta y el destino tiene que tomar el relevo.
Nota
También puede utilizar las tareas de replicación para mover contenidos entre entidades de la misma región, pero si toda la región deja de estar disponible o experimenta una interrupción, tanto el origen como el destino se verán afectados.
En este artículo se proporciona información general sobre las tareas de replicación impulsadas por Azure Logic Apps y se muestra cómo crear una tarea de replicación de ejemplo para colas de Azure Service Bus. Si no está familiarizado con las aplicaciones lógicas y los flujos de trabajo, consulte ¿Qué es Azure Logic Apps y inquilino único frente a multiinquilino en Azure Logic Apps.
¿Qué es una tarea de replicación?
Generalmente, una tarea de replicación recibe datos, eventos o mensajes de un origen, mueve ese contenido a un destino y luego lo elimina del origen, excepto cuando el origen es una entidad de Event Hubs. La tarea de replicación normalmente mueve el contenido sin cambios, pero las tareas de replicación impulsadas por Azure Logic Apps también agregan propiedades de replicación. Si los protocolos de origen y destino difieren, estas tareas también realizan asignaciones entre estructuras de metadatos. Las tareas de replicación no tienen estado, lo que significa que no comparten estados ni otros efectos secundarios entre ejecuciones paralelas o secuenciales de una tarea.
Cuando se usan las plantillas de tareas de replicación disponibles, cada tarea de replicación que se crea tiene un flujo de trabajo sin estado subyacente en un recurso de Logic App (Standard) (Aplicación lógica [estándar]), que puede incluir varios flujos de trabajo para las tareas de replicación. Este recurso se hospeda en una instancia de Azure Logic Apps de inquilino único, que es un entorno de ejecución escalable y confiable para configurar y ejecutar aplicaciones sin servidor, incluidas las tareas de replicación y federación. Este entorno de ejecución de Azure Logic Apps de inquilino único también usa el modelo de extensibilidad de Azure Functions y se hospeda como una extensión en el entorno de ejecución de esta solución. Este diseño proporciona portabilidad, flexibilidad y más rendimiento para los flujos de trabajo de las aplicaciones lógicas, además de otras funcionalidades y ventajas heredadas de la plataforma Azure Functions y del ecosistema Azure App Service.
Para más información sobre la replicación y la federación, consulte la siguiente documentación:
- Federación en varios sitios y regiones de Event Hubs
- Patrones de tareas de replicación de eventos
- Replicación de mensajes de Service Bus y federación entre regiones
- Patrones de tareas de replicación de mensajes
Plantillas de tareas de replicación
Actualmente, tiene a s disposición plantillas de tareas de replicación en Azure Event Hubs y Azure Service Bus. En la tabla siguiente se enumeran las plantillas de tareas de replicación disponibles actualmente en esta versión preliminar:
Tipo de recurso | Origen y destino de replicación |
---|---|
Espacio de nombres de Azure Event Hubs | - De instancia de Event Hubs a instancia de Event Hubs - De instancia de Event Hubs a cola de Service Bus - De instancia de Event Hubs a tema de Service Bus |
Espacio de nombres de Azure Service Bus | - De cola de Service Bus a cola de Service Bus - De cola de Service Bus a tema de Service Bus - De tema de Service Bus a tema de Service Bus - De cola de Service Bus a instancia de Event Hubs - De tema de Service Bus a cola de Service Bus - De tema de Service Bus a instancia de Event Hubs Importante: Cuando una cola es el origen, una tarea de replicación no copia los mensajes, sino que los mueve del origen al destino y los elimina del origen. Para reflejar los mensajes en su lugar, use un tema como origen donde la suscripción "main" actúa como un punto de conexión de cola. De este modo, el destino obtiene una copia de cada mensaje del origen. Para enrutar mensajes entre regiones diferentes, puede crear una cola donde se envíen mensajes desde una aplicación. La tarea de replicación transfiere mensajes de esa cola a una cola de destino en un espacio de nombres que se encuentra en otra región. También puede usar una suscripción de tema como la entidad que actúa como cola de transferencia. Para más información, consulte Topología de replicación para ServiceBusCopy. |
Topología y flujo de trabajo de replicación
Para ayudarle a visualizar cómo funciona una tarea de replicación impulsada por Azure Logic Apps (Estándar), en los diagramas siguientes se muestra la estructura y el flujo de trabajo de la tarea de replicación para las instancias de Event Hubs y para las colas de Service Bus.
Topología de replicación de Event Hubs
En el diagrama siguiente se muestra el flujo de trabajo de la topología y la tarea de replicación entre instancias de Event Hubs:
Para información sobre la replicación y la federación en Azure Event Hubs, consulte la siguiente documentación:
Topología de replicación de Service Bus
En el diagrama siguiente se muestra el flujo de trabajo de la topología y la tarea de replicación entre colas de Service Bus:
Para información sobre la replicación y la federación en Azure Service Bus, consulte la siguiente documentación:
- Replicación de mensajes de Service Bus y federación entre regiones
- Patrones de tareas de replicación de mensajes
Asignaciones de propiedades y metadatos
En el caso Event Hubs, los siguientes elementos obtenidos del espacio de nombres de Event Hubs de origen se sustituyen por nuevos valores asignados por el servicio en el espacio de nombres de Event Hubs de destino: metadatos asignados por el servicio de un evento, hora de puesta en cola original, número de secuencia y desplazamiento. Sin embargo, para las funciones auxiliares y las tareas de replicación de los ejemplos proporcionados por Azure, los valores originales se conservan en las propiedades del usuario: repl-enqueue-time
(cadena ISO8601), repl-sequence
y repl-offset
. Dichas propiedades son de tipo string
y contienen el valor en cadena de las propiedades originales respectivas. Si el evento se reenvía varias veces, los metadatos asignados por el servicio del origen inmediato se anexan a las propiedades existentes, con los valores separados por punto y coma. Para más información, consulte Metadatos asignados por el servicio: patrones de tareas de replicación de eventos.
En el caso de Service Bus, los siguientes elementos obtenidos de la cola o tema de Service Bus de origen se sustituyen por nuevos valores asignados por el servicio en la cola o tema de Service Bus de destino: metadatos asignados por el servicio de un mensaje, hora de puesta en cola original y número de secuencia. Sin embargo, en las tareas de replicación predeterminadas de los ejemplos proporcionados por Azure, los valores originales se conservan en las propiedades del usuario: repl-enqueue-time
(cadena ISO8601) y repl-sequence
. Dichas propiedades son de tipo string
y contienen el valor en cadena de las propiedades originales respectivas. Si el mensaje se reenvía varias veces, los metadatos asignados por el servicio del origen inmediato se anexan a las propiedades existentes, y los valores se separan con punto y coma. Para más información, consulte Metadatos asignados por el servicio: patrones de tareas de replicación de mensajes.
Cuando una tarea se replica de Service Bus a Event Hubs, la tarea asigna solo la propiedad User Properties
a la propiedad Properties
. Sin embargo, cuando la tarea se replica de Event Hubs a Service Bus, la tarea asigna las siguientes propiedades:
De Event Hubs | A Service Bus |
---|---|
ContentType | ContentType |
CorrelationId | CorrelationId |
MessageId | MessageId |
PartitionKey | PartitionKey SessionId |
Propiedades | Propiedades de usuario |
ReplyTo | ReplyTo |
ReplyToGroupName | ReplyToSessionId |
Asunto | Etiqueta |
A | A |
Conservación del orden
En el caso de Event Hubs, la replicación entre el mismo número de particiones crea clones 1:1 sin cambios en los eventos, pero también puede incluir duplicados. Sin embargo, en la replicación entre diferentes números de particiones, solo se conserva el orden relativo de los eventos en función de la clave de partición, pero también pueden incluirse duplicados. Para más información, consulte Secuencias y conservación del orden.
En el caso de Service Bus, debe habilitar las sesiones para que las secuencias de mensajes con el mismo identificador de sesión recuperado del origen se envíen a la cola o tema de destino como un lote en la secuencia original y con el mismo identificador de sesión. Para más información, consulte Secuencias y conservación del orden.
Importante
Las tareas de replicación no realizan un seguimiento de los mensajes que ya se han procesado cuando el origen experimenta un evento de interrupción. Para evitar el reprocesamiento de mensajes ya procesados, debe configurar una manera de realizar un seguimiento de los mensajes ya procesados para que el procesamiento se reanude solo con los mensajes sin procesar.
Por ejemplo, puede configurar una base de datos que almacena el estado de procedimiento para cada mensaje. Cuando llegue un mensaje, compruebe el estado y el proceso del mensaje solo cuando el mensaje no esté procesado. De este modo, no se produce ningún procesamiento para un mensaje ya procesado.
Este patrón muestra el concepto de idempotencia, donde la repetición de una acción en una entrada produce el mismo resultado sin otros efectos secundarios o no cambiará el valor de la entrada.
Para más información sobre la federación de varios sitios y varias regiones de los servicios de Azure en los que puede crear tareas de replicación, consulte la siguiente documentación:
- Federación en varios sitios y regiones de Event Hubs
- Patrones de tareas de replicación de eventos
- Replicación de mensajes de Service Bus y federación entre regiones
- Patrones de tareas de replicación de mensajes
Precios
De forma subyacente, una tarea de replicación está impulsada por un flujo de trabajo sin estado de un recurso Logic App (Standard) (Aplicación lógica [estándar]) que está hospedado en una instancia de Azure Logic Apps de inquilino único. Al crear esta tarea de replicación, inmediatamente se generan costos. El uso, la medición, la facturación y el modelo de precios siguen el plan de hospedaje estándar y los planes de tarifa estándar.
En función del número de eventos que recibe Event Hubs o de los mensajes que administra Service Bus, el plan de hospedaje puede escalarse o reducirse verticalmente para mantener un uso mínimo de vCPU y una latencia baja durante la replicación activa. Este comportamiento requiere que cree un recurso de aplicación lógica para usar para la tarea de replicación. Elija el plan de tarifa Estándar adecuado para que Azure Logic Apps no limite ni empiece a llegar al límite de uso de la CPU y pueda garantizar una velocidad de replicación rápida.
Nota
Si la aplicación comienza con una instancia del plan WS1 y, a continuación, se escala horizontalmente a dos instancias, el costo es el doble del costo de WS1, suponiendo que los planes se ejecuten todo el día. Si escala verticalmente la aplicación al plan WS2 y usa una instancia, el costo es efectivamente el mismo que dos instancias del plan WS1. Del mismo modo, si escala verticalmente la aplicación al plan WS3 y usa una instancia, el costo es efectivamente el mismo que dos instancias del plan WS2 o cuatro instancias del plan WS1.
Los ejemplos siguientes muestran el plan de tarifa del plan de hospedaje y las opciones de configuración que proporcionan el mejor rendimiento y costo para escenarios de tareas de replicación específicos, en función de si el escenario es Event Hubs o Service Bus y varios valores de configuración.
Nota:
En los ejemplos de las secciones siguientes se usa 800 como valor predeterminado para el recuento de capturas previas, el tamaño máximo del lote de eventos para Event Hubs y el recuento máximo de mensajes para Service Bus, suponiendo que el tamaño del evento o mensaje sea de 1 KB. En función de los tamaños de evento, puede ajustar el recuento de capturas previas, el tamaño máximo del lote de eventos o el recuento máximo de mensajes. Por ejemplo, si el tamaño del evento o el tamaño del mensaje es superior a 1 KB, puede reducir los valores del recuento de capturas previas y el tamaño máximo del lote de eventos o el número de mensajes de 800.
Escalado horizontal de Event Hubs
En los ejemplos siguientes se muestra el plan de tarifa de hospedaje y las opciones de configuración de una tarea de replicación entre dos espacios de nombres de Event Hubs en la misma región, en función del número de particiones, el número de eventos por segundo y otros valores de configuración.
En los ejemplos de esta sección se usa 800 como valor predeterminado para el recuento de capturas previas y el tamaño máximo del lote de eventos, suponiendo que el tamaño del evento es de 1 KB. En función de los tamaños de evento, puede ajustar el recuento de capturas previas y el tamaño máximo del lote de eventos. Por ejemplo, si el tamaño del evento es superior a 1 KB, puede reducir los valores del recuento de capturas previas y el tamaño máximo del lote de eventos de 800.
Plan de tarifa | Recuento de particiones | Eventos por segundo | Ráfagas máximas* | Instancias siempre preparadas* | Recuento de capturas previas* | Tamaño máximo del lote de eventos* |
---|---|---|---|---|---|---|
WS1 | 1 | 1000 | 1 | 1 | 800 | 800 |
WS1 | 2 | 2000 | 1 | 1 | 800 | 800 |
WS2 | 4 | 4000 | 2 | 1 | 800 | 800 |
WS2 | 8 | 8000 | 2 | 1 | 800 | 800 |
WS3 | 16 | 16000 | 2 | 1 | 800 | 800 |
WS3 | 32 | 32000 | 3 | 1 | 800 | 800 |
* Para obtener más información sobre los valores que puede cambiar para cada plan de tarifa, revise la tabla siguiente:
Value | Descripción |
---|---|
Ráfagas máximas | Número máximo de trabajos elásticos que se escalan horizontalmente bajo carga. Si la aplicación subyacente necesita un número de instancias mayor al de las instancias siempre preparadas en la fila de la tabla siguiente, la aplicación se puede seguir escalando horizontalmente hasta que el número de instancias alcance el límite máximo de ráfagas. Para cambiar este valor, consulte Edición de la configuración de escalado horizontal del plan de hospedaje más adelante en este artículo. Nota: Las instancias que superen el tamaño del plan solo se facturarán por segundo cuando estén en ejecución y las tenga asignadas. La plataforma hace todo lo posible para escalar horizontalmente la aplicación al límite máximo definido. Sugerencia: Como recomendación, seleccione un valor máximo mayor de lo que podría necesitar para que la plataforma pueda escalar horizontalmente para controlar una carga mayor, si es necesario, ya que las instancias no usadas no se facturan. Para obtener más información, revise la siguiente documentación, ya que el plan Estándar de flujo de trabajo comparte algunos aspectos con el plan Premium de Azure Functions: - Configuración del plan y la SKU: plan Premium de Azure Functions |
Instancias siempre preparadas | Número mínimo de instancias que siempre están listas y preparadas para hospedar la aplicación. El número mínimo siempre es 1. Para cambiar este valor, consulte Edición de la configuración de escalado horizontal del plan de hospedaje más adelante en este artículo. Nota: Las instancias que superen el tamaño del plan se facturan por segundo tanto si están en ejecución como si no cuando las tenga asignadas. Para obtener más información, revise la siguiente documentación, ya que el plan Estándar de flujo de trabajo comparte algunos aspectos con el plan Premium de Azure Functions: Instancias siempre preparadas: plan Premium de Azure Functions. |
Recuento de capturas previas | Valor predeterminado para la configuración de la aplicación AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount en el recurso de aplicación lógica que determina el recuento de capturas previas usado por la clase EventProcessorHost subyacente. Para agregar o especificar un valor diferente para esta configuración de la aplicación, revise Administración de la configuración de la aplicación: local.settings.json, por ejemplo: - Nombre: Para obtener más información sobre la propiedad - Configuración host.json: desencadenador y enlaces de Azure Event Hubs para Azure Functions |
Tamaño máximo del lote de eventos | Valor predeterminado de la configuración de la aplicación AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__maxBatchSize en el recurso de aplicación lógica que determina el número máximo de eventos recibidos por cada bucle de recepción. Para agregar o especificar un valor diferente para esta configuración de la aplicación, revise Administración de la configuración de la aplicación: local.settings.json, por ejemplo: - Nombre: Para obtener más información sobre la propiedad - Configuración host.json: desencadenador y enlaces de Azure Event Hubs para Azure Functions |
Escalado horizontal de Service Bus
En los ejemplos siguientes se muestra el plan de tarifa de hospedaje y las opciones de configuración de una tarea de replicación entre dos espacios de nombres de Service Bus en la misma región, en función del número de mensajes por segundo y otros valores de configuración.
En los ejemplos de esta sección se usa 800 como valor predeterminado para el recuento de capturas previas y el recuento máximo de mensajes, suponiendo que el tamaño del mensaje es de 1 KB. En función de los tamaños de mensaje, puede ajustar el recuento de capturas previas y el recuento máximo de mensajes. Por ejemplo, si el tamaño del mensaje es superior a 1 KB, puede reducir los valores del recuento de capturas previas y el recuento máximo de mensajes de 800.
Plan de tarifa | Mensajes por segundo | Ráfagas máximas* | Instancias siempre preparadas* | Recuento de capturas previas* | Recuento máximo de mensajes* |
---|---|---|---|---|---|
WS1 | 2000 | 1 | 1 | 800 | 800 |
WS2 | 2.500 | 1 | 1 | 800 | 800 |
WS3 | 3500 | 1 | 1 | 800 | 800 |
* Para obtener más información sobre los valores que puede cambiar para cada plan de tarifa, revise la tabla siguiente:
Value | Descripción |
---|---|
Ráfagas máximas | Número máximo de trabajos elásticos que se escalan horizontalmente bajo carga. Si la aplicación subyacente necesita un número de instancias mayor al de las instancias siempre preparadas en la fila de la tabla siguiente, la aplicación se puede seguir escalando horizontalmente hasta que el número de instancias alcance el límite máximo de ráfagas. Para cambiar este valor, consulte Edición de la configuración de escalado horizontal del plan de hospedaje más adelante en este artículo. Nota: Las instancias que superen el tamaño del plan solo se facturarán por segundo cuando estén en ejecución y las tenga asignadas. La plataforma hace todo lo posible para escalar horizontalmente la aplicación al límite máximo definido. Sugerencia: Como recomendación, seleccione un valor máximo mayor de lo que podría necesitar para que la plataforma pueda escalar horizontalmente para controlar una carga mayor, si es necesario, ya que las instancias no usadas no se facturan. Para obtener más información, revise la siguiente documentación, ya que el plan Estándar de flujo de trabajo comparte algunos aspectos con el plan Premium de Azure Functions: - Configuración del plan y la SKU: plan Premium de Azure Functions |
Instancias siempre preparadas | Número mínimo de instancias que siempre están listas y preparadas para hospedar la aplicación. El número mínimo siempre es 1. Para cambiar este valor, consulte Edición de la configuración de escalado horizontal del plan de hospedaje más adelante en este artículo. Nota: Las instancias que superen el tamaño del plan se facturan por segundo tanto si están en ejecución como si no cuando las tenga asignadas. Para obtener más información, revise la siguiente documentación, ya que el plan Estándar de flujo de trabajo comparte algunos aspectos con el plan Premium de Azure Functions: Instancias siempre preparadas: plan Premium de Azure Functions. |
Recuento de capturas previas | Valor predeterminado para la configuración de la aplicación AzureFunctionsJobHost__extensions__serviceBus__prefetchCount en el recurso de aplicación lógica que determina el recuento de capturas previas usado por la clase ServiceBusProcessor subyacente. Para agregar o especificar un valor diferente para esta configuración de la aplicación, revise Administración de la configuración de la aplicación: local.settings.json, por ejemplo: - Nombre: Para obtener más información sobre la propiedad - Configuración host.json: enlaces de Azure Service Bus en Azure Functions |
Recuento máximo de mensajes | Valor predeterminado de la configuración de la aplicación AzureFunctionsJobHost__extensions__serviceBus__batchOptions__maxMessageCount en el recurso de aplicación lógica que determina el número máximo de mensajes que se enviarán al desencadenarse. Para agregar o especificar un valor diferente para esta configuración de la aplicación, revise Administración de la configuración de la aplicación: local.settings.json, por ejemplo: - Nombre: Para obtener más información sobre la propiedad |
Requisitos previos
Una cuenta y una suscripción de Azure. Si aún no tiene una, regístrese para obtener una cuenta de Azure gratuita.
Recursos o entidades de origen y destino, que deben existir en diferentes regiones de Azure para que pueda probar el escenario de conmutación por error de recuperación ante desastres geográfica. Estas entidades pueden variar en función de la plantilla de tarea que quiera usar. En el ejemplo de este artículo se usan dos colas de Service Bus, que se encuentran en diferentes espacios de nombres y regiones de Azure.
Un recurso Logic App (Standard) (Aplicación lógica [estándar]) que puede reutilizar al crear la tarea de replicación. De este modo, puede personalizar este recurso en concreto para la tarea de replicación; por ejemplo puede elegir el plan de hospedaje y el plan de tarifa en función de las necesidades del escenario de replicación, como la capacidad, el rendimiento y el escalado. Aunque puede crear este recurso al crear la tarea de replicación, no puede cambiar la región, el plan de hospedaje o el plan de tarifa. En la lista siguiente se proporcionan otros motivos y procedimientos recomendados para un recurso de aplicación lógica creado anteriormente:
Puede crear este recurso de aplicación lógica en una región distinta a la de las entidades de origen y destino de la tarea de replicación.
Actualmente, esta guía se proporciona debido a la integración nativa de la tarea de replicación en los recursos de Azure. Al crear una tarea de replicación entre entidades y decidir crear un recurso de aplicación lógica en lugar de usar uno existente, la nueva aplicación lógica se crea en la misma región que la entidad de origen. Si la región de origen deja de estar disponible, la tarea de replicación tampoco puede funcionar. En un escenario de conmutación por error, la tarea tampoco puede empezar a leer datos del nuevo origen, anteriormente la entidad de destino, que es lo que intenta lograr el patrón de replicación activo-pasivo.
Puede personalizar este recurso de aplicación lógica con antelación eligiendo el plan de hospedaje y el plan de tarifa, en lugar de usar los atributos predeterminados. De este modo, la tarea de replicación puede procesar más eventos o mensajes por segundo para una replicación más rápida. Si crea este recurso al crear la tarea de replicación, estos atributos predeterminados son fijos.
Asegúrese de que este recurso de aplicación lógica solo contenga flujos de trabajo de tareas de replicación, especialmente si quiere seguir el patrón de replicación activo-pasivo. Cuando se usa una aplicación lógica existente para crear la tarea de replicación, esta opción agrega la tarea (flujo de trabajo sin estado) a ese recurso de aplicación lógica.
Para más información, consulte Creación de un flujo de trabajo de integración con Azure Logic Apps (estándar) de inquilino único en Azure Portal.
Opcional: cadena de conexión para el espacio de nombres de destino. Esta opción permite tener el destino en una suscripción diferente, de modo que pueda configurar la replicación entre suscripciones.
Para buscar la cadena de conexión de la entidad de destino, siga estos pasos:
En Azure Portal, vaya a su espacio de nombres de destino.
En el menú de navegación del espacio de nombres, en Configuración, seleccione Directivas de acceso compartido.
En el panel Directivas de acceso compartido que se abre, en Directiva, seleccione RootManageSharedAccessKey.
En el panel Directiva SAS: RootManageSharedAccessKey que se abre, copie el valor de Cadena de conexión principal.
Guarde la cadena de conexión en algún lugar para poder usarla más adelante para conectarse al espacio de nombres de destino.
Convenciones de nomenclatura
Tenga en muy en cuenta la estrategia de nomenclatura que usa para las tareas o entidades de replicación, si aún no las ha creado. Asegúrese de que los nombres sean identificables y se puedan diferenciar fácilmente. Por ejemplo, si está trabajando con un espacio de nombres Event Hubs, la tarea de replicación se replica desde todas las instancias de Event Hubs del espacio de nombres de origen. Si está trabajando con colas de Service Bus, en la tabla siguiente se proporciona un ejemplo de cómo asignar un nombre a las entidades y a la tarea de replicación:
Nombre de origen | Ejemplo | Aplicación de replicación | Ejemplo | Nombre de destino | Ejemplo |
---|---|---|---|---|---|
Espacio de nombres: <name>-sb-<region> |
fabrikam-sb-weu |
Aplicación lógica: <name-source-region-target-region> |
fabrikam-rep-weu-wus |
Espacio de nombres: <name>-sb-<region> |
fabrikam-sb-wus |
Queue: <name> |
jobs-transfer |
Flujo de trabajo: <name> |
jobs-transfer-workflow |
Queue: <name> |
jobs |
Creación de una tarea de replicación
En este ejemplo se muestra cómo crear una tarea de replicación para colas de Service Bus.
En Azure Portal, busque el espacio de nombres de Service Bus que quiere usar como origen.
En el menú de navegación del espacio de nombres, en la sección Automatización, seleccione Tareas (versión preliminar) .
En el panel Tareas, seleccione Agregar una tarea para que pueda seleccionar una plantilla de tarea.
En el panel Agregar una tarea, en Seleccionar una plantilla, en la plantilla de la tarea de replicación que quiere crear, seleccione Seleccionar. Si no aparece la página siguiente, seleccione Siguiente: Autenticar.
Para continuar este ejemplo, seleccione la plantilla de tarea Replicate from Service Bus queue to queue (Replicar en la cola desde la cola de Service Bus), que replica el contenido entre las colas de Service Bus.
En Autenticar, en la sección Conexiones, seleccione Crear para cada conexión que aparece en la tarea a fin de poder proporcionar credenciales de autenticación para todas las conexiones. Los tipos de conexiones de cada tarea varían según la tarea.
En este ejemplo se muestra el aviso para crear la conexión al espacio de nombres de Service Bus destino donde existe la cola de destino. La conexión existe para el espacio de nombres de Service Bus de origen.
Proporcione la información necesaria sobre el destino y, luego, seleccione Crear.
En este ejemplo, proporcione un nombre para mostrar para la conexión y, luego, seleccione el espacio de nombres de Service Bus donde existe la cola de destino.
Sugerencia
También puede crear la conexión con una cadena de conexión. Esta opción permite tener el destino en una suscripción diferente, de modo que pueda configurar la replicación entre suscripciones. El destino, o el origen, según dónde haya empezado a crear la tarea de replicación, se configura dinámicamente para que solo tenga que conectar el destino. Para usar una cadena de conexión, siga estos pasos:
En el panel Conectar, seleccione Connect via connection string (Conectar mediante la cadena de conexión).
En el cuadro Cadena de conexión , escriba la cadena de conexión del espacio de nombres de destino.
En el ejemplo siguiente se muestra la conexión creada correctamente:
Después de finalizar todas las conexiones, seleccione Siguiente: Configurar.
En la pestaña Configurar, proporcione un nombre para la tarea y cualquier otra información necesaria.
Nota
No puede cambiar el nombre de la tarea después de crearla, por lo que debe considerar un nombre que se siga aplicando si edita el flujo de trabajo subyacente. Los cambios que haga en el flujo de trabajo subyacente solo se aplican a la tarea que creó y no a la plantilla de tarea.
Por ejemplo, si llama a la tarea
fabrikam-rep-weu-wus
, pero después edita el flujo de trabajo subyacente con otra finalidad, no podrá cambiar el nombre de la tarea para que coincida.Para agregar el flujo de trabajo de la tarea a un recurso Logic App (Standard) (Aplicación lógica [estándar]) existente, en la lista Aplicación lógica, seleccione la aplicación lógica existente. Si en cambio quiere crear un recurso Logic App (Standard) (Aplicación lógica [estándar]), en la lista Aplicación lógica, seleccione Crear nuevo y proporcione el nombre que usará para la nueva aplicación lógica.
Nota
Si crea un recurso de aplicación lógica durante la creación de la tarea de replicación, la aplicación lógica se crea en la misma región que la entidad de origen, lo que es problemático si la región de origen deja de estar disponible y no va a funcionar en un escenario de conmutación por error. El procedimiento recomendado es crear un recurso Logic App (Standard) (Aplicación lógica [estándar]) en una región diferente a la del origen. Al crear la tarea de replicación, seleccione la aplicación lógica existente y agregue a esta el flujo de trabajo sin estado subyacente. Para obtener más información, revise los requisitos previos.
Seleccione Revisar y crear cuando haya terminado.
En la pestaña Revisar y crear, confirme los recursos de Azure que necesita la tarea de replicación para funcionar.
Si eligió crear un recurso de aplicación lógica para la tarea de replicación, el panel muestra los recursos de Azure necesarios que la tarea de replicación creará para funcionar. Por ejemplo, estos recursos incluyen una cuenta de Azure Storage que contiene información de configuración del recurso de aplicación lógica, el flujo de trabajo y otras operaciones en tiempo de ejecución. Por ejemplo, con Event Hubs, esta cuenta de almacenamiento contiene información de punto de comprobación y la posición o desplazamiento en la secuencia donde se detiene la entidad de origen si la región de origen se interrumpe o deja de estar disponible.
En el ejemplo siguiente se muestra la pestaña Revisar y crear si eligió crear una aplicación lógica:
Si decide reutilizar un recurso de aplicación lógica existente para la tarea de replicación, el panel muestra los recursos de Azure que la replicación reutilizará para funcionar.
En el ejemplo siguiente se muestra la pestaña Revisar y crear si eligió crear reutilizar una aplicación lógica existente:
Nota
Si el origen, el destino, o ambos, están detrás de una red virtual, tiene que configurar los permisos y el acceso después de crear la tarea. En este escenario, se requieren permisos y acceso para que el flujo de trabajo de la aplicación lógica pueda realizar la tarea de replicación.
Cuando esté listo, seleccione Crear.
La tarea que ha creado, que se activa y ejecuta de manera automática, ahora aparece en la lista Tareas.
Sugerencia
Si la tarea no aparece de inmediato, intente actualizar la tarea de listas o espere un poco antes de actualizar. En la barra de herramientas, seleccione Actualizar.
Si los recursos están detrás de una red virtual, no olvide configurar permisos para que el recurso de aplicación lógica y el flujo de trabajo accedan a esos recursos.
Configuración de la directiva de reintentos
Para evitar la pérdida de datos durante un evento de disponibilidad en cualquier lado de una relación de replicación, debe configurar una directiva de reintentos sólida. Para configurar la directiva de reintentos de una tarea de replicación, revise la documentación sobre las directivas de reintento en Azure Logic Apps y los pasos para editar el flujo de trabajo subyacente.
Revisión del historial de una tarea
En este ejemplo se muestra cómo ver el historial de ejecuciones de flujo de trabajo de una tarea junto con sus estados, entradas, salidas y otra información, y se sigue usando el ejemplo con una tarea de replicación de cola de Service Bus.
En Azure Portal, busque el recurso o la entidad de Azure que tiene el historial de tareas que quiere revisar.
En este ejemplo, este recurso es un espacio de nombres de Service Bus.
En el menú de navegación del recurso, en Configuración, en la sección Automatización, seleccione Tareas (versión preliminar) .
En el panel Tareas, busque la tarea que quiere revisar. En la columna Ejecuciones de la tarea, seleccione Ver.
Este paso abre el panel Información general del flujo de trabajo sin estado subyacente, que se incluye en un recurso de aplicación lógica estándar.
Para ver el historial de ejecución de un flujo de trabajo sin estado, en la barra de herramientas del panel Información general, seleccione Enable debug mode (Habilitar el modo de depuración).
La pestaña Historial de ejecución muestra las ejecuciones anteriores, en curso y en espera de la tarea, junto con sus identificadores, estados, horas de inicio y duraciones de ejecución.
En la tabla siguiente se describen los posibles estados de una ejecución:
Etiqueta de estado Descripción Canceled La tarea se canceló durante la ejecución. Erróneo La tarea tiene al menos una acción con errores, pero no hubo acciones posteriores para resolver el error. Ejecución La tarea está en ejecución. Correcto Todas las acciones correctas. Una tarea puede finalizar correctamente de todos modos si se produjo un error en una acción, pero hubo una acción posterior para resolver dicho error. En espera La ejecución todavía no se inicia y está en pausa porque una instancia anterior de la tarea todavía está en ejecución. Para ver los estados y otro tipo de información de cada paso de una ejecución, seleccione dicha ejecución.
Se abre el panel de detalles de ejecución y se muestra el flujo de trabajo subyacente que se ejecutó.
Un flujo de trabajo siempre se inicia con un desencadenador. En esta tarea, el flujo de trabajo comienza con un desencadenador de Service Bus que espera a que lleguen los mensajes a la cola de Service Bus origen.
Cada paso muestra su estado y la duración de la ejecución. Los pasos que tienen duraciones de 0 segundos tardan menos 1 segundo en ejecutarse.
Para revisar las entradas y salidas de cada paso, seleccione el paso, y se abrirá un panel que muestra los detalles de las entradas, salidas y propiedades de ese paso.
En este ejemplo se muestran las entradas del desencadenador de Service Bus.
Para información sobre cómo puede crear sus propios flujos de trabajo automatizados para que pueda integrar aplicaciones, datos, servicios y sistemas aparte del contexto de las tareas de replicación de los recursos de Azure, consulte Creación de un flujo de trabajo de integración con Azure Logic Apps (estándar) de inquilino único en Azure Portal.
Supervisión de las tareas de replicación
Para comprobar el rendimiento y el estado de la tarea de replicación, o el flujo de trabajo de la aplicación lógica subyacente, puede usar Application Insights, que es una funcionalidad de Azure Monitor. El mapa de aplicación de Application Insights es una herramienta visual útil que se puede usar para supervisar las tareas de replicación. Este mapa se genera automáticamente a partir de la información de supervisión capturada y le permite explorar el rendimiento y la confiabilidad de las transferencias de origen y destino de la tarea de replicación. Si necesita información de diagnóstico inmediata y una visualización de latencia baja de los detalles del registro, puede trabajar con la herramienta Live Metrics del portal, que es también una funcionalidad de Azure Monitor.
Edición de una tarea
Existen estas opciones si quiere modificar una tarea:
Editar la tarea "en línea" para que pueda cambiar las propiedades de la tarea, como la información de conexión o de configuración.
Editar el flujo de trabajo subyacente de la tarea en el diseñador.
Edición de la tarea en línea
En Azure Portal, busque el recurso que tiene la tarea que quiere actualizar.
En el menú de navegación del recurso, en la sección Automatización, seleccione Tareas (versión preliminar) .
En la lista de tareas, busque la tarea que quiere actualizar. Abra el menú de puntos suspensivos ( … ) de la tarea y seleccione Edit in-line (Editar en línea).
De manera predeterminada, aparece la pestaña Autenticar y muestra las conexiones existentes.
Para agregar credenciales de autenticación nuevas o seleccionar otras existentes para una conexión, abra el menú de puntos suspensivos ( … ) de la conexión y seleccione Agregar nueva conexión o bien, si es posible, otras credenciales de autenticación.
Nota
Solo puede editar la conexión de destino, no la de origen.
Para actualizar otras propiedades de la tarea, seleccione Siguiente: Configurar.
En la tarea de este ejemplo, puede especificar diferentes colas de origen y destino. Sin embargo, el nombre de la tarea y la aplicación lógica y el flujo de trabajo subyacentes siguen siendo los mismos.
Cuando finalice, seleccione Guardar.
Edición del flujo de trabajo subyacente de una tarea
Puede editar el flujo de trabajo subyacente a una tarea de replicación, que cambia la configuración original de la tarea que creó, pero no la propia plantilla de tarea. Después de hacer y guardar los cambios, la tarea editada ya no realiza la misma función que la tarea original. Si quiere una tarea que realice la funcionalidad original, es posible que tenga que crear una tarea con la misma plantilla. Si no quiere volver a crear la tarea original, evite cambiar el flujo de trabajo que subyace a la tarea mediante el diseñador. En su lugar, cree un flujo de trabajo sin estado de Logic App (Standard) (Aplicación lógica [estándar]) para satisfacer sus necesidades de integración. Para más información, consulte Creación de un flujo de trabajo de integración con Azure Logic Apps (estándar) de inquilino único en Azure Portal.
En Azure Portal, busque el recurso que tiene la tarea que quiere actualizar.
En el menú de navegación del recurso, en la sección Automatización, seleccione Tareas.
En la lista de tareas, busque la tarea que quiere actualizar. Abra el menú de puntos suspensivos ( … ) de la tarea y seleccione Open in Logic Apps (Abrir en Logic Apps).
Azure Portal cambia el contexto al diseñador, donde ahora puede editar el flujo de trabajo.
Ahora puede editar el desencadenador y las acciones del flujo de trabajo, así como las propiedades del desencadenador y las acciones.
Para ver las propiedades del desencadenador o de una acción, seleccione el desencadenador o la acción.
En este ejemplo, la propiedad IsSessionsEnabled del desencadenador se cambia a Sí.
Para guardar los cambios, en la barra de herramientas del diseñador, seleccione Guardar.
Para probar y ejecutar el flujo de trabajo actualizado, abra el recurso de aplicación lógica que contiene el flujo de trabajo actualizado. En el menú de navegación del flujo de trabajo, seleccione Información general>Ejecutar desencadenador>Ejecutar.
Al finalizar la ejecución, el diseñador muestra los detalles de ejecución del flujo de trabajo. Para revisar las entradas y salidas de cada paso, seleccione el paso, y se abrirá un panel que muestra los detalles de las entradas, salidas y propiedades de ese paso.
En este ejemplo se muestran las entradas, las salidas y las propiedades del desencadenador de Service Bus, junto con el valor de propiedad del desencadenador actualizado.
Para deshabilitar el flujo de trabajo para que la tarea no se siga ejecutando, en la barra de herramientas Información general, seleccione Deshabilitar. Para más información, consulte Deshabilitación o habilitación de flujos de trabajo de inquilino único.
Configuración de la conmutación por error en Azure Event Hubs
En el caso de la replicación de Azure Event Hubs entre los mismos tipos de entidad, en la recuperación ante desastres geográfica es necesario realizar una conmutación por error de la entidad de origen a la entidad de destino y, luego, avisar a los consumidores y productores de eventos afectados de que usen el punto de conexión de la entidad de destino, que se convierte en el nuevo origen. Por lo tanto, si se produce un desastre y la entidad de origen conmuta por error, los consumidores y productores, incluida la tarea de replicación, se redirigen al nuevo origen. La cuenta de almacenamiento que creó la tarea de replicación contiene información de punto de comprobación y la posición o el desplazamiento en la secuencia donde se detiene la entidad de origen si la región de origen se interrumpe o deja de estar disponible.
Para asegurarse de que la cuenta de almacenamiento no contiene ninguna información heredada del origen inicial y de que la tarea de replicación comienza a leer y replicar eventos desde el inicio de la nueva secuencia de origen, debe limpiar toda la información heredada del origen original y volver a configurar la tarea de replicación manualmente.
En Azure Portal, abra el recurso de aplicación lógica o el flujo de trabajo subyacente a la tarea de replicación.
Nota
El recurso de aplicación lógica solo debe contener flujos de trabajo de tareas de replicación.
En el menú de navegación del recurso o del flujo de trabajo, seleccione Información general. En la barra de herramientas Información general, seleccione Deshabilitar el flujo de trabajo o elija Detener el recurso de aplicación lógica.
Para buscar la cuenta de almacenamiento que usa el recurso de aplicación lógica subyacente de la tarea de replicación para almacenar el punto de control y la información de desplazamiento de flujo de la entidad de origen, siga estos pasos:
En el menú del recurso de aplicación lógica, en Configuración, seleccione Configuración.
En el panel Configuración, en la pestaña Configuración de la aplicación, seleccione la configuración de la aplicación AzureWebJobsStorage.
Esta configuración especifica la cadena de conexión y la cuenta de almacenamiento que usa el recurso de aplicación lógica.
Nota
Si la configuración de la aplicación no aparece en la lista, seleccione Mostrar valores.
Seleccione la configuración de la aplicación AzureWebJobsStorage para que pueda ver el nombre de la cuenta de almacenamiento.
En este ejemplo se muestra cómo buscar el nombre de esta cuenta de almacenamiento, que es
storagefabrikamreplb0c
aquí:- Para confirmar que el recurso de la cuenta de almacenamiento existe, en el cuadro de búsqueda de Azure Portal, escriba el nombre y, a continuación, seleccione la cuenta de almacenamiento, por ejemplo:
Ahora, elimine la carpeta que contiene el punto de control y la información de desplazamiento de la entidad de origen mediante los pasos siguientes:
Descargue, instale y abra la versión más reciente del cliente de escritorio de Explorador de Azure Storage, si no la tiene.
Nota
Para la tarea de limpieza de eliminación, actualmente tiene que usar el cliente de Explorador de Azure Storage, no el explorador de almacenamiento, el explorador, el editor o la experiencia de administración en Azure Portal.
Aunque puede eliminar carpetas de contenedor con el comando
Remove-AzStorageDirectory
de PowerShell, este comando solo funciona en carpetas vacías.Si aún no lo ha hecho, inicie sesión con su cuenta de Azure y asegúrese de que la suscripción de Azure para el recurso de la cuenta de almacenamiento está seleccionada. Para más información, consulte Introducción al Explorador de Storage.
En la ventana del Explorador, en el nombre de la suscripción de Azure, vaya a Cuentas de almacenamiento>{your-storage-account-name}>Contenedores de blobs>azure-webjobs-eventhub.
Nota
Si la carpeta azure-webjobs-eventhub no existe, la tarea de replicación aún no se ha ejecutado. La carpeta solo aparece después de que la tarea de replicación se ejecute al menos una vez.
En el panel azure-webjobs-eventhub que se abre, seleccione la carpeta del espacio de nombres de Event Hubs, que tiene un nombre con el formato siguiente:
<source-Event-Hubs-namespace-name>.servicebus.windows.net
.Una vez que se abra la carpeta del espacio de nombres, en el panel azure-webjobs-eventhub, seleccione la carpeta <former-source-entity-name>. En el menú contextual de la barra de herramientas o de la carpeta, seleccione Eliminar, por ejemplo:
Confirme que desea eliminar la carpeta.
Vuelva al recurso de aplicación lógica o al flujo de trabajo que subyace a la tarea de replicación. Reinicie la aplicación lógica o vuelva a habilitar el flujo de trabajo.
Para que los productores y consumidores usen el nuevo punto de conexión de origen, es necesario que la información sobre la nueva entidad de origen esté disponible para su uso y encontrarla en una ubicación fácil de alcanzar y actualizar. Si los productores o consumidores encuentran errores frecuentes o persistentes, deben comprobar esa ubicación y ajustar su configuración. Hay muchas maneras de compartir esa configuración; DNS y los recursos compartidos de archivos son ejemplos.
Para más información sobre la recuperación ante desastres geográfica, revise la siguiente documentación:
- Azure Event Hubs: recuperación ante desastres geográfica
- Recuperación ante desastres con localización geográfica de Azure Service Bus
Edición de la configuración de escalado horizontal del plan de hospedaje
En Azure Portal, abra el recurso de aplicación lógica subyacente para la tarea de replicación.
En el menú del recurso de aplicación lógica, en Configuración, seleccione Escalado horizontal (plan de App Service) .
En función de las necesidades del escenario, en Plan de escalabilidad horizontal y Escalado horizontal de aplicaciones, cambie los valores de la ráfaga máxima y las instancias siempre preparadas, respectivamente.
Cuando haya terminado, en la barra de herramientas del panel Escalabilidad horizontalmente (plan de App Service), seleccione Guardar.
Para obtener más información, revise la siguiente documentación, ya que el plan Estándar de flujo de trabajo comparte algunos aspectos con el plan Premium de Azure Functions:
- Configuración del plan y la SKU: plan Premium de Azure Functions
- ¿Qué es la ampliación en la nube?
- Instancias siempre preparadas: plan Premium de Azure Functions
Problemas y errores de replicación
En esta sección se describen las posibles formas en que la replicación puede producir un error o dejar de funcionar:
Límites de tamaño de los mensajes
Asegúrese de enviar mensajes de menos de 1 MB, ya que la tarea de replicación agrega propiedades de replicación. De lo contrario, si el tamaño del mensaje es mayor que el tamaño de los eventos que se pueden enviar a una entidad de Event Hubs después de que la tarea agrega propiedades de replicación, se produce un error en el proceso de replicación.
Por ejemplo, suponga que el tamaño del mensaje es de 1 MB. Después de que la tarea agrega propiedades de replicación, el tamaño del mensaje es mayor que 1 MB. La llamada saliente que intenta enviar el mensaje generará un error.
Claves de partición
Si existen claves de partición en los eventos, la replicación entre las instancias de Event Hubs no se realizará si esas instancias tienen el mismo número de particiones.
Pasos siguientes
- Acerca del diseñador de flujos de trabajo en el entorno de Azure Logic Apps de inquilino único
- Edición de la configuración de host y aplicación para aplicaciones lógicas en Azure Logic Apps de inquilino único
- Creación de parámetros para usar en los flujos de trabajo entre entornos de Azure Logic Apps de un solo inquilino