V tomto návodu se podíváme na to, jak provést v Mage.ai nastavení io_config.yaml souboru. Koukneme se také na to, jak zakrýt a zašifrovat přístupová hesla tak, aby nebyla v tomto konfiguračním souboru k dispozici.
Mage.ai io_config.yaml konfigurace a umístění
Soubor io_config.yaml je hlavním konfiguračním souborem pro nastavení profilů, které se pak používají v blocích pro ETL pipelines. Soubor najdeme v kořenovém adresáři projektu. V mém případě: /home/src/mage-ai
Kdž tento soubor otevřeme poprvé, vidíme tam profil, který se jmenuje default a obsahuje templates pro konfiguraci různých zdrojů, například:
- AWS
- MSSQL
- MongoDb
- Mysql
- PostgresSQL
- Azure
- Chroma, Clickhouse, Druid, DuckDb, aj.
Já pro své návody používám připojení k AdventureWorks na Azure jako zdroj (díky sqlservercentral.com) a lokální SQL Server databázi jako destination. Takže pro mě bude nastavení vypadat takto:
Založil jsem si v Mage 2 nové profily
- AdventureWorks – volně dostupná databáze
- AW_FULL_LOAD – Moje databáze kam loaduji data
Můžete si všimnout, že moje databáze neobsahuje žádné konfigurační údaje, ale obsahuje odkaz na secret.
Správa projektových secrets (hesla, adresy, účty) v Mage.ai
Jak vidíte v předchozím screenshotu, tak není samozřejmě žádoucí mít odkryté přihlašovací údaje z bezpečnostních důvodů. Mage.ai umožňuje založení secrets, na které je pak možné odkazovat dynamicky v kódu nebo třeba v konfiguračních souborech.
Secrets mají v Mage.ai scope na projekt. Dle dokumentace je však v plánu funkcionalita umožňující scope na různé prvky – environment, pipeline a podobně. Secrets si zobrazíme v pravé liště:
Zde si můžeme založit secret a následně na něj odkazujeme pomocí parametru – “{{ mage_secret_var(‘<secret_name>’) }}”
Secret je uložen v db lokálního envirinmentu kde je zašifrován. Klíč je uložen v souboru ~/.mage_data. Pokud tedy pracujeme v týmu a máme Mage.ai každý v lokálním prostředí a vyvíjíme do remote repozitáře, tak každý člen týmu musí mít secret nastaven zvlášť = nesdílí se (secret je v lokálním environmentu a šifrovací klíč ve složce projektu).