CDESK SKRIPT NA SPRACOVANIE
E-MAILOV(AZURE VERZIA)

Prehľad

Tento projekt automatizuje spracovanie emailov v rámci systému CDESK. Zahŕňa načítavanie nových emailov, identifikovanie konkrétnych akcií na základe obsahu emailov a vykonávanie operácií, ako je vytvorenie diskusií alebo požiadaviek podľa získaných informácií.

Skript je vytvorený ako Azure Function App, ako alternatíva k lokálnej Dockerizovanej verzii. Keďže beží v cloude, logy aplikácie nemožno zobraziť cez lokálnu aplikáciu; namiesto toho sú dostupné v Azure službe. Tento manuál poskytuje krok za krokom návod na vytvorenie Function App s použitím Visual Studio Code. Pre iné metódy, ak je to potrebné, pozrite si oficiálnu dokumentáciu od Microsoftu.

Tento skript slúži ako ukážka spracovania dát v CDESK a automatizácie vytvárania objektov – v tomto prípade spracovania emailov a vytvorenia požiadaviek s diskusiou.

Súbory

function_app.py
Hlavný vstupný bod aplikácie. Skript sa spúšťa každých 5 minút, inicializuje pripojenie k CDESK, načíta nové emaily, spracuje každý email podľa akčného kódu a po ukončení sa odhlási.

ConnectionController.py
Rieši pripojenie k CDESK API. Spravuje prihlasovací proces, udržiava reláciu a vykonáva GET a POST požiadavky s potrebnou autentifikáciou.

ObjectController.py
Obsahuje metódy na interakciu s objektmi CDESK, ako sú emaily a požiadavky. Zahŕňa funkcie na načítanie emailov, ich spracovanie a vytvorenie diskusií alebo požiadaviek na základe obsahu emailu.

LoggerController.yml
Používa sa na tlač log správ do logov funkčnej aplikácie.

docker-compose.yml
Definuje Docker prostredie pre spustenie skriptu na spracovanie emailov. Nastavuje potrebné environmentálne premenné pre pripojenie k CDESK a špecifikuje sieťové konfigurácie.

last_email_id.txt
Dokument obsahujúci ID posledného spracovaného emailu.

Nastavenie a konfigurácia

Vytvorenie emailov

Najprv musíte mať aspoň jeden email v časti Spracovanie správ -> Spracovanie správ s určitou kombináciou obsahu.

 

Tento email by mal obsahovať kombináciu veľkých písmen a čísel s dĺžkou 6 až 8 znakov. Táto kombinácia môže byť uvedená buď v predmete alebo tele emailu a bude predstavovať číslo balíka, ktorý spracuje skript. Navyše, email môže obsahovať slová o cieľovom mieste (napr. Cieľové miesto: Testovacia 11, Bratislava), ktoré sa pridajú do novo vytvorenej požiadavky ako vlastné pole.

Príklad e-mailu:

Predmet: Správa o odoslaní NK123455

Telo:  Správa o odoslaní NK123455. Cieľové miesto: Nová 34, Bratislava. Použité iba na testovacie účely.

Používateľské pole pre požiadavku

Najskôr budete potrebovať používateľské pole, ktoré bude používať skript a ktoré sa pridá do novovytvorenej požiadavky pri spracovaní emailu. Na vytvorenie nového poľa môžete postupovať podľa týchto krokov: 

  1. Vytvorte novú testovaciu požiadavku alebo otvorte akúkoľvek existujúcu požiadavku. 
  2. V spodnej časti stránky požiadavky kliknite na tlačidlo Pridať používateľské polia.
  3. V pravom hornom rohu kliknite na tlačidlo Jednoduché používateľské pole.
  4. Vyplňte údaje podľa vašich preferencií a kliknite na Uložiť.
Požadované údaje z CDESK

Po vytvorení používateľského poľa bude potrebné nastaviť nasledujúce údaje z CDESK v skripte (ako environmentálne premenné v súbore docker-compose.yml):

  • CDESK_LOGIN – vaše prihlasovacie meno do účtu CDESK
  • CDESK_PASSWORD – vaše heslo do účtu CDESK
  • CDESK_SERVER – váš CDESK server (napríklad cdeskportal.eu)
  • COMPANY_ID – ID spoločnosti, pod ktorou budú požiadavky vytvárané
  • STATUS – stav vytvorenej požiadavky (predvolene nastavený na 10 – „Prijaté“)
  • SOLVER_ID – ID používateľa, ktorý bude pridelený ako riešiteľ požiadavky ID riešiteľa nájdete v používateľskom profile (pravý horný roh v CDESK -> Môj profil).
  • SLA_ID – ID záznamu Service Level Agreement (SLA) ID SLA nájdete v menu alebo dlaždiciach SLA/SLO -> Zoznam SLA.
  • CUSTOM_PROPERTY_ID – ID používateľského poľa
    Nájdete ho v menu / dlaždiciach -> Konfiguračná databáza (alebo CMDB) -> Používateľom definované polia -> Používateľské polia.
    Potom vyhľadajte požadované používateľské pole, otvorte ho a v URL adrese nájdite jeho ID.

Potom vyhľadajte požadované používateľské pole, otvorte ho a v URL adrese nájdite jeho ID.

  • CUSTOM_PROPERTY_BASEPROPERTY_ID – baseproperty ID používateľského poľa

Nájdete ho v menu / dlaždice -> Konfiguračná databáza (alebo CMDB) -> Užívateľsky definované polia -> Základné vlastnosti

  • CUSTOM_PROPERTY_NAME – Názov používateľského poľa (v tomto príklade predvolené Target place)
  • TEST – deaktivuje kontrolu certifikátu pri odosielaní požiadaviek, meniť iba pri lokálnom testovaní z bezpečnostných dôvodov (predvolené False)
  • SCRIPT_NAME – Názov skriptu, ktorý sa bude používať v logoch

Taktiež, na vizualizáciu logov generovaných týmto skriptom je potrebné nastaviť mapovanie zväzku do adresára na lokálnom PC alebo serveri. Tento adresár môže byť /logs v aplikácii pre logy, ktorý je špeciálne vytvorený na tento účel.

Kroky nastavenia
Krok 1: Inštalácia požadovaných rozšírení vo Visual Studio Code
  1. Otvorte Visual Studio Code. Prejdite do zobrazenia Rozšírenia kliknutím na ikonu Rozšírenia v Aktivity Bare na bočnej strane alebo stlačením Ctrl+Shift+X. 

Vyhľadajte a nainštalujte nasledujúce rozšírenia:

  • Azure Functions od Microsoft
  • Python od Microsoft
  • Azure Account od Microsoft

Krok 2: Prihlásenie do Azure a vytvorenie „remote function app resource“
  1. Prejdite na záložku Azure (Ctrl+Shift+A).
  2. Kliknite pravým tlačidlom na Function App -> Create Function App in Azure.
    1. Nasledujte výzvy, ktoré vás požiadajú o vytvorenie Function App:

    Názov: akýkoľvek názov zdroja, napríklad my-email-processing-script

    Runtime stack: Ak je to možné, vyberte novšiu verziu Pythonu, napríklad Python 3.11.

    Umiestnenie zdrojov: Vyberte umiestnenie, ktoré je geograficky blízko vás.

Krok 3: Príprava a nasadenie lokálneho skriptu
  1. V karte rozšírenia Azure vo VS Code kliknite v pracovnom priestore na ikonu blesku, aby ste vytvorili funkčnú aplikáciu.
  2. Vyberte Python interpreter (napr. 3.11) a zrušte ďalší výber, keď budete vyzvaní na výber šablóny funkcie (stlačte Esc).
  3. Nasaďte aplikáciu cez ikonku cloudu.
Krok 4: Nastavenie environmentálnych premenných v Azure Portáli
  1. Prejdite na https://portal.azure.com/ a nájdite novo vytvorenú funkčnú aplikáciu.
  2. V aplikácii funkcie prejdite na Nastavenia -> Premenné prostredia a pridajte všetky premenné prostredia spomenuté skôr v tomto návode.
  3. Váš skript je pripravený na spustenie. Ak chcete zobraziť logy, prejdite hore na kartu Overview, kde v časti Essentials nájdete spúšťač vašej aplikácie (predvolene nazvaný timer_trigger), a kliknite na Invocations and more.

Pracovný postup

Poznámka: Cron – Celý tento skript, ak je dockerizovaný, je nastavený ako cron, ktorý sa spúšťa každých 5 minút.

  1. Inicializácia: Skript sa pripojí k CDESK cez ConnectionController.
  2. Načítanie emailov: Získava nové emaily pomocou ObjectController.
  3. Spracovanie emailov: Vytvára požiadavky alebo diskusie na základe obsahu emailu.
  4. Ukončenie: Skript ukončí reláciu s CDESK.

Monitorovanie a logy

Počas behu skript generuje logy, ktoré je možné sledovať v docker logs. Tieto logy obsahujú inicializačné správy, aktualizácie priebehu a prípadné chyby.