Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses
Google Cloud'da Uygulama Geliştirme Ortamı Oluşturma: Yarışma Laboratuvarı
Get access to over 700 hands-on labs, skill badges, and courses
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.
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).
Not: Bu laboratuvarı çalıştırmak için tarayıcıyı gizli pencerede 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: Kişisel bir Google Cloud hesabınız veya projeniz varsa bu laboratuvarda kullanmayın. Aksi takdirde hesabınızdan ek ücret 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
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.
adlı bir Cloud Run işlevi 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ştirmek için izin isteyebilir.
Lütfen gerekli API'lerin her birini istendiği şekilde etkinleştirin.
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 crc32 = require("fast-crc32c");
const { Storage } = require('@google-cloud/storage');
const gcs = new Storage();
const { PubSub } = require('@google-cloud/pubsub');
const imagemagick = require("imagemagick-stream");
functions.cloudEvent('{{{ project_0.startup_script.function }}}', cloudEvent => {
const event = cloudEvent.data;
console.log(`Event: ${event}`);
console.log(`Hello ${event.bucket}`);
const fileName = event.name;
const bucketName = event.bucket;
const size = "64x64"
const bucket = gcs.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
var filename_split = fileName.split('.');
var filename_ext = filename_split[filename_split.length - 1];
var filename_without_ext = fileName.substring(0, fileName.length - filename_ext.length );
if (filename_ext.toLowerCase() == 'png' || filename_ext.toLowerCase() == 'jpg'){
// only support png and jpg at this point
console.log(`Processing Original: gs://${bucketName}/${fileName}`);
const gcsObject = bucket.file(fileName);
let newFilename = filename_without_ext + size + '_thumbnail.' + filename_ext;
let gcsNewObject = bucket.file(newFilename);
let srcStream = gcsObject.createReadStream();
let dstStream = gcsNewObject.createWriteStream();
let resize = imagemagick().resize(size).quality(90);
srcStream.pipe(resize).pipe(dstStream);
return new Promise((resolve, reject) => {
dstStream
.on("error", (err) => {
console.log(`Error: ${err}`);
reject(err);
})
.on("finish", () => {
console.log(`Success: ${fileName} → ${newFilename}`);
// set the content-type
gcsNewObject.setMetadata(
{
contentType: 'image/'+ filename_ext.toLowerCase()
}, function(err, apiResponse) {});
pubsub
.topic(topicName)
.publisher()
.publish(Buffer.from(newFilename))
.then(messageId => {
console.log(`Message ${messageId} published.`);
})
.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`);
}
});
Küçük resmin başarıyla oluşturulduğunu doğrulayın.
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. Doğru 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.
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: Altyapıyı test etme
Pakete bir JPG veya PNG resmi yüklemelisiniz.
paketine bir PNG ya da 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.
Küçük resim yüklendikten hemen sonra görünecektir (Paket ayrıntılarındaki YENİLE seçeneğini kullanın).
5. 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
...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: 10 Eylül 2024
Laboratuvarın Son Test Edilme Tarihi: 10 Eylül 2024
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.
Labs create a Google Cloud project and resources for a fixed time
Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
On the top left of your screen, click Start lab to begin
Use private browsing
Copy the provided Username and Password for the lab
Click Open console in private mode
Sign in to the Console
Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
Accept the terms, and skip the recovery resource page
Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one
Use private browsing to run the lab
Use an Incognito or private browser window to run this lab. This
prevents any conflicts between your personal account and the Student
account, which may cause extra charges incurred to your personal account.
Bu Yarışma Laboratuvarı, Google Cloud'da Temel Altyapı Görevleri Gerçekleştirme beceri rozetindeki laboratuvarlardan edindiğiniz bilgi ve becerileri test eder. Bu laboratuvara başlamadan önce söz konusu laboratuvarların içeriğine aşina olmanız gerekir.