Checkpoints
Deploy the function
/ 100
Cloud Functions: Qwik Start - Komut Satırı
GSP080
Genel bakış
Cloud Functions işlevleri; HTTP istekleri, mesaj hizmetlerinden gelen mesajlar veya dosya yükleme gibi işlemlere yanıt verecek şekilde çalışan kodlardır. Bulut etkinlikleri, bulut ortamınızda gerçekleşen 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.
Cloud Functions işlevleri etkinliğe dayalı olduğu için yalnızca işlem yapıldığında çalışır. Bu nedenle hızlıca tamamlanması gereken veya sürekli çalışması gerekmeyen görevler için idealdir.
Örneğin, Cloud Functions işlevleriyle:
- Cloud Storage'a yüklenecek görüntüler için otomatik olarak küçük resim oluşturabilirsiniz.
- Cloud Pub/Sub'a gelen yeni mesajlar için kullanıcıların telefonuna bildirim gönderebilirsiniz.
- Cloud Firestore veri tabanlarındaki verileri işleyip rapor oluşturabilirsiniz.
Kodunuzu Node.js'i destekleyen herhangi bir dilde yazdıktan sonra kolayca buluta dağıtabilirsiniz. Cloud Functions işleviniz dağıtıldığında etkinliklere tepki olarak otomatik çalışır.
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.
Ayrıca, Google Cloud Shell komut satırını kullanarak bir bulut işlevini nasıl oluşturacağınız, dağıtacağınız ve test edeceğiniz gösterilmektedir.
Yapacaklarınız
- Cloud Functions işlevi oluşturma
- Cloud Functions işlevini dağıtma ve test etme
- Günlükleri görüntüleme
Kurulum
Laboratuvarı Başlat düğmesini tıklamadan önce
Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Laboratuvarı Başlat'ı tıkladığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne süreyle kullanımınıza açık durumda kalacağını gösterir.
Bu uygulamalı laboratuvarı kullanarak, laboratuvar etkinliklerini gerçek bir bulut ortamında (Simülasyon veya demo ortamında değil.) gerçekleştirebilirsiniz. Bu olanağın sunulabilmesi için size yeni, geçici kimlik bilgileri verilir. Bu kimlik bilgilerini laboratuvar süresince Google Cloud'da oturum açmak ve Google Cloud'a erişmek için kullanırsınız.
Bu laboratuvarı tamamlamak için şunlar gerekir:
- Standart bir internet tarayıcısına erişim (Chrome Tarayıcı önerilir).
- Laboratuvarı tamamlamak için yeterli süre. (Laboratuvarlar, başlatıldıktan sonra duraklatılamaz)
Laboratuvarınızı başlatma ve Google Cloud Console'da oturum açma
-
Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir pop-up açılır. Soldaki Laboratuvar Ayrıntıları panelinde şunlar yer alır:
- Google Cloud Console'u aç düğmesi
- Kalan süre
- Bu laboratuvarda kullanmanız gereken geçici kimlik bilgileri
- Bu laboratuvarda ilerlemek için gerekebilecek diğer bilgiler
-
Google Cloud Console'u aç'ı tıklayın (veya Chrome Tarayıcı'yı kullanıyorsanız sağ tıklayıp Bağlantıyı gizli pencerede aç'ı seçin).
Laboratuvar, kaynakları çalıştırır ve sonra Oturum açın sayfasını gösteren başka bir sekme açar.
İpucu: Sekmeleri ayrı pencerelerde, yan yana açın.
Not: Hesap seçin iletişim kutusunu görürseniz Başka bir hesap kullan'ı tıklayın. -
Gerekirse aşağıdaki kullanıcı adını kopyalayıp Oturum açın iletişim kutusuna yapıştırın.
{{{user_0.username | "Username"}}} Kullanıcı adını Laboratuvar ayrıntıları panelinde de bulabilirsiniz.
-
İleri'yi tıklayın.
-
Aşağıdaki şifreyi kopyalayıp Hoş geldiniz iletişim kutusuna yapıştırın.
{{{user_0.password | "Password"}}} Şifreyi Laboratuvar ayrıntıları panelinde de bulabilirsiniz.
-
İleri'yi tıklayın.
Önemli: Laboratuvarın sizinle paylaştığı giriş bilgilerini kullanmanız gerekir. Google Cloud hesabınızın kimlik bilgilerini kullanmayın. Not: Bu laboratuvarda kendi Google Cloud hesabınızı kullanabilmek için ek ücret ödemeniz gerekebilir. -
Sonraki sayfalarda ilgili düğmeleri tıklayarak ilerleyin:
- Şartları ve koşulları kabul edin.
- Geçici bir hesap kullandığınızdan kurtarma seçenekleri veya iki faktörlü kimlik doğrulama eklemeyin.
- Ücretsiz denemelere kaydolmayın.
Birkaç saniye sonra Google Cloud Console bu sekmede açılır.
Cloud Shell'i etkinleştirme
Cloud Shell, çok sayıda geliştirme aracı içeren bir sanal makinedir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.
- Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir simgesini tıklayın.
Bağlandığınızda, kimliğiniz doğrulanmış olur. Proje ise PROJECT_ID'nize göre ayarlanmıştır. Çıkış, bu oturum için PROJECT_ID'yi tanımlayan bir satır içerir:
gcloud
, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.
- (İsteğe bağlı) Etkin hesap adını şu komutla listeleyebilirsiniz:
-
Yetkilendir'i tıklayın.
-
Çıkışınız aşağıdaki gibi görünecektir:
Çıkış:
- (İsteğe bağlı) Proje kimliğini şu komutla listeleyebilirsiniz:
Çıkış:
Örnek çıkış:
gcloud
ile ilgili tüm belgeleri, Google Cloud'daki gcloud CLI'ya genel bakış rehberinde bulabilirsiniz.
1. görev: İşlev oluşturma
Öncelikle, helloWorld
adında basit bir işlev oluşturacaksınız. Bu işlev, Cloud Functions günlüklerine bir mesaj yazar. Söz konusu işlev, Cloud Functions işlevi etkinlikleri tarafından tetiklenir ve işlevin tamamlandığını belirtmek için kullanılan bir geri çağırma işlevini kabul eder.
Bu laboratuvarda Cloud Functions işlevi etkinliği bir Cloud Pub/Sub konusuyla ilgilidir. Pub/Sub, mesaj gönderenlerin mesaj alıcılarından ayrıldığı bir mesaj hizmetidir. Bir mesaj gönderildiğinde veya yayınlandığında alıcının uyarılıp mesajı alması için abonelik gerekir. Pub/Sub'lar hakkında daha fazla bilgi için Cloud Pub/Sub kılavuzlarında Google Cloud Pub/Sub: Google Ölçekli Mesaj Hizmeti başlıklı makaleyi inceleyin.
Etkinlik parametresi ve geri çağırma parametresi hakkında daha fazla bilgi için Cloud Functions belgelerinde Arka Plan İşlevleri başlıklı makaleyi inceleyin.
Bir Cloud Functions işlevi oluşturmak için:
-
Cloud Shell'de, varsayılan bölgeyi ayarlamak için aşağıdaki komutu çalıştırın:
gcloud config set compute/region {{{project_0.default_region |REGION}}} -
İşlev kodu için bir dizin oluşturun:
mkdir gcf_hello_world && cd $_ -
Düzenlemek için
index.js
oluşturup açın:nano index.js -
Aşağıdaki kısmı
index.js
dosyasına kopyalayın:const functions = require('@google-cloud/functions-framework'); // Register a CloudEvent callback with the Functions Framework that will // be executed when the Pub/Sub trigger topic receives a message. functions.cloudEvent('helloPubSub', cloudEvent => { // The Pub/Sub message is passed as the CloudEvent's data payload. const base64name = cloudEvent.data.message.data; const name = base64name ? Buffer.from(base64name, 'base64').toString() : 'World; console.log(`Hello, ${name}!`); }); -
nano'dan çıkın (Ctrl+x) ve dosyayı kaydedin (Y).
-
Düzenlemek için
package.json
oluşturup açın: -
Aşağıdaki kısmı
package.json
dosyasına kopyalayın:{ "name": "gcf_hello_world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } } -
nano'dan çıkın (Ctrl+x) ve dosyayı kaydedin (Y).
-
Paket bağımlılarını yükleme
npm install Beklenen çıkış:
added 140 packages, and audited 141 packages in 9s 27 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
2. görev: İşlevinizi dağıtma
Bu laboratuvarda cf_demo
için --trigger-topic
değerini ayarlayacaksınız.
Cloud Functions işlevleri etkinliğe dayalı olduğu için bir tetikleyici türü belirtilmelidir. Yeni bir işlev dağıtırken "--trigger-topic", "--trigger-bucket" veya "--trigger-http" yaygın tetikleyici etkinlikleridir. Mevcut bir işleve güncelleme dağıtırken işlev, aksi belirtilmedikçe mevcut tetikleyiciyi korur.
-
helloPubSub işlevini cf-demo adlı bir pub/sub konusuna dağıtın
gcloud functions deploy nodejs-pubsub-function \ --gen2 \ --runtime=nodejs20 \ --region={{{ project_0.default_region | REGION }}} \ --source=. \ --entry-point=helloPubSub \ --trigger-topic cf-demo \ --stage-bucket {{{ project_0.project_id | PROJECT_ID }}}-bucket \ --service-account cloudfunctionsa@{{{ project_0.project_id | PROJECT_ID }}}.iam.gserviceaccount.com \ --allow-unauthenticated Not:
Bir hizmet hesabı serviceAccountTokenCreator bildirimi alırsanız "n" seçeneğini belirleyin. -
İşlevin durumunu doğrulayın:
gcloud functions describe nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}} ACTIVE durumu, işlevin dağıtıldığını gösterir.
Beklenen çıkış:
BuildConfig: automaticUpdatePolicy: {} build: projects/630521560493/locations/{{{ project_0.default_region | REGION }}}/builds/7ff9d415-50d9-4557-9bcd-5afad42a6390 dockerRegistry: ARTIFACT_REGISTRY dockerRepository: projects/{{{ project_0.project_id | PROJECT_ID }}}/locations/{{{ project_0.default_region | REGION }}}/repositories/gcf-artifacts entryPoint: helloPubSub ... State: ACTIVE ... UpdateTime: '2024-08-05T13:51:05.317298824Z' Url: https://{{{ project_0.default_region | REGION }}}-{{{ project_0.project_id | PROJECT_ID }}}.cloudfunctions.net/nodejs-pubsub-function
Konuda yayınlanan her mesaj işlevin yürütülmesini tetikler ve mesaj içerikleri giriş verileri olarak iletilir.
Tamamlanan Görevi Test Etme
Tamamladığınız görevi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Görevi başarıyla tamamladıysanız bir değerlendirme puanı alırsınız.
3. görev: İşlevi test etme
İşlevi dağıtıp etkin olduğunu doğruladıktan sonra, işlevin etkinlik algıladığında bulut günlüğüne mesaj yazıp yazmadığını test edin.
-
PubSub'ı bazı verilerle çağırın.
gcloud pubsub topics publish cf-demo --message="Cloud Function Gen2" Örnek çıkış:
messageIds: - '11927162971409664'
Bu yürütme kimliğine sahip günlük mesajları olduğunu doğrulamak için günlükleri görüntüleyin.
4. görev: Günlükleri görüntüleme
-
Günlük geçmişindeki mesajlarınızı görmek için günlükleri kontrol edin:
gcloud functions logs read nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}} Not:
Günlüklerin görünmesi yaklaşık 10 dakika sürer. Günlükleri görüntülemek için Logging > Logs Explorer'a (Günlük Gezgini) da gidebilirsiniz.Cloud Functions işlevi aşağıdakine benzer bilgilerin çıkışını verir:
LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4v6akxf4sxt TIME_UTC: 2024-08-05 15:15:25.723 LOG: Hello, Cloud Function Gen2! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:15:25.711 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4oxfjn7zlyu TIME_UTC: 2024-08-05 15:10:34.303 LOG: Hello, Friend! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:10:34.291 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4fjhyfxua3k TIME_UTC: 2024-08-05 15:03:16.342 LOG: Hello, "SGVsbG8gZnJvbSB0aGUgY29tbWFuZCBsaW5l"!
Uygulamanız dağıtılıp test edilir ve günlükleri görüntüleyebilirsiniz.
5. Görev: Öğrendiklerinizi test etme
-
Aşağıda, bu laboratuvarda ele alınan kavramlarla ilgili bilginizi pekiştirmeye yönelik çoktan seçmeli sorular verilmiştir. Bu soruları elinizden geldiğince yanıtlamaya çalışın.
Tebrikler!
Google Cloud Console'u kullanarak bir Cloud Functions işlevi oluşturdunuz ve bu işlevi komut satırıyla dağıtıp test ettiniz.
Sonraki laboratuvarınıza katılın
Bu laboratuvar, Qwik Starts laboratuvar serisinin bir parçasıdır. Bu laboratuvarlar, Google Cloud'daki pek çok özelliği kısaca tanıtmak için tasarlanmıştır. Katılabileceğiniz bir sonraki laboratuvarı bulmak için laboratuvar kataloğunda "Qwik Starts" araması yapın.
Sonraki adımlar / Daha fazla bilgi
- Cloud Functions işlevi başlatmak için komut satırını kullandığınıza göre, Cloud konsolunu kullanarak bir Cloud Functions işlevi başlatmak amacıyla Cloud Functions: Qwik Start - Cloud Konsolu laboratuvarını deneyin.
- Tetikleyici oluşturup işlevlerinizle ilişkilendirme hakkında daha fazla bilgi için Cloud Functions kılavuzlarının Etkinlikler ve Tetikleyiciler bölümünü inceleyin.
Google Cloud eğitimi ve sertifikası
...Google Cloud teknolojilerinden en iyi şekilde yararlanmanıza yardımcı olur. Derslerimizde teknik becerilere odaklanırken en iyi uygulamalara da yer veriyoruz. Gerekli yetkinlik seviyesine hızlıca ulaşmanız ve öğrenim maceranızı sürdürebilmeniz için sizlere yardımcı olmayı amaçlıyoruz. Temel kavramlardan ileri seviyeye kadar farklı eğitim programlarımız mevcut. Ayrıca, yoğun gündeminize uyması için talep üzerine sağlanan, canlı ve sanal eğitim alternatiflerimiz de var. Sertifikasyonlar ise Google Cloud teknolojilerindeki becerilerinizi ve uzmanlığınızı doğrulamanıza ve kanıtlamanıza yardımcı oluyor.
Kılavuzun Son Güncellenme Tarihi: 5 Ağustos 2024
Laboratuvarın Son Test Edilme Tarihi: 5 Ağustos 2024
Telif Hakkı 2024 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.