GSP315

Giriş
Yarışma laboratuvarında size bir senaryo ve birtakım görevler verilir. Adım adım talimatları uygulamak yerine, görevleri kendi başınıza nasıl tamamlayacağınızı bulmak için kurstaki laboratuvarlardan öğrendiğiniz becerileri pratiğe dökersiniz. Otomatik bir puan sistemi (Bu sayfada gösterilir), görevlerinizi gerektiği şekilde tamamlayıp tamamlamadığınızla ilgili geri bildirim verir.
Bir yarışma laboratuvarı'na katıldığınızda size yeni Google Cloud kavramları öğretilmez. Varsayılan değerleri değiştirmek ve kendi hatalarınızı düzeltmek için hata mesajlarını okuyup araştırma yapmak gibi öğrendiğiniz becerileri geliştirmeniz beklenir.
%100'e ulaşmak için tüm görevleri verilen süre içinde başarıyla tamamlamanız gerekir.
Bu laboratuvar, Google Cloud'da Uygulama Geliştirme Ortamı Oluşturma beceri rozetine kaydolan öğrenciler için önerilir. Yarışmaya hazır mısınız?
Kurulum
Laboratuvarı Başlat düğmesini tıklamadan önce
Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Start Lab'i (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 simülasyon veya demo ortamı yerine gerçek bir bulut ortamında gerçekleştirebilirsiniz. Bunu yapabilmeniz 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 kullanabilirsiniz.
Bu laboratuvarı tamamlamak için gerekenler:
- Standart bir internet tarayıcısına erişim (Chrome Tarayıcı önerilir)
Not: Bu laboratuvarı çalıştırmak için tarayıcıyı gizli modda (önerilen) veya gizli tarama penceresinde açın. Aksi takdirde, kişisel hesabınızla öğrenci hesabınız arasında oluşabilecek çakışmalar nedeniyle kişisel hesabınızdan ek ücret alınabilir.
- Laboratuvarı tamamlamak için yeterli süre (Laboratuvarlar başlatıldıktan sonra duraklatılamaz.)
Not: Bu laboratuvar için yalnızca öğrenci hesabını kullanın. Farklı bir Google Cloud hesabı kullanırsanız bu hesaptan ödeme alınabilir.
Yarışma senaryosu
Kısa süre önce Jooli Inc. şirketinde kıdemsiz bulut mühendisi olarak işe başladınız. Şu ana kadar ekiplerin Google Cloud kaynaklarını oluşturmasına ve yönetmesine yardım ediyordunuz.
Buradaki görevler için gereken bilgi ve beceriye sahip olmanız beklendiğinden adım adım yönergeler sağlanmayacak.
Yarışma konusu
Kısa süre önce oluşturulan bir geliştirme ekibine, yeni bir projedeki ilk çalışmalarında yardımcı olmanız isteniyor. Ekibin Anılar adlı yeni projesi, fotoğrafların depolanması ve düzenlenmesini ele alıyor. Anılar ekibine, uygulama geliştirme ortamlarının ilk yapılandırmasında yardımcı olmanız isteniyor.
Aşağıdaki görevlerin tamamlanmasına yönelik bir talep alıyorsunuz:
- Fotoğrafların depolanacağı bir paket oluşturma
- Oluşturduğunuz Cloud Run işlevi tarafından kullanılacak bir Pub/Sub konusu oluşturma
- Cloud Run işlevi oluşturma
- Önceki bulut mühendisinin Anılar projesine erişimini kaldırma
Uymanız gereken bazı Jooli Inc. standartları şunlardır:
- Aksi yönde bir talimat olmadığı sürece tüm kaynakları bölgesi ve alt bölgesinde oluşturun.
- Proje VPC'lerini kullanın.
- Adlandırma ekip-kaynak şeklinde olmalıdır. Yani bir örnek kraken-webserver1 olarak adlandırılabilir.
- Uygun maliyetli kaynak boyutları ayırın. Projeler izlenmektedir ve aşırı kaynak kullanımı, kaynakların yer aldığı projenin (muhtemelen sizin projenizin de) sonlandırılmasına neden olur. Bu nedenle dikkatli olmanızı öneririz. İzleme ekibinin paylaşmak istediği talimat şu şekilde: Aksi yönde bir talimat olmadığı sürece küçük Linux sanal makineleri için e2-micro, Windows ya da diğer uygulamalar (örneğin, Kubernetes düğümleri) için de e2-medium'u kullanın.
Her görev aşağıda ayrıntılı olarak açıklanmıştır. İyi şanslar!
1. görev: Paket oluşturma
Fotoğrafların depolanması için adında bir paket oluşturmanız gerekir.
Kaynağın bölgesinde ve alt bölgesinde oluşturulduğundan emin olun.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
adında bir paket oluşturun
2. görev: Pub/Sub konusu oluşturma
Cloud Run işlevinin mesaj göndermesi için adında bir Pub/Sub konusu oluşturun.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
adında bir Pub/Sub konusu oluşturun
3. görev: Cloud Run işlevi küçük resmini oluşturma
İşlevi oluşturma
paketine eklenen bir resimden küçük resim oluşturacak, adında bir Cloud Run işlevi oluşturun.
Cloud Run işlevinin, Cloud Run işlevi ortamını (ikinci nesil) kullandığından emin olun.
Kaynağın bölgesinde ve alt bölgesinde oluşturulduğundan emin olun.
-
Node.js 22
kullanarak adlı bir Cloud Run işlevi (2. nesil) oluşturun.
Not:
1. görevde oluşturulmuş pakette her nesne oluşturulduğunda Cloud Run işlevinin yürütülmesi gerekir.
İşlem sırasında Cloud Run işlevi, API'leri etkinleştirme izni veya hizmet hesaplarına rol atama izni isteyebilir.
Lütfen istendiği şekilde gerekli API'lerin her birini etkinleştirin ve rolleri atayın.
-
Giriş noktası'nı (yürütülecek işlev) , Tetikleyici'yi de Cloud Storage
olarak ayarladığınızdan emin olun.
-
Şu kodu index.js
dosyasına ekleyin:
const functions = require('@google-cloud/functions-framework');
const { Storage } = require('@google-cloud/storage');
const { PubSub } = require('@google-cloud/pubsub');
const sharp = require('sharp');
functions.cloudEvent('{{{ project_0.startup_script.function }}}', async cloudEvent => {
const event = cloudEvent.data;
console.log(`Event: ${JSON.stringify(event)}`);
console.log(`Hello ${event.bucket}`);
const fileName = event.name;
const bucketName = event.bucket;
const size = "64x64";
const bucket = new Storage().bucket(bucketName);
const topicName = "{{{ project_0.startup_script.topic }}}";
const pubsub = new PubSub();
if (fileName.search("64x64_thumbnail") === -1) {
// doesn't have a thumbnail, get the filename extension
const filename_split = fileName.split('.');
const filename_ext = filename_split[filename_split.length - 1].toLowerCase();
const filename_without_ext = fileName.substring(0, fileName.length - filename_ext.length - 1); // fix sub string to remove the dot
if (filename_ext === 'png' || filename_ext === 'jpg' || filename_ext === 'jpeg') {
// only support png and jpg at this point
console.log(`Processing Original: gs://${bucketName}/${fileName}`);
const gcsObject = bucket.file(fileName);
const newFilename = `${filename_without_ext}_64x64_thumbnail.${filename_ext}`;
const gcsNewObject = bucket.file(newFilename);
try {
const [buffer] = await gcsObject.download();
const resizedBuffer = await sharp(buffer)
.resize(64, 64, {
fit: 'inside',
withoutEnlargement: true,
})
.toFormat(filename_ext)
.toBuffer();
await gcsNewObject.save(resizedBuffer, {
metadata: {
contentType: `image/${filename_ext}`,
},
});
console.log(`Success: ${fileName} → ${newFilename}`);
await pubsub
.topic(topicName)
.publishMessage({ data: Buffer.from(newFilename) });
console.log(`Message published to ${topicName}`);
} catch (err) {
console.error(`Error: ${err}`);
}
} else {
console.log(`gs://${bucketName}/${fileName} is not an image I can handle`);
}
} else {
console.log(`gs://${bucketName}/${fileName} already has a thumbnail`);
}
});
- Aşağıdaki kodu
package.json
dosyasına ekleyin:
{
"name": "thumbnails",
"version": "1.0.0",
"description": "Create Thumbnail of uploaded image",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0",
"@google-cloud/pubsub": "^2.0.0",
"@google-cloud/storage": "^6.11.0",
"sharp": "^0.32.1"
},
"devDependencies": {},
"engines": {
"node": ">=4.3.2"
}
}
Not: Gerekli tüm izinlerin hizmet aracısına iletilmesinin birkaç dakika sürebileceğini belirten bir "İzin reddedildi" hatası alırsanız birkaç dakika bekleyip tekrar deneyin. Uygun hizmet hesaplarına ilgili rollerin (Eventarc Hizmet Aracısı, Eventarc Etkinlik Alıcısı, Hizmet Hesabı Jeton Oluşturucu ve Pub/Sub Yayıncısı) atandığından emin olun.
İşlevi test etme
-
paketine istediğiniz PNG veya JPG resmi yükleyin.
Not: Alternatif olarak, https://storage.googleapis.com/cloud-training/gsp315/map.jpg
adresindeki resmi makinenize de indirebilirsiniz.
Ardından pakete yükleyebilirsiniz.
Yüklendikten hemen sonra küçük resim görünecektir (Paket ayrıntıları sayfasında YENİLE seçeneğini kullanın).
Resim dosyasını yükledikten sonra aşağıdaki düğmeyi tıklayarak ilerleme durumunuzu kontrol edebilirsiniz. Küçük resmin oluşturulmasını beklemeniz gerekmez.
İsteğe bağlı: İşlev başarıyla dağıtıldıysa ve pakette küçük resmi görmüyorsanız daha önce işlevle ilgili olarak girdiğiniz tetikleyici bilgilerinin Tetikleyiciler sekmesinde gösterilip gösterilmediğini kontrol edebilirsiniz. Daha önce hatalarla karşılaştıysanız bu bilgiler doğru şekilde kaydedilmemiş olabilir.
İşlevin Tetikleyiciler sekmesinde Cloud Storage tetikleyicisini görmüyorsanız tetikleyiciyi yeniden oluşturabilirsiniz (Dokümanda Hizmetler için tetikleyici oluşturma başlıklı sayfaya göz atın.). Ardından tekrar test etmek için yeni bir dosya yükleyebilirsiniz (Yeni bir dosya ekledikten sonra sayfayı yenileyin.).
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Cloud Run işlevinin çalışıp çalışmadığını doğrulayın
4. görev: Önceki bulut mühendisini kaldırma
Projede tanımlanmış iki kullanıcı olduğunu göreceksiniz.
- Bunlardan biri sizin hesabınızdır (Sahip rolüyle ).
- Diğeri ise önceki bulut mühendisidir (Görüntüleyici rolüyle ).
- Projeden önceki bulut mühendisinin erişimini sonlandırın.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Önceki bulut mühendisini kaldırma
Tebrikler!

Sonraki adımlar / Daha fazla bilgi
Bu beceri rozeti, Google'ın Google Cloud'da Temel Altyapı Görevleri Gerçekleştirme ve Bulut Mimarı öğrenme rotalarının bir parçasıdır. Öğrenme rotanızdaki diğer beceri rozetlerini zaten tamamladıysanız Google Cloud Öğrenim Merkezi kataloğunda, kaydolabileceğiniz diğer beceri rozetlerini bulabilirsiniz.
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: 8 Mart 2025
Laboratuvarın Son Test Edilme Tarihi: 8 Mart 2025
Telif Hakkı 2025 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.