Ten projekt automatyzuje przetwarzanie e-maili w ramach systemu CDESK. Obejmuje pobieranie nowych e-maili, identyfikowanie konkretnych akcji na podstawie treści e-maili oraz wykonywanie operacji, takich jak tworzenie dyskusji lub wniosków na podstawie uzyskanych informacji.
Skrypt został utworzony jako Azure Function App, jako alternatywa dla lokalnej, skonteneryzowanej w Dockerze wersji. Ponieważ działa w chmurze, logów aplikacji nie można wyświetlić za pomocą aplikacji lokalnej; zamiast tego są dostępne w usłudze Azure. Ten podręcznik zawiera instrukcję krok po kroku dotyczącą tworzenia Function App za pomocą Visual Studio Code. W razie potrzeby, jeśli chodzi o inne metody, zapoznaj się z oficjalną dokumentacją firmy Microsoft.
Ten skrypt służy jako przykład przetwarzania danych w CDESK oraz automatyzacji tworzenia obiektów – w tym przypadku przetwarzania e-maili i tworzenia wniosków wraz z dyskusją.
function_app.py
Główny punkt wejścia aplikacji. Skrypt uruchamia się co 5 minut, inicjuje połączenie z CDESK, pobiera nowe e-maile, przetwarza każdy e-mail zgodnie z kodem akcji, a po zakończeniu się wylogowuje.
ConnectionController.py
Obsługuje połączenie z API CDESK. Zarządza procesem logowania, utrzymuje sesję i wykonuje żądania GET i POST z niezbędnym uwierzytelnianiem.
ObjectController.py
Zawiera metody do interakcji z obiektami CDESK, takimi jak e-maile i wnioski. Obejmuje funkcje pobierania e-maili, ich przetwarzania oraz tworzenia dyskusji lub wniosków na podstawie treści e-maila.
LoggerController.yml
Służy do drukowania komunikatów logów do logów aplikacji funkcyjnej.
docker-compose.yml
Definiuje środowisko Docker do uruchomienia skryptu przetwarzania e-maili. Ustawia niezbędne zmienne środowiskowe do połączenia z CDESK i określa konfiguracje sieciowe.
last_email_id.txt
Dokument zawierający ID ostatniego przetworzonego e-maila.
Najpierw musisz mieć co najmniej jeden e-mail w sekcji Przetwarzanie wiadomości -> Przetwarzanie wiadomości z określoną kombinacją treści.
Ten e-mail powinien zawierać kombinację wielkich liter i cyfr o długości od 6 do 8 znaków. Ta kombinacja może być podana w temacie lub treści e-maila i będzie reprezentować numer paczki, który przetworzy skrypt. Ponadto e-mail może zawierać słowa o miejscu docelowym (np. Miejsce docelowe: Testovacia 11, Bratislava), które zostaną dodane do nowo utworzonego wniosku jako pole własne.
Przykład e-maila:
Temat: Wiadomość o wysyłce NK123455
Treść: Wiadomość o wysyłce NK123455. Miejsce docelowe: Nová 34, Bratislava. Użyte wyłącznie do celów testowych.
Najpierw będziesz potrzebować pola użytkownika, które będzie używane przez skrypt i które zostanie dodane do nowo utworzonego wniosku podczas przetwarzania e-maila. Aby utworzyć nowe pole, możesz postępować zgodnie z poniższymi krokami:


Po utworzeniu pola użytkownika konieczne będzie ustawienie w skrypcie następujących danych z CDESK (jako zmiennych środowiskowych w pliku docker-compose.yml):



Znajdziesz je w menu / kafelkach -> Baza danych konfiguracji (lub CMDB) -> Pola zdefiniowane przez użytkownika -> Pola użytkownika.
Następnie wyszukaj żądane pole użytkownika, otwórz je i w adresie URL znajdź jego ID.
Następnie wyszukaj żądane pole użytkownika, otwórz je i w adresie URL znajdź jego ID.
Znajdziesz je w menu / kafelkach -> Baza danych konfiguracji (lub CMDB) -> Pola zdefiniowane przez użytkownika -> Właściwości podstawowe
Ponadto, do wizualizacji logów generowanych przez ten skrypt konieczne jest ustawienie mapowania woluminu do katalogu na lokalnym komputerze lub serwerze. Tym katalogiem może być /logs w aplikacji do logów, który został specjalnie utworzony do tego celu.
Wyszukaj i zainstaluj następujące rozszerzenia:


Nazwa: dowolna nazwa zasobu, na przykład my-email-processing-script
Runtime stack: Jeśli to możliwe, wybierz nowszą wersję Pythona, na przykład Python 3.11.
Lokalizacja zasobów: Wybierz lokalizację, która jest geograficznie blisko Ciebie.





Uwaga: Cron – Cały ten skrypt, jeśli jest skonteneryzowany w Dockerze, jest ustawiony jako cron, który uruchamia się co 5 minut.
Podczas działania skrypt generuje logi, które można śledzić w docker logs. Logi te zawierają komunikaty inicjalizacyjne, aktualizacje postępu oraz ewentualne błędy.