Cloud Functions'ı kullanmaya başlama

1. Genel Bakış

Cloud-Functions.png

Cloud Functions'ı kullanarak bulut altyapınızdan ve hizmetlerinizden alınan etkinliklere eklenen, basit ve tek amaçlı işlevler yazabilirsiniz. Cloud Functions işleviniz, izlenen bir etkinlik gerçekleştiğinde tetiklenir. Kodunuz tümüyle yönetilen bir ortamda yürütülür. Herhangi bir altyapı sağlamanız veya sunucu yönetme konusunda endişelenmeniz gerekmez.

Cloud Functions şu anda JavaScript, Python veya Go dilinde yazılabilir. JavaScript söz konusu olduğunda ise bu politikalar, Google Cloud Platform'da Node.js ortamında yürütülür. Cloud Functions işlevinizi standart bir Node.js çalışma zamanı ortamında çalıştırabilirsiniz. Bu olanak, taşınabilirliği artırır ve yerel testleri kolaylaştırır.

Bulut Hizmetlerini Bağlama ve Genişletme

Cloud Functions, bulut hizmetlerine bağlanmak ve bu hizmetleri genişletmek için kod yazmanıza olanak tanıyan, bağlayıcı bir mantık katmanı sunar. Cloud Storage'a dosya yüklendiğinde, günlük kaydı değiştirildiğinde veya bir Cloud Pub/Sub konusuna mesaj geldiğinde bu etkinlikleri dinleyip yanıtlayabilirsiniz. Cloud Functions, mevcut bulut hizmetlerinin kapsamını genişletir ve rastgele programlama mantığıyla sayısı giderek artan kullanım alanlarını ele almanıza olanak tanır. Cloud Functions, Google Hizmet Hesabı kimlik bilgilerine erişebildiğinden Datastore, Cloud Spanner, Cloud Translation API ve Cloud Vision API gibi birçok Google Cloud Platform hizmetinin yanı sıra diğer pek çok hizmetle de sorunsuz şekilde kimlik doğrulaması yapılır.

907ffb96feada611.png

Etkinlikler ve Tetikleyiciler

Bulut etkinlikleri, bulut ortamınızda meydana gelen olaylardır.Bu etkinlikler arasında veritabanındaki verilerde yapılan değişiklikler, depolama sistemine eklenen dosyalar veya oluşturulan yeni bir sanal makine örneği bulunabilir.

Etkinlikler, onlara yanıt verip vermediğinize bakılmaksızın gerçekleşir. Tetikleyici içeren etkinliklere yanıt oluşturursunuz. Tetikleyici, belirli bir etkinlik veya etkinlik grubu ile ilgilendiğinizi bildirir. Tetikleyiciye bir işlev bağlayarak etkinlikleri yakalayabilir ve bunlarla ilgili işlem yapabilirsiniz. Tetikleyici oluşturma ve bunları işlevlerinizle ilişkilendirme hakkında daha fazla bilgi için Etkinlikler ve Tetikleyiciler başlıklı makaleyi inceleyin.

Sunucusuz

Cloud Functions; sunucuları yönetme, yazılımı yapılandırma, çerçeveleri güncelleme ve işletim sistemlerine yama uygulama süreçlerini ortadan kaldırır. Yazılım ve altyapı tümüyle Google tarafından yönetildiğinden yalnızca kod eklemeniz yeterlidir. Ayrıca kaynaklar, etkinliklere yanıt olarak otomatik şekilde sağlanır. Bu sayede işlevin ölçeği, herhangi bir işlem yapmanıza gerek kalmadan günde birkaç çağrıdan milyonlarca çağrıya kadar büyütülebilir.

Kullanım Alanları

Hafif ETL gibi eşzamansız iş yükleri veya uygulama derlemelerinin tetiklenmesi gibi bulut otomasyonları için artık ayrı bir sunucuya ve sistemin bağlantısını kuracak bir geliştiriciye ihtiyaç yoktur. İstediğiniz etkinliğe bağlı bir Cloud Functions işlevi dağıtmanız yeterlidir.

Cloud Functions, ayrıntılı ve isteğe bağlı yapısı sayesinde hafif API'ler ve webhook'lar için mükemmel bir seçenektir. Bununla birlikte, HTTP işlevini dağıttığınız sırada HTTP uç noktaları otomatik olarak sağlanır. Yani başka hizmetlerde olduğu gibi karmaşık bir yapılandırma gerekmez.

Bu uygulamalı laboratuvarda, Google Cloud konsolunu kullanarak Cloud Functions işlevlerini nasıl oluşturacağınız, dağıtacağınız ve test edeceğiniz anlatılmaktadır. Bu durumda :

  • Cloud Functions işlevi oluşturma
  • İşlevi dağıtıp test etme
  • Günlükleri göster

2. Kurulum ve Gereksinimler

Kendi hızınızda ortam kurulumu

  1. Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. (Gmail veya G Suite hesabınız yoksa hesap oluşturmanız gerekir.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

Tüm Google Cloud projelerinde benzersiz bir ad olan proje kimliğini unutmayın (yukarıdaki ad zaten alınmış ve size uygun olmayacaktır!). Bu kod laboratuvarın ilerleyen bölümlerinde PROJECT_ID olarak adlandırılacaktır.

  1. Sonraki adımda, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.

Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. "Temizleme" bölümündeki talimatları izlediğinizden emin olun. bölümünde, bu eğiticinin dışında faturalandırmayla karşılaşmamanız için kaynakları nasıl kapatacağınız konusunda tavsiyelerde bulunuyoruz. Yeni Google Cloud kullanıcıları 300 ABD doları ücretsiz deneme programından yararlanabilir.

Google Cloud Shell

Google Cloud ve Cloud Functions işlevleri dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacağız.

Bu Debian tabanlı sanal makine, ihtiyacınız olan tüm geliştirme araçlarıyla yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud'da çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Yani bu codelab'de ihtiyacınız olan tek şey bir tarayıcıdır (Evet, Chromebook'ta çalışır).

  1. Cloud Shell'i Cloud Console'dan etkinleştirmek için Cloud Shell'i etkinleştir fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q simgesini tıklamanız yeterlidir (sağlanması ve ortama bağlanması yalnızca birkaç dakika sürer).

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Screen Shot 2017-06-14 at 10.13.43 PM.png

Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin PROJECT_ID olarak ayarlanmış olduğunu göreceksiniz.

gcloud auth list

Komut çıkışı

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

Komut çıkışı

[core]
project = <PROJECT_ID>

Herhangi bir nedenle proje ayarlanmamışsa şu komutu vermeniz yeterlidir:

gcloud config set project <PROJECT_ID>

PROJECT_ID cihazınızı mı arıyorsunuz? Kurulum adımlarında kullandığınız kimliği kontrol edin veya Cloud Console kontrol panelinden arayın:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell bazı ortam değişkenlerini de varsayılan olarak ayarlar. Bu değişkenler, gelecekte komut çalıştırdığınızda işinize yarayabilir.

echo $GOOGLE_CLOUD_PROJECT

Komut çıkışı

<PROJECT_ID>
  1. Son olarak, varsayılan alt bölgeyi ve proje yapılandırmasını ayarlayın.
gcloud config set compute/zone us-central1-f

Çeşitli farklı alt bölgeler seçebilirsiniz. Daha fazla bilgi için Bölgeler ve Bölgeler.

3. İşlev oluşturma

Bu adımda, konsolu kullanarak bir Cloud Functions işlevi oluşturacaksınız.

  • Konsolda Gezinme menüsünü tıklayın > Cloud Functions.

fe64222954f5f372.png

  • "CREATE FUNCTION"ı (İŞLEV OLUŞTUR) tıklayın. :

7adca9640ca2e5a6.png

  • İşlevinizi GCFunction olarak adlandırın ve diğer varsayılan değerleri koruyun : bellek ayırma, tetikleyici olarak HTTP, satır içi düzenleyici, varsayılan çalışma zamanı ve varsayılan örnek kod.

795f1fedc0f039bb.png

  • "İşlev oluştur" modundayken altındaki "Oluştur"u tıklayın. fonksiyonu dağıtmak için:

b68c3647b771e6f9.png

Oluştur'u tıklamanızın ardından konsol sizi Cloud Functions'a Genel Bakış sayfasına yönlendirir.

İşlev dağıtılırken yanında küçük bir döner simge görünür. Dağıtım tamamlandığında döner simgenin yerini onay işareti alır. Herhangi bir sorun varsa kırmızı bir simge ve sorunun ne olduğunu (muhtemelen kodunuzdaki bir sorun) anlamanız için günlüklerin bağlantısıyla bilgilendirilirsiniz.

3ec684b1b4906657.png

İşte bu kadar. İşleviniz artık yayında ve HTTP aracılığıyla tetiklenmeye hazır.

4. İşlevi test etme

Cloud Functions'a Genel Bakış sayfasında işlevinizin menüsünü görüntüleyin ve İşlevi test et'i tıklayın :

74e310ee6663bb3c.png

Tetikleme olayı alanına, aşağıda köşeli ayraç {} içinde gösterilen metni girin ve İşlevi test et'i tıklayın.

Çıkış alanında Başarılı mesajı gösterilir: Hello World!

Günlükler alanındaki durum kodu olarak 200, işlemin başarılı olduğunu gösterir. Günlüklerin görünmesinin bir dakika sürebileceğini unutmayın.

a876def9cbf24a45.png

5. İşlev günlüklerini görüntüleme

Cloud Functions'a Genel Bakış sayfasına dönmek için mavi oku tıklayın :

8917a2bfa4fb9502.png

İşlevinizin menüsünü açıp Günlükleri görüntüle'yi tıklayın :

e97e6ec1fc17dfd7.png

Aşağıda günlük geçmişinin bir örneği verilmiştir :

d91a00cf4457fa84.png

Günlükleri işleve ve önem düzeyine göre filtreleyebilir ve bir etiket ya da serbest biçimli metin kullanarak günlükler arayabilirsiniz.

Uygulamanız dağıtılıp test edildi ve günlükleri görüntüleyebildiniz.

6. Kaynakları temizle

Bu sunucusuz bilgi işlem olduğundan kaynakları temizlemeniz gerekmez. Sıfıra ölçeklendirme, maliyeti sıfıra ölçeklendirme anlamına gelir. Dolayısıyla, fonksiyonunuz trafik almıyorsa herhangi bir maliyet tahakkuk etmez. Ayrıca her ay ilk 2 milyon Cloud Functions işlevi çağrısı ücretsizdir. Daha fazla bilgi için fiyatlandırma sayfasına göz atın.

İşlevi silmek istiyorsanız, genel bakış sayfasına gidip işlevi seçin ve SİL 'i tıklayın :

4fe11e1b41b32ba2.png

7. Sırada ne var?

Cloud Functions'da sizi bekleyen çok daha fazla özellik var. Diğer codelab'lere, ürün sayfasına ve belgelerine göz atın.

Şunlara da göz atmalısınız :