students resource portal4 porta microsoft for azureweb azure azure-web-sites azure-application-insights

resource - Información de la aplicación de los sitios web de Azure



porta azure (3)

Tengo un sitio web de Azure. Por el bien de esta pregunta, la versión de producción del sitio web se ejecuta en example.com , y una versión de prueba del sitio web se ejecuta en sandbox.example.com .

La única diferencia entre los dos es que tienen una configuración diferente.

En la actualidad, se ejecutan en diferentes sitios web y yo implemento el mismo sitio web en cada sitio web de Azure a través de git.

Me gustaría separar los datos de Application Insights. ¿Existe alguna técnica o proceso que alguien use, además de editar el archivo ApplicationInsights.config en la implementación de entorno de sandbox?

¿O podría manejar esto una ranura de implementación de alguna manera?


En el portal de Azure para sitios web, en la pestaña de configuración hay una sección llamada Configuración de la aplicación. Puedes poner tus diferentes configuraciones aquí. Al publicar, Azure inyectará esas configuraciones en web.config.

Luego simplemente use WebConfigurationManager.AppSettings como lo haría normalmente y extraerá los valores inyectados.



Hubo una nueva publicación en el blog sobre exactamente esto hoy: Application Insights, soporte para entornos múltiples, sellos y versiones de aplicaciones .

El destino de la telemetría está determinado por la clave de instrumentación (iKey), que se envía junto con cada mensaje de telemetría. En el portal de Application Insights, los eventos y las métricas similares con la misma iKey se agregan para ofrecerle gráficos de duraciones promedio, conteos de eventos, la suma de usuarios, etc. La iKey aparece en dos lugares en su proyecto. Uno está en ApplicationInsights.config : <InstrumentationKey>94843456-2345-3456-4567-324562759284</InstrumentationKey>

Si su aplicación tiene páginas web, la iKey también aparece en un script en el encabezado de cada página web. Por lo general, solo se codifica una vez en una página maestra como Views/Shared/_Layout.cshtml .

Para dirigir la telemetría a diferentes recursos de aplicaciones, podemos crear varios recursos con diferentes iKeys. Entonces solo tenemos que cambiar las iKeys en la aplicación en cada transición en su ciclo de vida, junto con otros datos de configuración como cadenas de conexión, certificados y suscripciones.

El artículo continúa sobre cómo hacer esto en código, confg, etc:

1) Agregar iKey como una propiedad en Web.config :

2) En lugar de usar la iKey de ApplicationInsights.config , la estableceremos en el código. En global.asax.cs .

Para evitar confusiones, elimine el nodo <InstrumentationKey> de ApplicationInsights.config .

3) Configure las páginas web para seleccionar instrumentationKey: "@Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey" . Esta es la secuencia de comandos que generalmente se encuentra en View/Shared/_Layout.cshtml .

4) No olvide actualizar su Web.config con la configuración adecuada de iKey durante el proceso de implementación. Puede idear una forma de configurarlo adecuadamente como parte de su construcción, pero se lo dejo a usted.