Azure ACI : pourquoi effectuer des opérations de maintenance
Cette application est conçue pour être hautement résiliente et ne nécessite pas beaucoup d'opérations de maintenance. Cependant, dans certaines situations, vous devrez peut-être redémarrer l'ACI (Azure Container Instance) pour mettre à jour la version de votre application et bénéficier des derniers correctifs.
Dans certains cas, par exemple si une erreur survient pendant le traitement des données, certains fichiers créés pour l'opération peuvent ne pas être supprimés. Ils peuvent s'accumuler et remplir le volume alloué. Ce problème peut généralement être résolu en arrêtant puis en redémarrant l'application.
Attention : cet article ne décrit pas les opérations de maintenance pour la passerelle Azure ou la configuration de routage que vous avez pu mettre en place dans votre environnement, car ces configurations peuvent varier considérablement d'un client à l'autre.
Quand intervenir
Échec des processus de données
Le premier signe indiquant que votre application peut nécessiter une maintenance est lorsque certains processus de données lancés depuis Salesforce se terminent avec le statut Failed. Avant de vérifier votre plateforme Azure, assurez-vous que la description de l'erreur n'indique pas un problème ailleurs. Par exemple, si vous avez créé vos propres règles de dédoublonnage, certaines erreurs peuvent survenir et arrêter le processus.
Par exemple, si vous consultez votre application Salesforce Lightning DQE One, ouvrez l'onglet Runs, et trouvez une exécution en échec comme illustré ci-dessous, vous devrez peut-être redémarrer votre Azure Container Instance.
Processus de données en attente
Parfois, la file d'attente des tâches peut rester bloquée sur le même message et empêcher le traitement des données. Dans cette situation, videz le partage de fichiers alloué au conteneur RabbitMQ et rechargez l'application. Cela devrait résoudre le problème dans la plupart des cas.
Si le partage de fichiers lié au conteneur RabbitMQ est public, vous pouvez y accéder via le portail Azure et supprimer son contenu.
Si le partage de fichiers est privé, vous devez accéder au conteneur et vider manuellement le répertoire RabbitMQ. Si le conteneur est en cours d'exécution, procédez comme suit :
- Connectez-vous au conteneur.
-
Supprimez le fichier suivant :
/bitnami/rabbitmq/mnesia/rabbit@localhost/msg_stores/vhosts/ - Arrêtez l'application puis redémarrez-la depuis le panneau de présentation (Overview).
Comment procéder
Récupérer les logs
Les logs sont conservés pendant 30 jours par défaut dans le Log Analytics Worker précédemment créé. Pour les récupérer, suivez ces étapes :
- Accédez au Log Analytics Worker, puis ouvrez l'onglet Logs :
-
Exportez les résultats de cette commande au format 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
Reconstruire l'application
Si vous devez redéployer une version plus récente, ou simplement vider les volumes utilisés par votre application, vous devrez peut-être arrêter les conteneurs.
Accédez à l'onglet Overview et cliquez sur Stop. Une fois le serveur arrêté, cliquez sur Start. Cela récupérera la dernière version, identifiée par le tag que vous avez fourni dans le fichier de configuration, et reconstruira l'ensemble de l'application.
Cela videra également tout volume précédemment utilisé par cette application.
Redémarrer
- Redémarrez l'Azure Container Instance.
Accédez à l'onglet Overview et cliquez sur Restart. - Surveillez le rechargement du conteneur.
Tous les conteneurs doivent finir dans l'état Running.
Si un conteneur a le statut Terminated, quelque chose s'est mal passé et vous devez contacter le support. Sinon, votre serveur a redémarré avec succès.
Mise à jour des identifiants du registre d'images
- Accédez au fichier YAML.
- Mettez à jour le login et le mot de passe dans le fichier, puis enregistrez-le.
- Exécutez la commande suivante en vous basant sur le dernier fichier YAML :
$ az container create -g <your Resource Group Name> -f <.yaml file path>
Associé à