Compartir a través de


Tutorial: Simulación de un error al leer datos de la región primaria

Este tutorial es la segunda parte de una serie. En él, obtendrá información sobre las ventajas del almacenamiento con redundancia de zona geográfica con acceso de lectura (RA-GZRS) mediante la simulación de un error.

Para simular un error, puede usar el enrutamiento estático o Fiddler. Ambos métodos le permitirán simular fallos en las solicitudes al punto de conexión principal de su cuenta de almacenamiento RA-GZRS, haciendo que la aplicación lea desde el punto de conexión secundario en su lugar.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

En la segunda parte de la serie, aprenderá a:

Prerrequisitos

Antes de comenzar este tutorial, complete el tutorial anterior: Hacer que los datos de la aplicación tengan una alta disponibilidad con Azure Storage.

Para simular un error con enrutamiento estático, usará un símbolo del sistema con privilegios elevados.

Para simular un error mediante Fiddler, descargue e instale Fiddler.

Simulación de un error con una ruta estática no válida

Puede crear una ruta estática no válida para todas las solicitudes al punto de conexión principal de la cuenta de almacenamiento de RA-GZRS. En este tutorial, el host local se usa como puerta de enlace para enrutar las solicitudes a la cuenta de almacenamiento. El uso del host local como puerta de enlace hace que todas las solicitudes al punto de conexión principal de la cuenta de almacenamiento vuelvan a recorrer en bucle dentro del host, lo que produce un error en una solicitud. Siga los pasos siguientes para simular un error y la restauración del punto de conexión principal con una ruta estática no válida.

Iniciar y pausar la aplicación

Use las instrucciones del tutorial anterior para iniciar el ejemplo y descargar el archivo de prueba, confirmando que procede del almacenamiento principal. En función de la plataforma de destino, puede pausar el ejemplo manualmente o esperar a un símbolo del sistema.

Simulación de un error

Mientras la aplicación está en pausa, abra un símbolo del sistema en Windows como administrador o ejecute el terminal como raíz en Linux.

Para obtener información sobre el dominio del punto de conexión principal de la cuenta de almacenamiento, escriba el siguiente comando en un símbolo del sistema o en el terminal y reemplace STORAGEACCOUNTNAME por el nombre de la cuenta de almacenamiento.

nslookup STORAGEACCOUNTNAME.blob.core.windows.net

Copie la dirección IP de la cuenta de almacenamiento en un editor de texto para usarla más tarde.

Para obtener la dirección IP del host local, escriba ipconfig en el símbolo del sistema de Windows o ifconfig en el terminal de Linux.

Para agregar una ruta estática para un host de destino, escriba el siguiente comando en un símbolo del sistema de Windows o en un terminal de Linux, reemplazando <destination_ip> con la dirección IP de la cuenta de almacenamiento y <gateway_ip> con la dirección IP del host local.

Linux

sudo route add <destination_ip> gw <gateway_ip>

Windows

route add <destination_ip> <gateway_ip>

En la ventana con el ejemplo en ejecución, reanude la aplicación o presione la tecla adecuada para descargar el archivo de ejemplo y confirme que procede del almacenamiento secundario. A continuación, puede pausar el ejemplo de nuevo o esperar al símbolo del sistema.

Simulación de la restauración del punto de conexión principal

Para simular que el punto de conexión principal vuelve a funcionar, elimine la ruta estática no válida de la tabla de enrutamiento. Esto permite que todas las solicitudes al punto de conexión principal se enruten a través de la puerta de enlace predeterminada. Escriba el siguiente comando en un simulador de comandos de Windows o en un terminal de Linux.

Linux

sudo route del <destination_ip> gw <gateway_ip>

Windows

route delete <destination_ip>

A continuación, puede reanudar la aplicación o presionar la tecla adecuada para volver a descargar el archivo de ejemplo, esta vez confirmando que vuelve a provenir del almacenamiento principal.

Simulación de un error con Fiddler

Para simular un error con Fiddler, inserte una respuesta con error para las solicitudes enviadas al punto de conexión principal de la cuenta de almacenamiento con redundancia geográfica con acceso de lectura.

En las secciones siguientes se muestra cómo simular un error y la restauración del punto de conexión principal con Fiddler.

Inicio de Fiddler

Abra Fiddler, seleccione Reglas y Personalizar reglas.

Personalización de reglas de Fiddler

Fiddler ScriptEditor inicia y muestra el archivo SampleRules.js . Este archivo se usa para personalizar Fiddler.

Pegue el ejemplo de código siguiente en la OnBeforeResponse función y reemplace STORAGEACCOUNTNAME por el nombre de la cuenta de almacenamiento. Según el ejemplo, es posible que también tenga que reemplazar HelloWorld por el nombre del archivo de prueba que se va a descargar o quitar esa parte de la condición si no se aplica. El nuevo código se convierte en comentario para garantizar que no se ejecuta inmediatamente.

Una vez completado, seleccione Archivo y Guardar para guardar los cambios. Deje abierta la ventana ScriptEditor para usarla en los pasos siguientes.

    /*
        // Simulate data center failure
        // After it is successfully downloading the blob, pause the code in the sample,
        // uncomment these lines of script, and save the script.
        // It will intercept the (probably successful) responses and send back a 503 error.
        // When you're ready to stop sending back errors, comment these lines of script out again
        //     and save the changes.

        if ((oSession.hostname == "STORAGEACCOUNTNAME.blob.core.windows.net")
            // depending on the sample, you may need to modify or remove the line below
            && (oSession.PathAndQuery.Contains("HelloWorld"))) {
            oSession.responseCode = 503;
        }
    */

Pegar regla personalizada

Iniciar y pausar la aplicación

Use las instrucciones del tutorial anterior para iniciar el ejemplo y descargar el archivo de prueba, confirmando que procede del almacenamiento principal. En función de la plataforma de destino, puede pausar el ejemplo manualmente o esperar a un símbolo del sistema.

Simulación de un error

Mientras la aplicación está en pausa, cambie a Fiddler y quite la marca de comentario de la regla personalizada guardada en la función OnBeforeResponse. Asegúrese de seleccionar Archivo y Guardar para guardar los cambios para que la regla surta efecto. Este código busca solicitudes a la cuenta de almacenamiento de RA-GZRS y, si la ruta de acceso contiene el nombre del archivo de ejemplo, devuelve un código de respuesta de 503 - Service Unavailable.

En la ventana con el ejemplo en ejecución, reanude la aplicación o presione la tecla adecuada para descargar el archivo de ejemplo y confirme que procede del almacenamiento secundario. A continuación, puede pausar el ejemplo de nuevo o esperar al símbolo del sistema.

Simulación de la restauración del punto de conexión principal

En Fiddler, quite o convierta en comentario la regla personalizada de nuevo. Seleccione Archivo y Guardar para asegurarse de que la regla ya no estará en vigor.

En la ventana con el ejemplo en ejecución, reanude la aplicación o presione la tecla adecuada para descargar el archivo de ejemplo y confirme que procede de almacenamiento principal una vez más. A continuación, puede salir del ejemplo.

Pasos siguientes

En la segunda parte de la serie, aprendiste a simular una falla para probar el almacenamiento con redundancia geográfica con acceso de lectura.

Para obtener más información sobre cómo funciona RA-GZRS almacenamiento y sus riesgos asociados, consulte Diseño de aplicaciones de alta disponibilidad con RA-GZRS.