1. Omówienie
Dzięki Cloud Functions możesz pisać proste, jednozadaniowe funkcje, które są powiązane ze zdarzeniami generowanymi przez infrastrukturę i usługi chmury. Utworzona funkcja jest wywoływana w momencie wystąpienia obserwowanego zdarzenia. Kod jest wykonywany w całkowicie zarządzanym środowisku. Nie trzeba udostępniać infrastruktury ani zarządzać serwerami.
Funkcje w Cloud Functions można obecnie zapisywać w językach JavaScript, Python i Go. W przypadku JavaScriptu są one wykonywane w środowisku Node.js w Google Cloud Platform. Własne funkcje w Cloud Functions można uruchamiać w dowolnym standardowym środowisku wykonawczym Node.js, co ułatwia przenośność i lokalne testowanie.
Łączenie i rozszerzanie usług w chmurze
Cloud Functions udostępnia warstwę połączenia logiki, dzięki której można pisać kod umożliwiający nawiązywanie połączenia z usługami w chmurze i rozszerzanie ich możliwości. Sprawdzaj ruch i reaguj na przesłanie pliku do Cloud Storage, zmianę danych w dzienniku lub wiadomość przychodzącą w temacie Cloud Pub/Sub. Cloud Functions rozszerza możliwości używanych usług w chmurze i pozwala na obsługę rosnącej liczby przypadków użycia za pomocą dowolnych języków programowania. Środowisko Cloud Functions ma dostęp do danych logowania na konto usługi Google, dzięki czemu jest bezproblemowo uwierzytelniane w większości usług Google Cloud Platform, takich jak Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API i wielu innych.
Zdarzenia i aktywatory
Zdarzenia w chmurze to zdarzenia, które mają miejsce w środowisku chmury.Mogą to być zmiany w danych w bazie danych, dodanie plików do systemu pamięci masowej lub utworzenie nowej instancji maszyny wirtualnej.
Zdarzenia występują niezależnie od tego, czy na nie zareagujesz. Odpowiedzi na zdarzenia tworzysz za pomocą reguł. Aktywator to deklaracja zainteresowania pewnym zdarzeniem lub zbiorem zdarzeń. Powiązanie funkcji z aktywatorem umożliwia przechwytywanie zdarzeń i reagowanie na nie. Więcej informacji o tworzeniu aktywatorów i wiązaniu ich z funkcjami znajdziesz w artykule Zdarzenia i aktywatory.
Technologia bezserwerowa
Dzięki Cloud Functions nie trzeba zarządzać serwerami, konfigurować oprogramowania, aktualizować platform ani łatać systemów operacyjnych. Oprogramowanie i infrastruktura są w pełni zarządzane przez Google, więc Twoim zadaniem jest tylko dodać kod. Oprócz tego udostępnianie zasobów odbywa się automatycznie w odpowiedzi na zdarzenia. Oznacza to, że funkcja może być skalowana od kilku do wielu milionów wywołań dziennie bez żadnego nakładu pracy z Twojej strony.
Przypadki użycia
Zadania asynchroniczne, na przykład proste procesy ETL czy zautomatyzowane działania w chmurze, takie jak aktywowanie kompilacji aplikacji, nie wymagają już specjalnego serwera ani zaangażowania programisty. Wystarczy po prostu wdrożyć funkcję utworzoną w Cloud Functions i powiązać ją z wybranym zdarzeniem.
Dzięki szczegółowości i gotowości do działania na żądanie środowisko Cloud Functions jest również doskonałym rozwiązaniem do tworzenia prostych interfejsów API i webhooków. Dodatkowo podczas wdrażania funkcji HTTP następuje automatyczne udostępnianie punktów końcowych HTTP, więc nie trzeba wykonywać skomplikowanych czynności konfiguracyjnych wymaganych w przypadku niektórych innych usług.
Z tego modułu praktycznego dowiesz się, jak utworzyć funkcję w Cloud Functions, wdrożyć ją i przetestować, używając konsoli Google Cloud. Wykonaj te czynności :
- utworzenie funkcji w Cloud Functions,
- wdrożenie i przetestowanie funkcji,
- Wyświetl logi
2. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub wykorzystaj już istniejący. Jeśli nie masz jeszcze konta Gmail lub G Suite, musisz je utworzyć.
Zapamiętaj identyfikator projektu, unikalną nazwę we wszystkich projektach Google Cloud (powyższa nazwa jest już zajęta i nie będzie Ci odpowiadać). W dalszej części tego ćwiczenia w Codelabs będzie ona określana jako PROJECT_ID
.
- Następnie musisz włączyć płatności w Cloud Console, aby korzystać z zasobów Google Cloud.
Ukończenie tego ćwiczenia z programowania nie powinno kosztować zbyt wiele. Postępuj zgodnie z instrukcjami podanymi w sekcji „Czyszczenie” W tym samouczku znajdziesz wskazówki, jak wyłączyć zasoby, aby uniknąć naliczania opłat. Nowi użytkownicy Google Cloud mogą skorzystać z programu bezpłatnego okresu próbnego o wartości 300 USD.
Google Cloud Shell,
Usługami Google Cloud i Cloud Functions możesz zarządzać zdalnie z laptopa, ale w tym ćwiczeniu w programowaniu użyjemy Google Cloud Shell – środowiska wiersza poleceń działającego w chmurze.
Ta maszyna wirtualna oparta na Debianie zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i uwierzytelnianie. Oznacza to, że do tego ćwiczenia z programowania wystarczy przeglądarka (tak, działa ona na Chromebooku).
- Aby aktywować Cloud Shell z poziomu konsoli Cloud, kliknij Aktywuj Cloud Shell (udostępnienie środowiska i połączenie z nim powinno zająć tylko chwilę).
Po nawiązaniu połączenia z Cloud Shell powinno pojawić się potwierdzenie, że użytkownik jest już uwierzytelniony, a projekt jest już ustawiony na PROJECT_ID
.
gcloud auth list
Dane wyjściowe polecenia
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Dane wyjściowe polecenia
[core] project = <PROJECT_ID>
Jeśli z jakiegoś powodu projekt nie jest skonfigurowany, uruchom po prostu to polecenie:
gcloud config set project <PROJECT_ID>
Szukasz urządzenia PROJECT_ID
? Sprawdź identyfikator użyty w krokach konfiguracji lub wyszukaj go w panelu Cloud Console:
Cloud Shell ustawia też domyślnie niektóre zmienne środowiskowe, które mogą być przydatne podczas uruchamiania kolejnych poleceń.
echo $GOOGLE_CLOUD_PROJECT
Dane wyjściowe polecenia
<PROJECT_ID>
- Na koniec ustaw domyślną strefę i konfigurację projektu.
gcloud config set compute/zone us-central1-f
Możesz wybrać różne strefy. Więcej informacji znajdziesz w artykule Regiony i Strefy.
3. Tworzenie funkcji
Ten krok polega na utworzeniu funkcji w Cloud Functions z wykorzystaniem konsoli.
- W konsoli kliknij Menu nawigacyjne > Cloud Functions.
- Kliknij „UTWÓRZ FUNKCJĘ”
- Nazwij funkcję
GCFunction
i zachowaj pozostałe wartości domyślne : alokacja pamięci, HTTP jako wyzwalacz, wbudowany edytor, domyślne środowisko wykonawcze i domyślny kod przykładowy.
- Pozostań w „funkcji tworzenia” kliknij „Utwórz” u dołu okna. aby wdrożyć funkcję:
Gdy klikniesz Utwórz, konsola przekieruje Cię na stronę z podsumowaniem funkcji w Cloud Functions.
Podczas wdrażania funkcji kręci się mała ikona wskaźnika postępu. Po wdrożeniu zmienia się w zielony znacznik wyboru. Jeśli wystąpią jakieś problemy, otrzymasz powiadomienie z czerwoną ikoną i linkiem do dzienników, dzięki któremu dowiesz się, co poszło nie tak (prawdopodobnie jest to błąd w Twoim kodzie).
Znakomicie. Twoja funkcja jest teraz aktywna i gotowa do uruchomienia przez HTTP.
4. Testowanie funkcji
Na stronie z podsumowaniem funkcji w Cloud Functions wyświetl menu swojej funkcji i kliknij Przetestuj funkcję :
W polu Zdarzenie aktywujące wpisz następujący tekst w nawiasach klamrowych {} i kliknij Przetestuj funkcję.
W polu Output (Dane wyjściowe) powinien się pojawić komunikat „Sukces”: Hello World!
.
W polu Logi kod stanu 200 oznacza powodzenie. Pamiętaj, że może minąć minuta, zanim dzienniki się pojawią.
5. Wyświetlanie logów funkcji
Kliknij niebieską strzałkę, aby wrócić do strony z podsumowaniem funkcji w Cloud Functions :
Wyświetl menu funkcji i kliknij Wyświetl logi :
Oto przykład historii logów :
Pamiętaj, że możesz filtrować logi według funkcji i poziomu ważności oraz wyszukiwać według etykiety lub dowolnego tekstu.
Twoja aplikacja została wdrożona i przetestowana. Udało Ci się też wyświetlić dzienniki.
6. Zasoby związane z czyszczeniem
Nie trzeba czyścić zasobów, ponieważ jest to bezserwerowe przetwarzanie danych : skalowanie do zera oznacza także skalowanie kosztów do zera. Jeśli więc Twoja funkcja nie generuje ruchu, nie poniesiesz żadnych kosztów. Oprócz tego pierwsze 2 miliony wywołań funkcji w Cloud Functions w każdym miesiącu są bezpłatne. Więcej informacji znajdziesz na stronie z cennikiem.
Jeśli chcesz usunąć funkcję, przejdź na stronę przeglądu, wybierz funkcję i kliknij USUŃ :
7. Co dalej?
Cloud Functions ma dla Ciebie dużo więcej. Zapoznaj się z innymi ćwiczeniami z programowania, stroną usługi oraz jej dokumentacją.
Zapoznaj się również z :
- Wywoływanie funkcji w Cloud Functions (aktywatory dostępne do wywoływania funkcji)
- Monitorowanie funkcji w Cloud Functions (dzienniki, raportowanie błędów itp.)
- ... lub więcej ćwiczeń z programowania z kategorii Technologia bezserwerowa.