Pregunta Perspectivas de aplicaciones de Azure Websites: configuración de conmutación


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

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

En la actualidad, se están ejecutando en diferentes sitios web, y despliego el mismo sitio web en cada sitio web azure a través de git.

Me gustaría separar los datos de Application Insights. ¿Hay alguna técnica o proceso que alguien use, aparte de editar el ApplicationInsights.config archivo en la aplicación de entorno de entorno aislado?

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


18
2017-11-20 12:04


origen


Respuestas:


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

El destino de la telemetría está determinado por la instrumentación   tecla (iKey), que se envía junto con cada mensaje de telemetría. En el   Portal de Application Insights, eventos similares y métricas con el mismo   iKey se agrega para darle gráficos de duraciones promedio, eventos   cuenta, la suma de usuarios, y así sucesivamente. El iKey aparece en dos lugares en   tu proyecto. Uno está en ApplicationInsights.config:    <InstrumentationKey>94843456-2345-3456-4567-324562759284</InstrumentationKey>

Si su aplicación tiene páginas web, iKey también aparece en una secuencia de comandos   en la cabeza de cada página web. Por lo general, solo se codifica una vez en   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   los 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 el iKey de ApplicationInsights.config, bien   configurarlo en el código. En global.asax.cs.

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

3) Configure las páginas web para recoger instrumentationKey: "@Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey". Esto es   el script usualmente encontrado en View\Shared\_Layout.cshtml.

4) No olvide actualizar su Web.config con apropiado iKey   configuración durante el proceso de implementación. Podrías idear una forma de   configurarlo apropiadamente como parte de tu compilación, pero lo dejaré para   tú.


28
2018-01-09 02:18



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. Puede poner sus diferentes configuraciones aquí. Al publicar, azure inyectará esas configuraciones en web.config.

A continuación, utilice WebConfigurationManager.AppSettings como lo haría normalmente y extraerá los valores inyectados.


2
2017-11-20 13:59



Encontré esta pregunta semi relacionada: Cómo admitir varias suscripciones de Azure para una sola aplicación con información sobre aplicaciones esto es para usar por servicios en la nube, ¡y funciona!

Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = ConfigurationManager.AppSettings["appInsightsKey"];

Lo he hecho en mi método de registertypes de unidad, funciona allí.


2
2017-12-22 20:30