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 işlevleri şu anda JavaScript, Python veya Go dilinde yazılabilir. JavaScript durumunda, Google Cloud Platform'daki bir Node.js ortamında yürütülürler. 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 Google Cloud Platform hizmetlerinin çoğuyla sorunsuz şekilde doğrulanır.

907ffb96feada611.png

Etkinlikler ve Tetikleyiciler

Bulut etkinlikleri, bulut ortamınızda gerçekleşen olaylardır.Veritabanındaki verilerde yapılan değişiklikler, depolama sistemine eklenen dosyalar veya oluşturulan yeni bir sanal makine örneği, bu etkinliklere örnek olarak verilebilir.

Etkinlikler, onlara yanıt verip vermediğinize bakılmaksızın gerçekleşir. Tetikleyici kullanarak etkinliklere yanıt oluşturabilirsiniz. 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. Tetikleyicileri oluşturma ve bunları işlevlerinizle ilişkilendirme hakkında daha fazla bilgi için Etkinlikler ve Tetikleyiciler sayfasına bakın.

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 kurstan sonra :

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

2. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

  1. Cloud Console'da oturum açın ve 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

Proje kimliğini unutmayın. Bu kimlik, tüm Google Cloud projelerinde benzersiz bir addır (Yukarıdaki ad zaten alınmış olduğundan sizin için çalışmayacaktır). Bu codelab'in ilerleyen kısımlarında PROJECT_ID olarak adlandırılacaktır.

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

Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırma ücreti alınmaması için kaynakları nasıl kapatacağınız konusunda size tavsiyelerde bulunan "Temizleme" bölümündeki talimatları uyguladığınızdan emin olun. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

Google Cloud Shell

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

Bu Debian tabanlı sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin bulunur ve Google Cloud'da çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu nedenle, bu codelab için ihtiyacınız olan tek şey bir tarayıcıdır (Chromebook'ta da çalışır).

  1. Cloud Shell'i Cloud Console'dan etkinleştirmek için Cloud Shell'i etkinleştir 'i fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q tıklamanız yeterlidir (ortamın sağlanması ve bağlantının kurulması yalnızca birkaç saniye 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'nize ayarlandığını görürsünüz.

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 verin:

gcloud config set project <PROJECT_ID>

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

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell, gelecekteki komutları çalıştırırken faydalı olabilecek bazı ortam değişkenlerini de varsayılan olarak ayarlar.

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 bölgeler arasından seçim yapabilirsiniz. Daha fazla bilgi için Bölgeler ve Alt Bölgeler başlıklı makaleyi inceleyin.

3. İşlev oluşturma

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

  • Konsolda, gezinme menüsü > Cloud Functions'ı tıklayın.

fe64222954f5f372.png

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

7adca9640ca2e5a6.png

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

795f1fedc0f039bb.png

  • İşlevi dağıtmak için "İşlev oluştur" iletişim kutusunda alt kısımdaki "Oluştur"u tıklayın:

b68c3647b771e6f9.png

Oluştur'u tıkladıktan sonra 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 neyin yanlış gittiğini anlamak için günlüklere giden bir bağlantı (büyük olasılıkla kodunuzdaki bir sorun) ile bilgilendirilirsiniz.

3ec684b1b4906657.png

İşte bu kadar. İşleviniz artık yayında ve HTTP üzerinden tetiklenmeye hazır.

4. İşlevi test etme

Cloud Functions'a Genel Bakış sayfasında, işlevle ilgili menüyü açın 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 Test the function'ı (İşlevi test et) tıklayın.

Output (Çıkış) alanında Success: Hello World! mesajını göreceksiniz.

Günlükler alanındaki 200 durum kodu, işlemin başarılı olduğunu gösterir. Günlüklerin görünmesi bir dakikayı bulabilir.

a876def9cbf24a45.png

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

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

8917a2bfa4fb9502.png

İşlevinizin menüsünü açıp View logs'u (Günlükleri görüntüle) tıklayın :

e97e6ec1fc17dfd7.png

Günlük geçmişi örneği :

d91a00cf4457fa84.png

Günlükleri işlev ve önem derecesine göre filtreleyebileceğinizi, ayrıca etiket veya serbest biçimli metin aracılığıyla arama yapabileceğinizi unutmayın.

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

6. Kaynakları temizleme

Sunucusuz bilgi işlemde kaynakları temizlemeniz gerekmez. Sıfıra ölçekleme, maliyeti de sıfıra ölçekleme anlamına gelir. Bu nedenle, işleviniz trafik almıyorsa herhangi bir maliyet oluşmaz. Ayrıca, her ay ilk 2 milyon Cloud Functions ç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 daha pek çok özellik var. Diğer codelab'lere, ürün sayfasına ve belgelerine göz atın.

Ayrıca aşağıdaki makalelere de göz atabilirsiniz :