Pripravujeme pre Vás novú dokumentáciu, aktuálny stav nájdete tu

CDESK SKRIPT NA ZPRACOVÁNÍ

E-MAILŮ (AZURE VERZE)

Přehled

Tento projekt automatizuje zpracování e-mailů v rámci systému CDESK. Zahrnuje načítání nových e-mailů, identifikaci konkrétních akcí na základě obsahu e-mailů a provádění operací, jako je vytvoření diskusí nebo požadavků podle získaných informací.

Skript je vytvořen jako Azure Function App, jako alternativa k lokální dockerizované verzi. Protože běží v cloudu, logy aplikace nelze zobrazit přes lokální aplikaci; namísto toho jsou dostupné v Azure službě. Tento manuál poskytuje krok za krokem návod na vytvoření Function App s použitím Visual Studio Code. Pro jiné metody, pokud je to potřeba, podívejte se na oficiální dokumentaci od Microsoftu.

Tento skript slouží jako ukázka zpracování dat v CDESK a automatizace vytváření objektů – v tomto případě zpracování e-mailů a vytvoření požadavků s diskusí.

Soubory

function_app.py

Hlavní vstupní bod aplikace. Skript se spouští každých 5 minut, inicializuje připojení k CDESK, načte nové e-maily, zpracuje každý e-mail podle akčního kódu a po ukončení se odhlásí.

ConnectionController.py

Řeší připojení k CDESK API. Spravuje přihlašovací proces, udržuje relaci a provádí GET a POST požadavky s potřebnou autentizací.

ObjectController.py

Obsahuje metody pro interakci s objekty CDESK, jako jsou e-maily a požadavky. Zahrnuje funkce pro načtení e-mailů, jejich zpracování a vytvoření diskusí nebo požadavků na základě obsahu e-mailu.

LoggerController.yml

Používá se k tisku log zpráv do logů funkční aplikace.

docker-compose.yml

Definuje Docker prostředí pro spuštění skriptu na zpracování e-mailů. Nastavuje potřebné proměnné prostředí pro připojení k CDESK a specifikuje síťové konfigurace.

last_email_id.txt

Dokument obsahující ID posledního zpracovaného e-mailu.

Nastavení a konfigurace

Vytvoření e-mailů

Nejprve musíte mít alespoň jeden e-mail v části Zpracování zpráv -> Zpracování zpráv s určitou kombinací obsahu.

 

Tento e-mail by měl obsahovat kombinaci velkých písmen a čísel o délce 6 až 8 znaků. Tato kombinace může být uvedena buď v předmětu nebo v těle e-mailu a bude představovat číslo balíku, který skript zpracuje. Navíc e-mail může obsahovat slova o cílovém místě (např. Cílové místo: Testovací 11, Bratislava), která se přidají do nově vytvořeného požadavku jako vlastní pole.

Příklad e-mailu:

Předmět: Zpráva o odeslání NK123455

Tělo:  Zpráva o odeslání NK123455. Cílové místo: Nová 34, Bratislava. Použito pouze pro testovací účely.

Uživatelské pole pro požadavek

Nejprve budete potřebovat uživatelské pole, které bude skript používat a které se přidá do nově vytvořeného požadavku při zpracování e-mailu. Pro vytvoření nového pole můžete postupovat podle těchto kroků: 

  1. Vytvořte nový testovací požadavek nebo otevřete jakýkoli existující požadavek. 
  2. V dolní části stránky požadavku klikněte na tlačítko Přidat uživatelská pole.
  3. V pravém horním rohu klikněte na tlačítko Jednoduché uživatelské pole.
  4. Vyplňte údaje podle svých preferencí a klikněte na Uložit.

Požadovaná data z CDESK

Po vytvoření uživatelského pole bude potřeba nastavit v skriptu následující data z CDESK (jako proměnné prostředí v souboru docker-compose.yml):

  • CDESK_LOGIN – vaše přihlašovací jméno do účtu CDESK
  • CDESK_PASSWORD – vaše heslo do účtu CDESK
  • CDESK_SERVER – váš CDESK server (například cdeskportal.eu)
  • COMPANY_ID – ID společnosti, pod kterou budou požadavky vytvářeny
  • STATUS – stav vytvořeného požadavku (výchozí nastavení na 10 – „Přijato“)
  • SOLVER_ID – ID uživatele, který bude přidělen jako řešitel požadavku. ID řešitele najdete v uživatelském profilu (pravý horní roh v CDESK -> Můj profil).
  • SLA_ID – ID záznamu Service Level Agreement (SLA). ID SLA najdete v menu nebo dlaždicích SLA/SLO -> Seznam SLA.
  • CUSTOM_PROPERTY_ID – ID uživatelského pole

    Najdete ho v menu / dlaždicích -> Konfigurační databáze (nebo CMDB) -> Uživatelem definovaná pole -> Uživatelská pole.

    Poté vyhledejte požadované uživatelské pole, otevřete ho a v URL adrese najděte jeho ID.

Poté vyhledejte požadované uživatelské pole, otevřete ho a v URL adrese najděte jeho ID.

  • CUSTOM_PROPERTY_BASEPROPERTY_ID – baseproperty ID uživatelského pole

Najdete ho v menu / dlaždice -> Konfigurační databáze (nebo CMDB) -> Uživatelem definovaná pole -> Základní vlastnosti

  • CUSTOM_PROPERTY_NAME – Název uživatelského pole (v tomto příkladu výchozí Target place)
  • TEST – deaktivuje kontrolu certifikátu při odesílání požadavků, měnit pouze při lokálním testování z bezpečnostních důvodů (výchozí False)
  • SCRIPT_NAME – Název skriptu, který se bude používat v logech

Rovněž pro vizualizaci logů generovaných tímto skriptem je potřeba nastavit mapování svazku do adresáře na lokálním PC nebo serveru. Tímto adresářem může být /logs v aplikaci pro logy, který je speciálně vytvořen pro tento účel.

Kroky nastavení
Krok 1: Instalace požadovaných rozšíření ve Visual Studio Code
  1. Otevřete Visual Studio Code. Přejděte do zobrazení Rozšíření kliknutím na ikonu Rozšíření v Activity Baru na boční straně nebo stisknutím Ctrl+Shift+X. 

Vyhledejte a nainstalujte následující rozšíření:

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

Krok 2: Přihlášení do Azure a vytvoření „remote function app resource“
  1. Přejděte na záložku Azure (Ctrl+Shift+A).
  2. Klikněte pravým tlačítkem na Function App -> Create Function App in Azure.
    1. Následujte výzvy, které vás požádají o vytvoření Function App:

    Název: jakýkoli název zdroje, například my-email-processing-script

    Runtime stack: Pokud je to možné, vyberte novější verzi Pythonu, například Python 3.11.

    Umístění zdrojů: Vyberte umístění, které je geograficky blízko vás.

Krok 3: Příprava a nasazení lokálního skriptu
  1. Na kartě rozšíření Azure ve VS Code klikněte v pracovním prostoru na ikonu blesku, abyste vytvořili funkční aplikaci.
  2. Vyberte Python interpreter (např. 3.11) a zrušte další výběr, když budete vyzváni k výběru šablony funkce (stiskněte Esc).
  3. Nasaďte aplikaci přes ikonku cloudu.
Krok 4: Nastavení proměnných prostředí v Azure Portálu
  1. Přejděte na https://portal.azure.com/ a najděte nově vytvořenou funkční aplikaci.
  2. V aplikaci funkce přejděte na Nastavení -> Proměnné prostředí a přidejte všechny proměnné prostředí zmíněné dříve v tomto návodu.
  3. Váš skript je připraven ke spuštění. Pokud chcete zobrazit logy, přejděte nahoru na kartu Overview, kde v části Essentials najdete spouštěč vaší aplikace (výchozí název timer_trigger), a klikněte na Invocations and more.

Pracovní postup

Poznámka: Cron – Celý tento skript, pokud je dockerizovaný, je nastaven jako cron, který se spouští každých 5 minut.

  1. Inicializace: Skript se připojí k CDESK přes ConnectionController.
  2. Načtení e-mailů: Získává nové e-maily pomocí ObjectController.
  3. Zpracování e-mailů: Vytváří požadavky nebo diskuse na základě obsahu e-mailu.
  4. Ukončení: Skript ukončí relaci s CDESK.

Monitorování a logy

Během běhu skript generuje logy, které je možné sledovat v docker logs. Tyto logy obsahují inicializační zprávy, aktualizace průběhu a případné chyby.