Azure ACI: por qué realizar operaciones de mantenimiento
Esta aplicación está diseñada para ser muy resiliente y no requiere muchas operaciones de mantenimiento. Sin embargo, en algunas situaciones, es posible que deba reiniciar el ACI (Azure Container Instance) para actualizar la versión de su aplicación y beneficiarse de los últimos parches publicados.
En algunos casos, por ejemplo si se produce un error durante el procesamiento de datos, algunos archivos creados para la operación pueden no eliminarse. Estos pueden acumularse y llenar el volumen asignado. Este problema normalmente se puede solucionar deteniendo y reiniciando la aplicación.
Advertencia: este artículo no describe las operaciones de mantenimiento de la puerta de enlace (gateway) de Azure ni de la configuración de enrutamiento que pueda haber establecido en su entorno, ya que estas configuraciones pueden variar considerablemente de un cliente a otro.
Cuándo intervenir
Procesos de datos fallidos
La primera señal de que su aplicación puede necesitar mantenimiento es cuando algunos procesos de datos lanzados desde Salesforce finalizan con el estado Failed. Antes de revisar su plataforma Azure, asegúrese de que la descripción del error no indique un problema en otro lugar. Por ejemplo, si usted mismo creó sus reglas de deduplicación, pueden producirse errores que detengan el proceso.
Por ejemplo, si consulta su aplicación Salesforce Lightning DQE One, abre la pestaña Runs y encuentra una ejecución fallida como se muestra a continuación, es posible que deba reiniciar su Azure Container Instance.
Procesos de datos pendientes
A veces, la cola de trabajos puede quedarse atascada en el mismo mensaje y bloquear el procesamiento de datos. En esta situación, vacíe el file share asignado al contenedor de RabbitMQ y vuelva a cargar la aplicación. Esto debería solucionar el problema en la mayoría de los casos.
Si el file share vinculado al contenedor de RabbitMQ es público, puede acceder a él a través del portal de Azure y eliminar su contenido.
Si el file share es privado, deberá acceder al contenedor y vaciar manualmente el directorio de RabbitMQ. Si el contenedor está en ejecución, proceda de la siguiente manera:
- Inicie sesión en el contenedor.
-
Elimine el siguiente archivo:
/bitnami/rabbitmq/mnesia/rabbit@localhost/msg_stores/vhosts/ - Detenga la aplicación y reiníciela desde el panel de información general (overview).
Cómo proceder
Obtener los registros (logs)
Los registros se almacenan durante 30 días de forma predeterminada en el Log Analytics Worker creado previamente. Para recuperarlos, siga estos pasos:
- Vaya al Log Analytics Worker y luego abra la pestaña Logs:
-
Exporte los resultados de este comando a CSV:
ContainerInstanceLog_CL | project TimeGenerated,ContainerName_s,Message | where ContainerName_s == "one-server" or ContainerName_s == "queue-worker" | sort by ContainerName_s asc, TimeGenerated asc
Reconstruir la aplicación
Si necesita volver a desplegar una versión más reciente, o simplemente vaciar los volúmenes utilizados por su aplicación, es posible que deba detener los contenedores.
Vaya a la pestaña Overview y haga clic en Stop. Una vez que el servidor se haya detenido, haga clic en Start. Esto descargará la última versión publicada, etiquetada con el tag que indicó en el archivo de configuración, y reconstruirá toda la aplicación.
Esto también vaciará cualquier volumen utilizado previamente por esta aplicación.
Reiniciar
- Reinicie el Azure Container Instance.
Vaya a la pestaña Overview y haga clic en Restart. - Supervise la recarga del contenedor.
Todos los contenedores deben terminar en el estado Running.
Si algún contenedor tiene el estado Terminated, algo salió mal y debe ponerse en contacto con soporte. En caso contrario, su servidor se ha reiniciado correctamente.
Actualización de las credenciales del registro de imágenes
- Vaya al archivo YAML.
- Actualice el usuario (login) y la contraseña en el archivo, y luego guárdelo.
- Ejecute el siguiente comando a partir del archivo YAML más reciente:
$ az container create -g <your Resource Group Name> -f <.yaml file path>
Relacionada con