GSP315

Pengantar
Dalam challenge lab, Anda diberi sebuah skenario dan serangkaian tugas. Tidak ada petunjuk langkah demi langkah. Anda akan menggunakan keahlian yang dipelajari dari lab dalam kursus untuk mencari cara menyelesaikan sendiri tugas-tugas tersebut. Sistem pemberian skor otomatis (ditampilkan pada halaman ini) akan memberikan masukan tentang apakah Anda telah menyelesaikan tugas dengan benar atau tidak.
Saat mengikuti challenge lab, Anda tidak akan diajari konsep-konsep baru Google Cloud. Anda diharapkan dapat memperluas keahlian yang dipelajari, seperti mengubah nilai default dan membaca serta mengkaji pesan error untuk memperbaiki kesalahan Anda sendiri.
Untuk meraih skor 100%, Anda harus berhasil menyelesaikan semua tugas dalam jangka waktu tertentu.
Lab ini direkomendasikan bagi siswa yang sudah memperoleh badge keahlian Menyiapkan Lingkungan Pengembangan Aplikasi di Google Cloud. Apakah Anda siap menghadapi tantangan ini?
Penyiapan
Sebelum mengklik tombol Mulai Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.
Skenario tantangan
Anda baru saja mendapatkan peran sebagai junior cloud engineer di Jooli inc. Sejauh ini, Anda telah membantu tim membuat dan mengelola resource Google Cloud.
Anda diharuskan memiliki keterampilan dan pengetahuan untuk menyelesaikan tugas ini, jadi tidak akan ada panduan langkah demi langkah.
Tantangan Anda
Sekarang Anda diminta membantu tim pengembangan yang baru dibentuk dengan beberapa tugas awal di project baru seputar menyimpan dan mengatur foto, yang disebut Project Kenangan. Anda telah diminta untuk membantu tim Project Kenangan dengan konfigurasi awal untuk lingkungan pengembangan aplikasi mereka.
Anda menerima permintaan berikut untuk menyelesaikan tugas-tugas berikut:
- Membuat bucket untuk menyimpan foto.
- Membuat topik Pub/Sub yang akan digunakan oleh fungsi Cloud Run yang Anda buat.
- Membuat fungsi Cloud Run.
- Menghapus akses cloud engineer sebelumnya dari project kenangan.
Beberapa standar Jooli Inc. yang harus diikuti:
- Membuat semua resource di region dan zona , kecuali jika ada arahan lain.
- Menggunakan VPC project.
- Pemberian nama mengikuti format team-resource. Misalnya, suatu instance dapat diberi nama kraken-webserver1
- Mengalokasikan ukuran resource yang hemat biaya. Perlu diperhatikan, semua project selalu dipantau dan penggunaan resource secara berlebihan akan mengakibatkan penghentian project yang terkait (dan kemungkinan project Anda). Ini adalah satu-satunya panduan dari tim pemantauan: kecuali jika ada arahan lain, gunakan e2-micro untuk VM Linux kecil dan e2-medium untuk Windows atau aplikasi lainnya, seperti node Kubernetes.
Setiap tugas dijelaskan secara mendetail di bawah ini. Semoga berhasil!
Tugas 1. Membuat bucket
Anda harus membuat bucket bernama untuk penyimpanan foto.
Pastikan resource dibuat di region dan zona .
Klik Check my progress untuk memverifikasi tujuan.
Membuat bucket bernama
Tugas 2. Membuat topik Pub/Sub
Buat topik Pub/Sub bernama untuk fungsi Cloud Run guna mengirim pesan.
Klik Check my progress untuk memverifikasi tujuan.
Membuat topik Pub/Sub bernama
Tugas 3. Membuat fungsi Cloud Run untuk menghasilkan thumbnail
Buat fungsi Cloud Run yang akan menghasilkan thumbnail dari gambar yang ditambahkan ke bucket .
Pastikan fungsi Cloud Run tersebut menggunakan lingkungan Cloud Run functions (yang merupakan generasi ke-2).
Pastikan resource dibuat di region dan zona .
- Buat fungsi Cloud Run bernama
Catatan:
Fungsi Cloud Run perlu dijalankan setiap kali objek dibuat di bucket yang telah dibuat di Tugas 1.
Selama proses ini, fungsi Cloud Run mungkin akan meminta izin Anda untuk mengaktifkan API.
Aktifkan tiap API yang diperlukan jika diminta.
-
Pastikan Anda menetapkan Entry point (Fungsi yang akan dieksekusi) ke dan Trigger ke Cloud Storage
.
-
Tambahkan kode berikut ke index.js
:
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`);
}
});
- Tambahkan kode berikut ke
package.json
:
{
"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": "^5.0.0",
"fast-crc32c": "1.0.4",
"imagemagick-stream": "4.1.1"
},
"devDependencies": {},
"engines": {
"node": ">=4.3.2"
}
}
Pastikan thumbnail telah berhasil dibuat.
Catatan: Jika Anda mendapatkan error "Permission denied" yang menyatakan bahwa mungkin dibutuhkan beberapa menit sebelum semua izin yang diperlukan disebarkan ke Service Agent, tunggu beberapa menit dan coba lagi. Pastikan Anda memiliki peran yang relevan (Eventarc Service Agent, Eventarc Event Receiver, Service Account Token Creator, dan Pub/Sub Publisher) yang ditetapkan ke akun layanan yang benar.
Klik Check my progress untuk memverifikasi tujuan.
Memverifikasi fungsi Cloud Run
Tugas 4. Menguji Infrastruktur
Anda harus mengupload satu gambar berformat JPG atau PNG ke dalam bucket
- Upload gambar berformat PNG atau JPG ke dalam bucket .
Catatan: Sebagai alternatif, download gambar ini https://storage.googleapis.com/cloud-training/gsp315/map.jpg
ke mesin Anda.
Lalu upload gambar tersebut ke dalam bucket.
- Setelah itu, gambar thumbnail akan segera ditampilkan (gunakan REFRESH dalam detail bucket).
Tugas 5. Menghapus cloud engineer sebelumnya
Anda akan melihat bahwa ada dua pengguna yang ditentukan di dalam project.
- Yang satu adalah akun Anda ( dengan peran Pemilik).
- Satunya lagi adalah akun cloud engineer sebelumnya ( dengan peran Viewer).
- Hapus akses cloud engineer sebelumnya dari project.
Klik Check my progress untuk memverifikasi tujuan.
Menghapus cloud engineer sebelumnya
Selamat!

Langkah berikutnya/Pelajari lebih lanjut
Badge keahlian ini merupakan bagian dari jalur pembelajaran Melakukan Tugas-Tugas Infrastruktur Dasar di Google Cloud dan Arsitek Cloud. Jika Anda sudah menyelesaikan badge keahlian lain di jalur pembelajaran, telusuri katalog Google Cloud Skills Boost untuk menemukan badge keahlian lainnya yang dapat Anda ikuti.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 10 September 2024
Lab Terakhir Diuji pada 10 September 2024
Hak cipta 2025 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.