Azure
Wiadomo, azure chmura ma dużo komputerów może robić co chce i tak będzie szybko. Ale gdy to samo robimy w domkach to już tak dobrze nie ma, wtedy dobrze jest mieć albo szybko komputer. Albo petrodolary, żeby wszystkie eksperymenty robić na chmurze. Albo zagryzać zęby i męczyć się z powolnym emulatorem chmury.
Ból
Otóż doprowadzało mnie do białej gorączki to, że domyślnie instalowany emulator azure (ten do storage) działa tak okrutnie, krwiście powoli. A dodatkowo często lubi coś tam sobie robić w tle. Przez co momentami procesor pocił się jak lokomotywa u Tuwima, ale efektów nie było.
Azurite
Google i trochę szczęścia moim przyjacielem znalazłem:
Azurite ( https://github.com/Azure/Azurite ):
“A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies”
Częściowo zaimplementowany, część nadal implementowana.
Jeśli chodzi o mnie, to posiada ważnego ficzera w 100% ogarniętego czyli azurowe kolejki. Z resztą rzeczy jeszcze walczą:
https://github.com/Azure/Azurite#what-todos-are-there.
Na stronie dokumentacji widać, że jest npm, nuger, docker. Wybrałem dokera, żeby się js nie kalać 😜 A tak naprawdę, to wymyśliłem tak: wcześniej miałem na npm, ale nie ma opcji tam zmiany portów na inne niż domyślne, ale one są już zajęte przez domyślny emulator…
Dygresja
Szukałem, ale nie znalazłem jak projekty w VS odpalają emulator azure. Jak to wyłączyć, czy się da, czy coś. Zauważyłem że jest emulator watcher, który jest odpowiedzialny za startowanie odpowiedniego emulatora. Z braku lepszego pomysłu, zmieniłem jego nazwę i przestał się włączać i mnie wkurzać #umniedziała
Wracamy
Skoro wcześniej były one zajęte, to będzie problem z portami, dlatego wezmę sobie wersję dockera i udostępnię na innych portach. To było zanim udało mi się “wyłączyć” emulator. Ale! Idąc za instrukcją:
$ docker pull arafato/azurite
$ docker run -d -t -p 20000:10000 -p 20001:10001 -p 20002:10002 -v /path/to/folder:/opt/azurite/folder arafato/azurite
Folderki według swojego uznania sobie montujecie. Ważne aby porty przemapować, jeśli nie zamierzacie wywalać oryginalnego 📏📏📏 emulatora wywalać i chcecie aby obok siebie pracowały.
Teraz tylko odpowiednia modyfikacja connection string, aby z 1000x wskazywał na 2000x i cieszę się z wydajnego emulatora, który zabiera czas procesora tylko wtedy gdy coś robi 🐱🐉#niemaopierdalaniasie
Wygląda i działa tak samo jak normalny, z uwagami autorów:
(https://github.com/Azure/Azurite#api-support)
Buźka, tyle.