Node.js ilə Azure funksiyalarından istifadə edərək qar yağışını necə soruşmaq olar

by Venkatesh Sekar

Beləliklə ... Node.js

Əgər tanış deyilsinizsə, Node.js Ruby's Event Machine və Python's Twisted kimi mühərriklərə bənzər bir javascript iş vaxtıdır. Node.js dizaynı bir kitabxana kimi yerinə bir iş saatı kimi bir hadisə loopunu təqdim etdiyi ilə fərqlənir. Bloklama çağırışı yoxdur; Node.js hadisə skriptini icra etdikdən sonra hadisə dairəsinə daxil olur və yerinə yetirmək üçün başqa zəng çatmadıqda mövcuddur.

Birlik haqqında: Snowflake və Node.js bir Azure funksiyası vasitəsilə

Snowflake, bazarda lider bulud əsaslı məlumat anbarıdır; məlumat əldə etmək və çevirmək üçün müxtəlif yanaşmalar və vasitələr təqdim edir, lakin bir Node.js sürücüsündən istifadə etməklə bir nümunə görmədim.

Bununla birlikdə, Python-dan çox Node.js istifadə edərək daha rahat olan bir müştəri ilə bir inkişaf qrupu ilə çalışdım. Onlara və həmçinin daha geniş bir cəmiyyətə münasibətdə, Snowflake ilə əlaqə quran bir Node.js tətbiqi ilə Azure Funksiyasının prototipini yaratdım.

Bu həyata keçirərkən mən də istifadə etdim:

  • Azure Key Vault
  • Azure Tətbiq Konfiqurasiyası

Geliştirici + Azure funksiyalarından istifadə + Sorgulan qar yağışı

Bu tətbiqetmə, Azure funksiyalarını Snowflake ilə bir sorğu mexanizmi kimi istifadə etmək istəyən inkişaf etdiricilərə yönəldilmişdir. Yanımda qalın və sizi aşağıdakılardan götürəcəm:

  • Müxtəlif Azure komponentlərini yerləşdirən ARM şablonunu təyin etmək.
  • Fərqli komponentlərin konfiqurasiyası və qarşılıqlı əlaqəsi üçün əsas nöqtələrdən keçin.

Budur Mənim Ssenariyim

Kod Azure Funksiyasının Snowflake-də bir sorğu hazırladığını və cavabı göstərdiyini göstərir. Aşağıdakı ən yaxşı təcrübələrdə, görəcəksiniz:

  • Snowflake-ə asinxron bir zəng.
  • Açar yerində sirlərin saxlanması.
  • Azure Tətbiq Konfiqurasiyasında müxtəlif konfiqurasiyaları saxlamaq.

Bu növ Azure Function brauzerdən və ya mobil tətbiqetmədən müştəri tərəfindən çağırılacaqdır. Snowflake bir OLAP mərkəzli məlumat anbarı olduğunu və OLTP əməliyyat bazası olmadığını unutmayın. Sorğular xarakteri baxımdan analitik olmalıdır və sorğunun nəticələrini müştəri tətbiqində bir cədvələ çevirə bilərsiniz.

İstək və cavab qarşılıqlılığı

Azure Funksiyasını HTTP son nöqtəsi kimi ifşa etməyin faktiki ssenarisini qəbul etdim. İstək aşağıda görülür:

Komponentlərin bölünməsi

Komponent: Azure Key Vault

Bir Azure Key Vault-da sirləri konfiqurasiya edərək işə başlayırıq. Azure Key Vault-da aşağıdakılar olacaq:

Komponent: Azure App Konfiqurasiya

Azure Tətbiq Konfiqurasiyası, tətbiq parametrlərini və xüsusiyyət bayraqları mərkəzləşdirmək üçün nəzərdə tutulmuş yeni bir xidmət təklifidir (bu yazının əvvəlində). Qeyd etmək lazım olan bir məqam tətbiq konfiqurasiyası Açar, sirr və sertifikatı saxlayan Azure Keyvault-u əvəz etmək üçün nəzərdə tutulmadı. Bununla birlikdə, Azure Key Vault xidməti ilə tamamlayır və birlikdə mövcuddur.

Bu nümayiş üçün, aşağıdakı konfiqurasiyaları qurdum:

App Config-dən dəyərlər alınarkən:

  • Qismən bir düymə (məsələn: azfn: *) təqdim etməklə bütün konfiqurasiyaları sadalaya və təkrarlaya bilərsiniz.
  • Açarları etiket (fil. Dev) əsasında filtrləyə bilərsiniz.
  • Dəyərləri müəyyən bir versiyaya əsaslanaraq geri ala bilərsiniz.

Yuxarıdakıları nümayiş etdirmək üçün inkişaf mühitini göstərmək üçün 'dev' etiketini qeyd etdim.

Komponent: Azure funksiyası (Node.js)

Daha əvvəl qeyd edildiyi kimi, bu həyata keçirmə Node.js. Məntiqi axın:

  1. SQL ifadəsini JSON tələbindən çıxarın.
  2. Azure Funksiyası üçün müxtəlif tətbiq konfiqurasiyaları əldə edin və sonrakı zənglər üçün bir dəfə alınan dəyəri önbelleğe alın.
  3. Key Vault-da saxlanılan sirləri geri alın və əvvəllər saxlanılan yaddaş ilə birlikdə saxlayın.
  4. Snowflake-ə qoşulun. Sonrakı zənglər üçün əlaqəni kesh edin.
  5. Sorğu verin və zəng edənə cavabı geri qaytarın.

Yuxarıda göstərilən addımların hər biri fnQuery / index.js fərdi funksiyasından ibarətdir. İnşallah yuxarıda göstərilənlərə əsaslanaraq kod axını ala bildiniz, buna görə də aşağıdakıları təkrarlamayacağam.

Azure Funksiyası API istifadə edərək açar yerindən dəyəri götürür. Bu adi yanaşmadan fərqlidir: İdarə olunan şəxsiyyətlərdən istifadə edərək Azure funksiyalarından Key Vault-a daxil olmaq. Bunun səbəbi, KV URI idarəetmə və App Config vasitəsilə alınmasıdır. Bu yanaşmada bəyəndiyim budur ki, versiya nömrəsi URI-nin bir hissəsi deyil, buna görə də cari olaraq son versiya alınacaq; bu sirlərin yenilənməsi zamanı əngəldən qaçınır.

Sadə saxlamaq və qənaətcil olmaq üçün funksiya İstehlak planında yerləşdirilmişdir.

Sorğu Əməliyyatları

Bu yanaşmanı izlədiyiniz bir şey, yerinə yetirilən sorğuların növünə nəzarət etmək, daxil olmaq / silmək istəyinin göndərilməsinin qarşısını almaq üçün bir üsuldur. Bu idarəetmə növünü tətbiq etmək üçün funksiyanın icra ediləcəyi rol üzrə müvafiq qrantları təyin etməlisiniz.

Mövcud məhdudiyyətlər

Bu kod texnologiyanın bir sübutudur və həqiqətən istehsal hazır vəziyyətdə deyil. Bununla birlikdə həyata keçirməyi istədiyiniz kimi qəbul etmək / istifadə etməkdə azadsınız.

Azure AppConfig

  • Bir düymə etiket ilə varsa, etiket ilə birlikdə açarla birlikdə soruşmaq məcburidir.
  • Https://kvblog.vault.azure.net/secrets/SNOWSQL-PASSWORD kimi bir KV URI-nə işarə edən konfiqurasiya gizli dəyərin qaytarılacağını bildirmir; geri qaytarılan şey KV URI-dir. Zəng edəni gizlətmək üçün yenə də KV-yə ayrıca zəng etmək lazım gələcək.

Key Vault-a daxil olmağın təmin edilməsi

Açar Vaultun yalnız xüsusi şəbəkələrdən əldə edilməsi tövsiyə olunur, İstinad: Key Vault-dan istifadə üçün ən yaxşı təcrübələr. Başlamaq üçün 'İdarə olunan Şəxsiyyətlər' və 'İAM Giriş Siyasəti' ni təyin etdik.

Key Vault, müəyyən şəbəkələrdən çıxışı məhdudlaşdıran bir imkan təqdim edir.

Tipik olaraq, buna nail olmaq üçün Azure Function'ın 'Xüsusi Tətbiq Xidməti' planında işləməsini başa çatdırmalıyıq; Bundan sonra Azure Funksiyasının müəyyən bir IP ünvanı olacaqdır. FaaS səyahətinizə yeni başlamısınız və hələ inkişaf etdirilməmiş bir çox funksiyanız yoxdursa, bu yanaşmanı tətbiq etmək baha başa gəlir; server dəyəri ayda yüzlərlə dollara qədər işləyə bilər.

'Etibarlı Microsoft xidmətlərinə bu firewallı aşmağa icazə vermək' seçimi haqqında nə düşünə bilərsiniz? Mən sınadım və həmişə Azure funksiyaları üçün işləmir. Bu bağlanmaya nail olmaq üçün bir seçim / metod Azure Funksiyası üçün çıxan IP ünvanını müəyyənləşdirməkdir, İstiqamət: Baxış-Giriş-Çıxış-İplər. İndi bunu KV şəbəkə siyasətinə daxil edə bilərik.

Unutmayın, çıxan IP ünvanı hər hansı bir səbəbə görə dəyişə bilər. Buna görə, problemi yüngülləşdirmək üçün IP ünvanını tapan və şəbəkə siyasətini yeniləyən bir nizamlı bir müddət təyin etməlisiniz.

Bu belədir!

Snowflake ilə əlaqə quran bir Node.js tətbiqi ilə Azure Funksiyasının prototipini yaratmaq istəyən hər kəs üçün ümid edirəm ki, bu sizə kömək etdi və Snowflake bulud məlumat anbarından daha çox dəyər əldə etmək üçün daha çox fikir verdi. Düşüncələrinizi və növbəti hərəkət dəstinizin Snowflake ilə nə olduğunu eşitmək çox yaxşı olardı!

Bulud təşəbbüslərinizlə kömək lazımdır?

Məlumatların və analitik məhsullarınızı və tətbiqlərinizi buludlara köçürməyi düşünürsünüzsə və ya mövcud bulud proqramınızda daha yüksək qiymət nəticələrini çatdırmaqda kömək və rəhbərlik və bir neçə ən yaxşı təcrübəni istəyirsinizsə, bizə müraciət edin. Hashmap, Cloud (və Snowflake) xidmət təkliflərimizin bir hissəsi olaraq bir sıra əlavələr və qiymətləndirmə xidmətləri, bulud modernləşdirmə və miqrasiya xidmətləri və məsləhət xidmətləri təklif edir. Xüsusi tələblərinizlə işləməkdən məmnun olarıq.

Başqa qar yağışı hekayələrimdən bəziləri

Ümid edirəm digər bəzi son hekayələrimi də nəzərdən keçirəcəksiniz ...

Digər kanallarda paylaşmaqda çekinmeyin və əmin olun və burada Hashmapın bütün yeni məzmunu ilə tanış olun.

Venkat Sekar, Hashmap Kanada üçün regional direktordur və müştərilərimiz üçün yüksək dəyərli iş nəticələrini sürətləndirən bir qrup yenilikçi texnoloq və domen mütəxəssisi ilə məlumatlar, Cloud, IoT və AI / ML həlləri və sahələr üzrə təcrübə təmin edən bir memar və məsləhətçidir.