GSP646

Ringkasan
Di lab ini, Anda akan menggunakan Cloud Run Functions dan Cloud Scheduler untuk mengidentifikasi dan membersihkan resource cloud yang tidak digunakan secara efisien. Di Google Cloud, alamat IP statis adalah resource gratis jika ditambahkan ke instance load balancer atau virtual machine (VM). Jika alamat IP statis sudah dicadangkan, tetapi tidak digunakan, biaya
per jam akan terakumulasi. Pada aplikasi yang sangat bergantung pada alamat IP statis dan
penyediaan dinamis berskala besar, pemborosan ini dapat menjadi signifikan dari waktu
ke waktu.
Yang akan Anda lakukan
- Membuat VM Compute Engine dengan alamat IP eksternal statis dan
alamat IP eksternal statis terpisah yang tidak digunakan.
- Men-deploy fungsi Cloud Run untuk mengidentifikasi alamat yang tidak digunakan
- Membuat tugas Cloud Scheduler untuk menjadwalkan fungsi agar dijalankan menggunakan pemicu HTTP
Arsitektur
Diagram berikut menjelaskan arsitektur yang digunakan di bagian pertama lab ini, yaitu saat Anda menjadwalkan fungsi Cloud Run untuk mengidentifikasi dan membersihkan alamat IP yang tidak digunakan.

Penyiapan dan persyaratan
Di bagian ini, Anda akan mengonfigurasi infrastruktur dan identitas yang diperlukan untuk
menyelesaikan tutorial.
Sebelum mengklik tombol Start 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 interaktif ini dapat Anda gunakan untuk melakukan 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 (direkomendasikan) 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: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tugas 1. Mengaktifkan API dan meng-clone repositori
-
Di Cloud Shell, aktifkan Cloud Scheduler API:
gcloud services enable cloudscheduler.googleapis.com
Catatan: Diperlukan waktu beberapa saat untuk mengaktifkan Cloud Scheduler API.
Klik Periksa progres saya untuk memverifikasi tujuan.
Mengaktifkan Cloud Scheduler API
-
Membuat Clone Repositori
git clone https://github.com/GoogleCloudPlatform/gcf-automated-resource-cleanup.git && cd gcf-automated-resource-cleanup/
-
Tetapkan variabel lingkungan dan jadikan folder repositori sebagai $WORKDIR tempat Anda menjalankan semua perintah yang terkait dengan lab ini:
export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null)
export region={{{project_0.default_region | Region}}}
WORKDIR=$(pwd)
Tugas 2. Membuat alamat IP
-
Di Cloud Shell, buka direktori unused-ip:
cd $WORKDIR/unused-ip
-
Ekspor nama alamat IP sebagai variabel:
export USED_IP=used-ip-address
export UNUSED_IP=unused-ip-address
-
Buatlah dua alamat IP statis:
gcloud compute addresses create $USED_IP --project=$PROJECT_ID --region={{{project_0.default_region | Region}}}
gcloud compute addresses create $UNUSED_IP --project=$PROJECT_ID --region={{{project_0.default_region | Region}}}
Lab ini menggunakan region , tetapi Anda dapat memilih region lain dan merujuknya secara konsisten di seluruh bagian lab ini.
-
Konfirmasi bahwa dua alamat telah dibuat:
gcloud compute addresses list --filter="region:({{{project_0.default_region | Region}}})"
Dalam output, status RESERVED berarti bahwa alamat IP tidak digunakan:
NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS
unused-ip-address 35.232.144.85 EXTERNAL {{{project_0.default_region | Region}}} RESERVED
used-ip-address 104.197.56.87 EXTERNAL {{{project_0.default_region | Region}}} RESERVED
Klik Periksa progres saya untuk memverifikasi tujuan.
Buatlah dua alamat IP statis
-
Tetapkan alamat IP yang digunakan sebagai variabel lingkungan:
export USED_IP_ADDRESS=$(gcloud compute addresses describe $USED_IP --region={{{project_0.default_region | Region}}} --format=json | jq -r '.address')
Tugas 3. Membuat VM
-
Di Cloud Shell, buat instance:
gcloud compute instances create static-ip-instance \
--zone={{{project_0.default_zone | Zone}}} \
--machine-type=e2-medium \
--subnet=default \
--address=$USED_IP_ADDRESS
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat instance dengan alamat IP statis yang dibuat sebelumnya.
-
Pastikan salah satu alamat IP sedang digunakan:
gcloud compute addresses list --filter="region:({{{project_0.default_region | Region}}})"
Outputnya mirip dengan berikut:
NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS
unused-ip-address 35.232.144.85 EXTERNAL {{{project_0.default_region | Region}}} RESERVED
used-ip-address 104.197.56.87 EXTERNAL {{{project_0.default_region | Region}}} IN_USE
Tugas 4. Meninjau kode fungsi Cloud Run
Outputnya adalah sebagai berikut:
const compute = new Compute();
compute.getAddresses(function(err, addresses){ // gets all addresses across regions
if(err){
console.log("there was an error: " + err);
}
if (addresses == null) {
console.log("no addresses found");
return;
}
console.log("there are " + addresses.length + " addresses");
// iterate through addresses
for (let item of addresses){
// get metadata for each address
item.getMetadata(function(err, metadata, apiResponse) {
// if the address is not used:
if (metadata.status=='RESERVED'){
// compute age by converting ISO 8601 timestamps to Date
var creationDate = new Date(metadata.creationTimestamp);
var currDate = new Date();
var addressAge = Math.floor((currDate - creationDate)/86400e3);;
// delete address
item.delete(function(err, operation, apiResponse2){
if (err) {
console.log("could not delete address: " + err);
}
})
}
Dalam contoh kode sebelumnya, berikut hal penting:
-
compute.getAddresses(function(err, addresses) menggunakan metode getAddresses untuk mengambil alamat IP di semua region dalam project.
-
item.getMetadata(function(err, metadata, apiResponse) mendapatkan metadata untuk setiap alamat IP dan memeriksa kolom STATUS-nya.
-
if ((metadata.status=='RESERVED') & (calculateAge(metadata.creationTimestamp) >= ageToDelete)){ memeriksa apakah alamat IP sedang digunakan, menghitung usianya menggunakan fungsi bantuan, dan membandingkan usianya dengan konstanta (ditetapkan ke 0 untuk tujuan lab).
-
item.delete(function(err, operation, apiResponse2){ menghapus alamat IP.
Tugas 5. Men-deploy fungsi Cloud Run
-
Nonaktifkan Cloud Functions API:
gcloud services disable cloudfunctions.googleapis.com
-
Aktifkan kembali Cloud Functions API:
gcloud services enable cloudfunctions.googleapis.com
-
Tambahkan izin artifactregistry.reader untuk akun layanan appspot Anda. Ganti [PROJECT_ID] dengan ID Project qwiklabs Anda:
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[PROJECT_ID]@appspot.gserviceaccount.com" \
--role="roles/artifactregistry.reader"
-
Di Cloud Shell, deploy fungsi Cloud Run:
gcloud functions deploy unused_ip_function --gen2 --trigger-http --runtime=nodejs20 --region={{{project_0.default_region | Region}}}
- Jika diminta, masukkan Y untuk mengizinkan pemanggilan yang tidak diautentikasi.
Catatan: Deployment fungsi Cloud Run dapat memerlukan waktu 2-5 menit, bergantung pada region.
Klik Periksa progres saya untuk memverifikasi tujuan.
Men-deploy fungsi Cloud Run
-
Tetapkan URL pemicu sebagai variabel lingkungan:
export FUNCTION_URL=$(gcloud functions describe unused_ip_function --region={{{project_0.default_region | Region}}} --format=json | jq -r '.url')
Tugas 6. Men-deploy dan menguji Cloud Run Function
-
Di Cloud Shell, buat aplikasi App Engine untuk menggunakan Cloud Scheduler:
gcloud app create --region={{{project_0.startup_script.app_region | REGION }}}
-
Di Cloud Shell, buat tugas Cloud Scheduler untuk menjalankan fungsi Cloud Run pada pukul 02.00 setiap malam:
gcloud scheduler jobs create http unused-ip-job \
--schedule="* 2 * * *" \
--uri=$FUNCTION_URL \
--location={{{project_0.default_region | Region}}}
Klik Periksa progres saya untuk memverifikasi tujuan.
Buat aplikasi App Engine
-
Uji tugas dengan memicunya secara manual:
gcloud scheduler jobs run unused-ip-job \
--location={{{project_0.default_region | Region}}}
Anda tidak akan menerima output apa pun.
Klik Periksa progres saya untuk memverifikasi tujuan.
Menjalankan tugas cloud scheduler
-
Konfirmasi bahwa alamat IP yang tidak digunakan telah dihapus:
gcloud compute addresses list --filter="region:({{{project_0.default_region | Region}}})"
Outputnya mirip dengan berikut:
NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS
used-ip-address 104.197.56.87 EXTERNAL {{{project_0.default_region | Region}}} IN_USE
Klik Periksa progres saya untuk memverifikasi tujuan.
Mengonfirmasi penghapusan alamat IP yang tidak digunakan
Selamat!
Di lab ini, Anda telah menyelesaikan tugas berikut:
- Membuat VM Compute Engine dengan alamat IP eksternal statis dan
alamat IP eksternal statis terpisah yang tidak digunakan.
- Men-deploy fungsi Cloud Run untuk mengidentifikasi alamat yang tidak digunakan
- Membuat tugas Cloud Scheduler untuk menjadwalkan fungsi agar dijalankan menggunakan pemicu HTTP.
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 15 Januari 2025
Lab Terakhir Diuji pada 15 Januari 2025
Hak cipta 2026 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.