2011-06-07 17 views
5

¿Hay alguna forma de detectar si un rol de trabajador está en producción o en preparación?Azure Detect Staging vs Production

Quiero hacer esto para suprimir la funcionalidad en el entorno de etapas hasta que se cambie a producción y luego suprimir la misma funcionalidad en la versión "de-producción".

El entorno escalonado solo existe para que la nueva versión pueda cargarse previamente y garantizar que el intercambio final sea puntual y sin tiempo de inactividad, la versión anterior se detiene mientras se realiza el control de calidad adicional y luego se elimina.

Gracias

Wayne

+1

http://stackoverflow.com/questions/4328462/staging-or-production-instance –

+1

Creo que esto ya está respondido aquí - http://stackoverflow.com/questions/4328462/staging-or-production- instancia – vonLochow

Respuesta

2

Puede hacerlo a través de llamadas a la API Servicio de Gestión de descanso. Lo que puede hacer es obtener las propiedades del servicio alojado (http://msdn.microsoft.com/en-us/library/ee460806.aspx) con embed-details = verdadero parámetro de consulta. Esto le dará detalles sobre las implementaciones del servicio alojado. Lo que le interesa es el nodo "" en implementación que le proporcionará su ID de implementación. Puede comparar esto con el ID de implementación que obtiene de la clase RoleEnvironment (http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment_members.aspx) y al usar ambos puede averiguar si su implementación se está ejecutando en el intervalo de producción o en etapas.

Espero que esto ayude.

0

el SDK de Windows Azure para el nodo le dará la información que busca - https://github.com/WindowsAzure/azure-sdk-for-node

Específicamente - azure.RoleEnvironment.getCurrentRoleInstance o azure.RoleEnvironment.getRoles debe darle la información necesaria para activar la funcionalidad.

Y en caso de que alguien necesite distinguir entre Azure Cloud/Azure Emulator, el emulador configura una variable de entorno EMULATED accesible desde process.env cuando se ejecuta bajo el emulador azure. Lo cual también es útil si está tratando de distinguir entre el emulador y el servidor de nodo incorporado.

+1

Tanto 'azure.RoleEnvironment.getCurrentRoleInstance' como' azure.RoleEnvironment.getRoles' no indican en qué ranura de despliegue se encuentra la instancia actual. – Compulim