Configuración de los roles para un servicio de Azure con Visual Studio

Nota:

Este artículo se aplica a Azure Cloud Services (clásico), que ahora está en desuso para los nuevos clientes y se retirará el 31 de agosto de 2024. Los servicios existentes creados con esta tecnología siguen teniendo soporte técnico a través de Azure Cloud Services (soporte extendido). Para los desarrollos nuevos, le recomendamos que use un tipo de servicio más reciente diseñado para su propósito específico, como por ejemplo, Azure App Service, Azure Functions o Azure Container Apps. Para obtener la lista más reciente de los servicios disponibles, consulte Directorio de productos de Azure.

Un servicio en la nube de Azure puede tener uno o más roles web o de trabajo. Para cada rol, debe definir cómo se configura ese rol y cómo se ejecuta.

La información para su servicio en la nube se almacena en los siguientes archivos:

  • ServiceDefinition.csdef: el archivo de definición de servicio define la configuración del tiempo de ejecución de su servicio en la nube, incluidos los roles que se requieren, los puntos de conexión y el tamaño de la máquina virtual. Ninguno de los datos almacenados en ServiceDefinition.csdef se puede cambiar cuando se ejecuta el rol.
  • ServiceConfiguration.cscfg: el archivo de configuración de servicio configura el número de instancias de un rol que se ejecutan y los valores de la configuración definida para un rol. Los datos almacenados en ServiceConfiguration.cscfg se pueden cambiar mientras se ejecuta el rol.

Para almacenar diferentes valores de la configuración que controlan el funcionamiento de su rol, puede tener varias configuraciones del servicio. Puede usar una configuración de servicio diferente para cada entorno de implementación. Por ejemplo, puede ajustar su cadena de conexión de la cuenta de almacenamiento para usar el emulador de Azure Storage local en una configuración de servicio local y crear otra configuración del servicio para usar Azure Storage en la nube.

Al crear un servicio en la nube de Azure en Visual Studio, se crean y se agregan al proyecto de Azure dos configuraciones de servicio automáticamente:

  • ServiceConfiguration.Cloud.cscfg
  • ServiceConfiguration.Local.cscfg

Requisitos previos

Configurar un servicio en la nube de Azure

Puede configurar un servicio en la nube de Azure desde el Explorador de soluciones en Visual Studio, como se muestra en los siguientes pasos:

  1. Cree o abra un proyecto de servicio en la nube de Azure en Visual Studio.

  2. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y, en el menú contextual, seleccione Propiedades.

    Solution Explorer project context menu

  3. En la página de propiedades del proyecto, seleccione la pestaña Desarrollo.

    Project properties page - development tab

  4. En la lista Configuración del servicio, seleccione el nombre de la configuración del servicio que desea modificar. (si desea realizar cambios en todas las configuraciones del servicio para este rol, seleccione Todas las configuraciones).

    Importante

    Si elige una configuración de servicio específica, algunas propiedades están deshabilitadas porque solo se pueden establecer para todas las configuraciones. Para modificar estas propiedades, debe seleccionar Todas las configuraciones.

    Service Configuration list for an Azure cloud service

Cambiar el número de instancias de rol

Para mejorar el rendimiento de su servicio en la nube, puede cambiar el número de instancias de un rol que se están ejecutando, en función del número de usuarios o de la carga esperada para un rol concreto. Se crea una máquina virtual independiente para cada instancia de un rol cuando se ejecuta el servicio en la nube en Azure. Esto afecta a la facturación de la implementación de este servicio en la nube. Para más información sobre la facturación, consulte Comprender la factura de Microsoft Azure.

  1. Cree o abra un proyecto de servicio en la nube de Azure en Visual Studio.

  2. En el Explorador de soluciones, expanda el nodo del proyecto. En el nodo Roles, haga clic con el botón derecho en el rol que desea actualizar y, en el menú contextual, seleccione Propiedades.

    Solution Explorer Azure role context menu

  3. Seleccione la pestaña Configuración.

    Configuration tab

  4. En la lista Configuración del servicio, seleccione la configuración del servicio que quiera actualizar.

    Service Configuration list 1

  5. En el cuadro de texto Recuento de instancias , escriba el número de instancias que quiere iniciar para este rol. Cada instancia se ejecuta en una máquina virtual independiente al publicar el servicio en la nube en Azure.

    Updating the Instance Count

  6. En la barra de herramientas de Visual Studio, seleccione Guardar.

Administrar cadenas de conexión para cuentas de almacenamiento

Puede agregar, quitar o modificar cadenas de conexión para sus configuraciones de servicio. Por ejemplo, es posible que quiera una cadena de conexión local para una configuración de servicio local que tiene un valor de UseDevelopmentStorage=true. También puede que desee configurar una configuración de servicio en la nube que use una cuenta de almacenamiento de Azure.

Advertencia

Al especificar la información de la clave de la cuenta de Azure Storage en una cadena de conexión de la cuenta de almacenamiento, esta información se almacena localmente en el archivo de configuración de servicio. Sin embargo, esta información no se almacena actualmente como texto cifrado.

Si usa un valor diferente para cada configuración de servicio, no tendrá que usar cadenas de conexión diferentes en su servicio en la nube ni modificar su código al publicar su servicio en la nube en Azure. Puede usar el mismo nombre para la cadena de conexión en el código y el valor será diferente, en función de la configuración del servicio que selecciona al crear su servicio en la nube o al publicarlo.

  1. Cree o abra un proyecto de servicio en la nube de Azure en Visual Studio.

  2. En el Explorador de soluciones, expanda el nodo del proyecto. En el nodo Roles, haga clic con el botón derecho en el rol que desea actualizar y, en el menú contextual, seleccione Propiedades.

    Solution Explorer Azure role context menu

  3. Seleccione la pestaña Configuración.

    Settings tab

  4. En la lista Configuración del servicio, seleccione la configuración del servicio que quiera actualizar.

    Service Configuration

  5. Para agregar una cadena de conexión, seleccione Agregar configuración.

    Add connection string

  6. Una vez agregada la nueva configuración a la lista, actualice la fila de la lista con la información necesaria.

    New connection string

    • Nombre: escriba el nombre que desea utilizar para la cadena de conexión.
    • Tipo: seleccione Cadena de conexión en la lista desplegable.
    • Valor: puede escribir la cadena de conexión directamente en la celda Valor o seleccionar los puntos suspensivos (...) para trabajar en el cuadro de diálogo Crear cadena de conexión de almacenamiento.
  7. En el cuadro de diálogo Crear cadena de conexión de almacenamiento, seleccione una opción en Conectar utilizando. A continuación, siga las instrucciones para la opción que seleccione:

    • Emulador de Microsoft Azure Storage: si selecciona esta opción, las demás opciones del cuadro de diálogo están deshabilitadas cuando afectan solo a Azure. Seleccione Aceptar.
    • Su suscripción: si selecciona esta opción, utilice la lista desplegable para seleccionar e iniciar sesión en una cuenta de Microsoft, o bien agregue una cuenta de Microsoft. Seleccione una suscripción de Azure y una cuenta de almacenamiento. Seleccione Aceptar.
    • Credenciales especificadas manualmente: escriba el nombre de la cuenta de almacenamiento y la clave principal o secundaria. Seleccione una opción en Conexión (se recomienda HTTPS en la mayoría de los escenarios). Seleccione Aceptar.
  8. Para eliminar una cadena de conexión, selecciónela y seleccione Quitar configuración.

  9. En la barra de herramientas de Visual Studio, seleccione Guardar.

Acceso mediante programación a una cadena de conexión

En los pasos siguientes se muestra cómo acceder mediante programación a una cadena de conexión con C#.

  1. Agregue las siguientes directivas de uso en un archivo de C# donde va a usar la configuración:

    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.ServiceRuntime;
    
  2. En el código siguiente se muestra un ejemplo de cómo acceder a una cadena de conexión. Reemplace el marcador de posición <ConnectionStringName> por el valor adecuado.

    // Setup the connection to Azure Storage
    var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("<ConnectionStringName>"));
    

Agregar valores personalizados para usarlos en su servicio en la nube de Azure

La configuración personalizada del archivo de configuración de servicio le permite agregar un nombre y un valor para una cadena de una configuración de servicio específico. Puede elegir usar esta configuración para definir una característica en su servicio en la nube leyendo el valor de la configuración y usando este valor para controlar la lógica de su código. Puede cambiar estos valores de configuración de servicio sin tener que volver a generar el paquete de servicio o cuando se ejecuta el servicio en la nube. Su código puede buscar las notificaciones de cuando cambia un valor. Para obtener más información, consulte RoleEnvironment.Changing Event.

Puede agregar, quitar o modificar valores personalizados para sus configuraciones de servicio. Es posible que quiera valores diferentes para estas cadenas para distintas configuraciones del servicio.

Al usar un valor diferente para cada configuración de servicio, no tendrá que usar distintas cadenas en su servicio en la nube ni modificar su código al publicar su servicio en la nube en Azure. Puede usar el mismo nombre para la cadena en el código y el valor será diferente, en función de la configuración del servicio que selecciona al crear su servicio en la nube o al publicarlo.

  1. Cree o abra un proyecto de servicio en la nube de Azure en Visual Studio.

  2. En el Explorador de soluciones, expanda el nodo del proyecto. En el nodo Roles, haga clic con el botón derecho en el rol que desea actualizar y, en el menú contextual, seleccione Propiedades.

    Solution Explorer Azure role context menu

  3. Seleccione la pestaña Configuración.

    Settings tab

  4. En la lista Configuración del servicio, seleccione la configuración del servicio que quiera actualizar.

    Service Configuration list 2

  5. Para agregar una configuración personalizada, seleccione Agregar configuración.

    Add custom setting

  6. Una vez agregada la nueva configuración a la lista, actualice la fila de la lista con la información necesaria.

    New custom setting

    • Nombre: escriba el nombre de la configuración.
    • Tipo: seleccione Cadena en la lista desplegable.
    • Valor: escriba el valor de la configuración. Puede especificar el valor directamente en la celda Valor o seleccionar los puntos suspensivos (...) para escribir el valor en el cuadro de diálogo Editar cadena.
  7. Para eliminar una configuración personalizada, selecciónela y elija Quitar configuración.

  8. En la barra de herramientas de Visual Studio, seleccione Guardar.

Acceso mediante programación al valor de una configuración personalizada

En los pasos siguientes se muestra cómo acceder mediante programación a una configuración personalizada con C#.

  1. Agregue las siguientes directivas de uso en un archivo de C# donde va a usar la configuración:

    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.ServiceRuntime;
    
  2. En el código siguiente se muestra un ejemplo de cómo acceder a una configuración personalizada. Reemplace el marcador de posición <SettingName> por el valor adecuado.

    var settingValue = RoleEnvironment.GetConfigurationSettingValue("<SettingName>");
    

Administrar el almacenamiento local para cada instancia de rol

Puede agregar almacenamiento del sistema de archivos local para cada instancia de un rol. Otras instancias del rol para las que están almacenados los datos u otros roles no pueden acceder a los datos almacenados.

  1. Cree o abra un proyecto de servicio en la nube de Azure en Visual Studio.

  2. En el Explorador de soluciones, expanda el nodo del proyecto. En el nodo Roles, haga clic con el botón derecho en el rol que desea actualizar y, en el menú contextual, seleccione Propiedades.

    Solution Explorer Azure role context menu

  3. Seleccione la pestaña Almacenamiento local.

    Local storage tab

  4. En la lista Configuración del servicio, asegúrese de que está seleccionada la opción Todas las configuraciones, ya que la configuración de almacenamiento local afecta a todas las configuraciones del servicio. Cualquier otro valor hará que todos los campos de entrada en la página se deshabiliten.

    Service Configuration list 3

  5. Para agregar una entrada de almacenamiento local, seleccione Agregar almacenamiento local.

    Add local storage

  6. Una vez agregada la nueva entrada de almacenamiento local a la lista, actualice la fila de la lista con la información necesaria.

    New local storage entry

    • Nombre: escriba el nombre que desea utilizar para el nuevo almacenamiento local.
    • Tamaño (MB): especifique el tamaño en MB que necesita para el nuevo almacenamiento local.
    • Limpiar al reciclar rol: seleccione esta opción para quitar los datos del almacenamiento local cuando se recicla la máquina virtual para este rol.
  7. Para eliminar una entrada de almacenamiento local, selecciónela y active Remove Local Storage (Quitar almacenamiento local).

  8. En la barra de herramientas de Visual Studio, seleccione Guardar.

Acceso mediante programación al almacenamiento local

En esta sección se indica cómo acceder mediante programación al almacenamiento local con C# mediante la escritura de un archivo de texto de prueba: MyLocalStorageTest.txt.

Escritura de un archivo de texto en el almacenamiento local

En el código siguiente se muestra un ejemplo de cómo escribir un archivo de texto en el almacenamiento local. Reemplace el marcador de posición <LocalStorageName> por el valor adecuado.

// Retrieve an object that points to the local storage resource
LocalResource localResource = RoleEnvironment.GetLocalResource("<LocalStorageName>");

//Define the file name and path
string[] paths = { localResource.RootPath, "MyLocalStorageTest.txt" };
String filePath = Path.Combine(paths);

using (FileStream writeStream = File.Create(filePath))
{
    Byte[] textToWrite = new UTF8Encoding(true).GetBytes("Testing Web role storage");
    writeStream.Write(textToWrite, 0, textToWrite.Length);
}

Búsqueda de un archivo escrito en el almacenamiento local

Para ver el archivo creado por el código de la sección anterior, siga estos pasos:

  1. En el área de notificación de Windows, haga clic con el botón derecho en el icono de Azure y, en el menú contextual, seleccione Show Compute Emulator UI (Mostrar la interfaz de usuario del emulador de proceso).

    Show Azure compute emulator

  2. Seleccione el rol web.

    Azure compute emulator

  3. En el menú Microsoft Azure Compute Emulator (Emulador de proceso de Microsoft Azure), seleccione Herramientas>Open local store (Abrir almacén local).

    Open local store menu item

  4. Cuando se abra la ventana Explorador de Windows, escriba "MyLocalStorageTest.txt" en el cuadro de texto Buscar y pulse Entrar para iniciar la búsqueda.

Para obtener más información sobre los proyectos de Azure en Visual Studio, consulte Configurar un proyecto de Azure. Para obtener más información sobre el esquema del servicio en la nube, consulte Referencia de esquema.