{"id":98354,"date":"2022-12-15T09:52:30","date_gmt":"2022-12-15T08:52:30","guid":{"rendered":"https:\/\/fotc.com\/?p=98354"},"modified":"2022-12-15T10:01:21","modified_gmt":"2022-12-15T09:01:21","slug":"cloud-functions-wszystko-co-trzeba-wiedziec","status":"publish","type":"post","link":"https:\/\/fotc.com\/pl\/blog\/cloud-functions-wszystko-co-trzeba-wiedziec\/","title":{"rendered":"Cloud Functions \u2013 wszystko, co trzeba wiedzie\u0107"},"content":{"rendered":"\n
Czym jest Cloud Functions? Jak rozpocz\u0105\u0107 prac\u0119 z tym \u015brodowiskiem i co jest nam w stanie zaoferowa\u0107? W dzisiejszym wpisie przybli\u017camy podstawy tego rozwi\u0105zania, dost\u0119pnego w ramach \u015brodowiska chmurowego Google Cloud.<\/p>\n\n\n\n
Cloud Functions jest bezserwerowym \u015brodowiskiem s\u0142u\u017c\u0105cym do \u0142\u0105czenia us\u0142ug w chmurze oraz wykonywania zada\u0144. Dzia\u0142a w modelu FaaS (Function as a Service) i umo\u017cliwia pisanie oraz wdra\u017canie fragment\u00f3w kodu uruchamianych w odpowiedzi na okre\u015blone zdarzenie emitowane przez Google Cloud. Mo\u017cliwe jest te\u017c uruchomienie zdarzenia spoza platformy, przy u\u017cyciu protoko\u0142u HTTP i unikalnego adresu URL. Uruchamianie kodu nast\u0119puje w \u015brodowisku wykonawczym Google, dzi\u0119ki czemu u\u017cytkownik nie musi dostarcza\u0107 ani konfigurowa\u0107 \u017cadnej us\u0142ugi.<\/p>\n\n\n\n
W tym miejscu warto powiedzie\u0107 kilka s\u0142\u00f3w o tym, czym \u015brodowisko bezserwerowe (serverless) i jaka jest jego funkcja. Jest to infrastruktura, w kt\u00f3rej uruchamiany jest Tw\u00f3j kod. Dzi\u0119ki niemu nie musisz przejmowa\u0107 si\u0119 zarz\u0105dzaniem maszyn\u0105, udost\u0119pnianiem, aktualizacj\u0105 systemu operacyjnego, zarz\u0105dzaniem sieci\u0105 czy r\u00f3wnowa\u017ceniem obci\u0105\u017cenia. To wszystko le\u017cy po stronie infrastruktury Google, natomiast zasoby skalowane s\u0105 automatycznie, zgodnie z bie\u017c\u0105cymi potrzebami.<\/p>\n\n\n\n
Je\u017celi Twoja aplikacja cieszy si\u0119 du\u017cym zainteresowaniem, wzrasta wi\u0119c ruch, Google przeskaluje infrastruktur\u0119 w g\u00f3r\u0119, a gdy obci\u0105\u017cenie spadnie, infrastruktura zostanie przeskalowana w d\u00f3\u0142. Co si\u0119 stanie w sytuacjach, w kt\u00f3rych w og\u00f3le nie ma ruchu? W takim wypadku us\u0142uga zostanie skalowana do zera, co pozwoli unikn\u0105\u0107 niepotrzebnych koszt\u00f3w, gdy\u017c w chmurze Google p\u0142acisz w modelu pay-as-you-use, czyli przy zerowym ruchu nie zap\u0142acisz nic.<\/p>\n\n\n\n
Wracaj\u0105c do Google Cloud Functions \u2013 us\u0142uga ta zwi\u0119ksza poziom zwinno\u015bci poprzez budowanie aplikacji sk\u0142adaj\u0105cych si\u0119 z ma\u0142ych, niezale\u017cnych jednostek funkcjonalno\u015bci, czyli modu\u0142\u00f3w. Ka\u017cdy z nich koncentruje si\u0119 na wykonaniu tylko jednej czynno\u015bci. Dzi\u0119ki Cloud Functions u\u017cytkownicy mog\u0105 tworzy\u0107 i wdra\u017ca\u0107 us\u0142ugi na poziomie pojedynczej funkcji, niekoniecznie z poziomu ca\u0142ej aplikacji, kontenera czy maszyny wirtualnej.<\/p>\n\n\n\n
Dost\u0119pne s\u0105 dwie generacje Cloud Functions. Drug\u0105 oparto na Cloud Run i Evantarc, co pozwoli\u0142o ulepszy\u0107 zestaw funkcji. Mimo \u017ce Google deklaruje wsparcie dla obu, to sugeruje si\u0119 korzystanie z drugiej generacji.<\/p>\n\n\n\n
W\u015br\u00f3d zmian, kt\u00f3re pojawi\u0142y si\u0119 w drugiej generacji Cloud Functions warto zwr\u00f3ci\u0107 uwag\u0119 na:<\/p>\n\n\n\n
Do pisania Cloud Functions mo\u017cesz skorzysta\u0107 z wielu j\u0119zyk\u00f3w oprogramowania wylistowanych tutaj<\/a>. \u015arodowisko to rozszerza istniej\u0105ce us\u0142ugi w chmurze, umo\u017cliwiaj\u0105c obs\u0142ug\u0119 wielorakich przypadk\u00f3w w dowolnej logice programowania. Poniewa\u017c Cloud Functions ma dost\u0119p do danych logowania Google Service Account, uwierzytelnianie us\u0142ug takich jak Cloud Vision oraz wielu innych nast\u0119puje bezproblemowo. Dodatkowym u\u0142atwieniem integracji jest obs\u0142ugiwanie i wykorzystanie przez Cloud Functions licznych bibliotek klienckich.<\/p>\n\n\n\n Przedstawiaj\u0105c drug\u0105 generacj\u0119 Cloud Functions napomkn\u0119li\u015bmy o eventach i triggerach. Czym one s\u0105?<\/p>\n\n\n\n Zdarzeniami w chmurze (events) s\u0105 wszystkie rzeczy dziej\u0105ce si\u0119 w Twoim \u015brodowisku chmurowym. B\u0119d\u0105 to wi\u0119c zar\u00f3wno zmiany w bazie danych, pliki dodane do systemu pami\u0119ci masowej lub te\u017c nowa instalacja maszyny wirtualnej. Zdarzenia b\u0119d\u0105 tworzone bez wzgl\u0119du na to, czy postanowisz na nie odpowiedzie\u0107. Je\u017celi tak, to w celu odpowiedzi potrzebujesz triggera.<\/p>\n\n\n\n Trigger stanowi deklaracj\u0119 zainteresowania okre\u015blonym wydarzeniem lub zestawem wydarze\u0144. Wi\u0105\u017c\u0105c funkcj\u0119 z triggerem mo\u017cesz przechwytywa\u0107 wydarzenia. Mo\u017cesz skonfigurowa\u0107 Cloud Functions do odpowiadania na r\u00f3\u017cne scenariusze. Triggerem mog\u0105 by\u0107 \u017c\u0105dania HTTP(S) lub zdarzenia.<\/p>\n\n\n\n Korzystaj\u0105c z Cloud Functions nie potrzebujesz w\u0142asnego serwera lub dedykowanego programisty, aby obs\u0142u\u017cy\u0107 asynchroniczne obci\u0105\u017cenia czy automatyzacj\u0119 w chmurz\u0119. Wystarczy wdro\u017cy\u0107 funkcj\u0119 powi\u0105zan\u0105 z danym zdarzeniem. Ze wzgl\u0119du na precyzj\u0119 oraz dzia\u0142anie na \u017c\u0105danie, Cloud Functions idealnie nada si\u0119 do lekkich interfejs\u00f3w API oraz webhook\u00f3w. Automatyczne udost\u0119pnianie punkt\u00f3w ko\u0144cowych http sprawia, \u017ce nie jest wymagana skomplikowana konfiguracja, tak jak ma to miejsce w przypadku innych us\u0142ug.<\/p>\n\n\n\n Dzi\u0119ki Cloud Functions mo\u017cesz udost\u0119pnia\u0107 w\u0142asne mikrous\u0142ugi za po\u015brednictwem interfejs\u00f3w API HTTP. Mo\u017cliwa jest te\u017c integracja z us\u0142ugami innych firm oferuj\u0105cymi integracj\u0119 element\u00f3w webhook. Pozwoli to szybko rozszerzy\u0107 aplikacj\u0119 o zaawansowane funkcje, takie jak np. potwierdzenie po pomy\u015blnej p\u0142atno\u015bci Stripe, wysy\u0142anie wiadomo\u015bci e-mail, czy odpowiedzi na zdarzenia w postaci wiadomo\u015bci tekstowych.<\/p>\n\n\n\n U\u017cywaj\u0105c Cloud Functions bezpo\u015brednio z Firebase mo\u017cesz rozszerzy\u0107 funkcjonalno\u015b\u0107 aplikacji bez uruchamiania serwera. Dzi\u0119ki temu mo\u017cesz odpali\u0107 sw\u00f3j kod w odpowiedzi na dzia\u0142ania u\u017cytkownik\u00f3w, analizy i zdarzenia zwi\u0105zane z uwierzytelnianiem, aby zaanga\u017cowa\u0107 u\u017cytkownik\u00f3w za pomoc\u0105 powiadomie\u0144 opartych na zdarzeniach. Co wi\u0119cej, Pomaga to przenosi\u0107 zadania intensywnie obci\u0105\u017caj\u0105ce procesor i sie\u0107 do Google Cloud<\/a>.<\/p>\n\n\n\n Kolejnym ciekawym zastosowaniem Cloud Functions w po\u0142\u0105czeniu z Cloud IoT Core oraz innymi w pe\u0142ni zarz\u0105dzanymi us\u0142ugami jest tworzenie zaplecza do zbierania, przetwarzania i analizy danych telemetrycznych urz\u0105dze\u0144 IoT. W tym przypadku Cloud Functions umo\u017cliwia stosowanie niestandardowej logiki do ka\u017cdego zdarzenia w momencie jego nadej\u015bcia.<\/p>\n\n\n\n Korzystaj\u0105c z Google Cloud Functions stworzysz i wdro\u017cysz us\u0142ugi na poziomie pojedynczego modu\u0142u, a nie ca\u0142ej aplikacji, maszyn wirtualnych czy kontener\u00f3w. Dzi\u0119ki zapewnionej warstwie logiki do \u0142\u0105czenia i rozszerzania innych us\u0142ug w chmurze Google mo\u017cesz pisa\u0107 i wdra\u017ca\u0107 funkcje, kt\u00f3re szybko po\u0142\u0105czysz ze zdarzeniami emitowanymi przez inne us\u0142ugi chmurowe. Poniewa\u017c us\u0142uga dzia\u0142a w modelu bezserwerowym, obni\u017cysz koszty, uwolnisz zasoby, kt\u00f3re przydadz\u0105 si\u0119 do rozwoju innowacji, zamiast pozostawia\u0107 je w obszarze utrzymania.<\/p>\n","protected":false},"excerpt":{"rendered":" Czym jest Cloud Functions? Jak rozpocz\u0105\u0107 prac\u0119 z tym \u015brodowiskiem i co jest nam w stanie zaoferowa\u0107? W dzisiejszym wpisie przybli\u017camy podstawy tego rozwi\u0105zania, dost\u0119pnego w ramach \u015brodowiska chmurowego Google Cloud. Czym jest Cloud Functions? Cloud Functions jest bezserwerowym \u015brodowiskiem s\u0142u\u017c\u0105cym do \u0142\u0105czenia us\u0142ug w chmurze oraz wykonywania zada\u0144. Dzia\u0142a w modelu FaaS (Function as…<\/p>\n","protected":false},"author":26,"featured_media":98356,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":4,"_editorskit_typography_data":[],"_editorskit_blocks_typography":"","_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}"},"categories":[560],"tags":[],"yoast_head":"\nEventy chmurowe i Triggery<\/h2>\n\n\n\n
W jakich zastosowaniach sprawdzi si\u0119 Cloud Functions?<\/h2>\n\n\n\n
Integracja z API<\/h3>\n\n\n\n
<\/figure>\n\n\n\n
Bezserwerowe zaplecze mobilne<\/h3>\n\n\n\n
<\/figure>\n\n\n\n
Bezserwerowe zaplecze IoT<\/h2>\n\n\n\n
<\/figure>\n\n\n\n
Podsumowanie<\/h2>\n\n\n\n