El archivo de configuración del servicio (.cscfg) define los valores de configuración que pueden cambiar en tiempo de ejecución, este archivo tiene el formato XML. Existen dos archivos de configuración, uno de uso local y otro para la nube.
El siguiente fragmento de código es un ejemplo del archivo de configuración de servicio en un proyecto de azure:
1 |
<span id="lnum1" style="color: #606060"> 1:</span> <span style="color: #0000ff"><?</span><span style="color: #800000">xml</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">="1.0"</span> <span style="color: #ff0000">encoding</span><span style="color: #0000ff">="utf-8"</span>?<span style="color: #0000ff">></span> |
1 |
<span id="lnum2" style="color: #606060"> 2:</span> <span style="color: #0000ff"><</span><span style="color: #800000">ServiceConfiguration</span> <span style="color: #ff0000">serviceName</span><span style="color: #0000ff">="HolaAzure"</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"</span> <span style="color: #ff0000">osFamily</span><span style="color: #0000ff">="1"</span> <span style="color: #ff0000">osVersion</span><span style="color: #0000ff">="*"</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum3" style="color: #606060"> 3:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Role</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="HolaAzureRole"</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum4" style="color: #606060"> 4:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Instances</span> <span style="color: #ff0000">count</span><span style="color: #0000ff">="1"</span> <span style="color: #0000ff">/></span> |
1 |
<span id="lnum5" style="color: #606060"> 5:</span> <span style="color: #0000ff"><</span><span style="color: #800000">ConfigurationSettings</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum6" style="color: #606060"> 6:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Setting</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"</span> <span style="color: #ff0000">value</span><span style="color: #0000ff">="UseDevelopmentStorage=true"</span> <span style="color: #0000ff">/></span> |
1 |
<span id="lnum7" style="color: #606060"> 7:</span> <span style="color: #0000ff"></</span><span style="color: #800000">ConfigurationSettings</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum8" style="color: #606060"> 8:</span> <span style="color: #0000ff"></</span><span style="color: #800000">Role</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum9" style="color: #606060"> 9:</span> <span style="color: #0000ff"></</span><span style="color: #800000">ServiceConfiguration</span><span style="color: #0000ff">></span> |
1 |
Estos son los atributos que se pueden definir en dicho archivo:
- Número de instancias de cada role.
- Valores de los parámetros definidos en el archivo de definición del servicio.
El archivo de definición del servicio (.csdef) define los roles y toda la estructura del servicio, este archivo tiene el formato XML.
El siguiente fragmento de código es un ejemplo del archivo de definición de servicio en un proyecto de azure:
1 |
<span id="lnum1" style="color: #606060"> 1:</span> <span style="color: #0000ff"><?</span><span style="color: #800000">xml</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">="1.0"</span> <span style="color: #ff0000">encoding</span><span style="color: #0000ff">="utf-8"</span>?<span style="color: #0000ff">></span> |
1 |
<span id="lnum2" style="color: #606060"> 2:</span> <span style="color: #0000ff"><</span><span style="color: #800000">ServiceDefinition</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="HolaAzure"</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum3" style="color: #606060"> 3:</span> <span style="color: #0000ff"><</span><span style="color: #800000">WebRole</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="HolaAzureRole"</span> <span style="color: #ff0000">vmsize</span><span style="color: #0000ff">="Small"</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum4" style="color: #606060"> 4:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Sites</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum5" style="color: #606060"> 5:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Site</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="Web"</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum6" style="color: #606060"> 6:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Bindings</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum7" style="color: #606060"> 7:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Binding</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="Endpoint1"</span> <span style="color: #ff0000">endpointName</span><span style="color: #0000ff">="Endpoint1"</span> <span style="color: #0000ff">/></span> |
1 |
<span id="lnum8" style="color: #606060"> 8:</span> <span style="color: #0000ff"></</span><span style="color: #800000">Bindings</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum9" style="color: #606060"> 9:</span> <span style="color: #0000ff"></</span><span style="color: #800000">Site</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum10" style="color: #606060"> 10:</span> <span style="color: #0000ff"></</span><span style="color: #800000">Sites</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum11" style="color: #606060"> 11:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Endpoints</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum12" style="color: #606060"> 12:</span> <span style="color: #0000ff"><</span><span style="color: #800000">InputEndpoint</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="Endpoint1"</span> <span style="color: #ff0000">protocol</span><span style="color: #0000ff">="http"</span> <span style="color: #ff0000">port</span><span style="color: #0000ff">="80"</span> <span style="color: #0000ff">/></span> |
1 |
<span id="lnum13" style="color: #606060"> 13:</span> <span style="color: #0000ff"></</span><span style="color: #800000">Endpoints</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum14" style="color: #606060"> 14:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Imports</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum15" style="color: #606060"> 15:</span> <span style="color: #0000ff"><</span><span style="color: #800000">Import</span> <span style="color: #ff0000">moduleName</span><span style="color: #0000ff">="Diagnostics"</span> <span style="color: #0000ff">/></span> |
1 |
<span id="lnum16" style="color: #606060"> 16:</span> <span style="color: #0000ff"></</span><span style="color: #800000">Imports</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum17" style="color: #606060"> 17:</span> <span style="color: #0000ff"></</span><span style="color: #800000">WebRole</span><span style="color: #0000ff">></span> |
1 |
<span id="lnum18" style="color: #606060"> 18:</span> <span style="color: #0000ff"></</span><span style="color: #800000">ServiceDefinition</span><span style="color: #0000ff">></span> |
1 |
Estos son los atributos que se pueden definir en dicho archivo:
- Define los tipos de roles (WebRole ó WorkerRole), máximo 25.
- Define los puertos y protocolos por los cuales cada rol va a escuchar.
- Define el tamaño de la máquina virtual inicial para cada rol.
El archivo de definición no cambia en tiempo de ejecución, por lo que si necesitamos hacer un cambio, tendremos que modificarlo y empaquetar de nuevo nuestra aplicación.
Sigueme en Twitter @vmorenoz
¿Te gustó este artículo? Únete a Facebook en MicrosoftLand