Script otomatisasi untuk Google Cloud self-paced labs (Qwiklabs / Cloud Skills Boost), dijalankan dari Cloud Shell.
Jalankan langsung dari Cloud Shell:
curl -sL https://raw.githubusercontent.com/ravi-arnan/gsp_lab_solutions/main/gsp416.sh | bashAtau download dulu kalau mau baca isinya sebelum jalan (disarankan):
curl -sLO https://raw.githubusercontent.com/ravi-arnan/gsp_lab_solutions/main/gsp416.sh
less gsp416.sh
bash gsp416.shKalau script baru saja diperbaiki dan kamu mengambilnya ulang di tengah lab, raw.githubusercontent.com masih menyajikan versi lama sekitar lima menit. Query string ?v=$(date +%s) tidak menolong — cache-nya mengabaikan itu (terbukti 2026-08-03 di GSP381). Yang bekerja: ambil lewat commit SHA, karena URL-nya immutable.
git -C . log --oneline -1 # atau lihat SHA di GitHub
curl -sLO https://raw.githubusercontent.com/ravi-arnan/gsp_lab_solutions/<SHA>/gsp416.shScript yang butuh region/zone (atau nilai lain yang berbeda tiap instance, seperti nama bucket di arc111.sh dan nama cluster di gsp343.sh) akan bertanya sendiri saat dijalankan dari terminal:
$ bash gsp081.sh
Region (cocokkan dengan panel lab) [asia-east1]: europe-west1
REGION = europe-west1
Tekan Enter saja kalau defaultnya sudah cocok. Tiga cara mengisinya, urutan prioritas dari atas:
| Cara | Kapan dipakai |
|---|---|
REGION=europe-west1 bash gsp081.sh |
env var menang, tidak ada pertanyaan — enak untuk mengulang script |
| Dijawab saat ditanya | jalan biasa dari terminal |
| Default di dalam script | dipakai otomatis kalau stdin bukan terminal |
Poin terakhir penting: curl ... | bash dan nohup bash x.sh & membuat stdin bukan terminal, jadi script tidak akan menggantung menunggu jawaban — dia langsung memakai default. Kalau region lab-mu berbeda dari default, isi lewat env var untuk dua pola itu.
Sebagian lab tidak bisa dijalankan sebagai one-liner. Download dulu, jangan di-pipe ke bash, karena curl ... | bash -s <arg> membuat script dan stdin berebut, dan biasanya filenya masih dibutuhkan untuk fase berikutnya.
gsp1143.sh contohnya. Task 4 menghapus semua yang dibuat Task 1 sampai 3, jadi harus dipisah dan checkpoint task 1-3 wajib hijau dulu sebelum fase delete:
curl -sLO https://raw.githubusercontent.com/ravi-arnan/gsp_lab_solutions/main/gsp1143.sh
REGION=europe-west1 bash gsp1143.sh create # Task 1-3
# klik Check my progress task 1, 2, 3 sampai hijau
REGION=europe-west1 bash gsp1143.sh delete # Task 4Region di lab ini diisi dinamis per instance, jadi cocokkan dengan halaman lab-mu. Default script us-central1.
| ID | Judul | Script | Runbook | Status | Terakhir diuji |
|---|---|---|---|---|---|
| GSP416 | Working with JSON, Arrays, and Structs in BigQuery | gsp416.sh | docs/gsp416.md | Terverifikasi, skor 100/100 | 2026-07-16 |
| GSP340 | Build a Data Warehouse with BigQuery: Challenge Lab | gsp340.sh | docs/gsp340.md | Terverifikasi, skor 40/40, satu varian task | 2026-07-16 |
| GSP1143 | Knowledge Catalog (Dataplex): Qwik Start - Console | gsp1143.sh | docs/gsp1143.md | Terverifikasi, skor 100/100 | 2026-07-17 |
| GSP1144 | Knowledge Catalog: Qwik Start - Command Line | gsp1144.sh | docs/gsp1144.md | Terverifikasi, skor 100/100, dua fase | 2026-08-06 |
| GSP1145 | Create and Add Aspects to Knowledge Catalog Assets | gsp1145.sh | docs/gsp1145.md | Terverifikasi, skor 100/100 (us-east1) | 2026-08-06 |
| GSP1157 | Implementing Security in Knowledge Catalog | gsp1157.sh | docs/gsp1157.md | Terverifikasi, skor 100/100, Task 3 dan 5 manual (dua user) | 2026-07-17 |
| GSP514 | Build a Data Mesh with Knowledge Catalog: Challenge Lab | gsp514.sh | docs/gsp514.md | Terverifikasi, Task 2b manual (UI) | 2026-07-17 |
| GSP750 | Infrastructure as Code with Terraform | gsp750.sh | docs/gsp750.md | Terverifikasi, skor 100/100 (us-east1) | 2026-11-09 |
| GSP751 | Interact with Terraform Modules | gsp751.sh | docs/gsp751.md | Terverifikasi, skor 100/100 (us-central1) | 2026-11-09 |
| GSP345 | Build Infrastructure with Terraform: Challenge Lab | gsp345.sh | docs/gsp345.md | Terverifikasi, skor 100/100 (google ~> 6.0, vpc 10.0.0, us-east1) | 2026-11-09 |
| GSP1183 | Gating Deployments with Binary Authorization | gsp1183.sh | docs/gsp1183.md | Terverifikasi di us-east1, 7/7 checkpoint hijau sekali jalan | 2026-07-17 |
| GSP1184 | Secure Builds with Cloud Build | gsp1184.sh | - | Belum diuji | - |
| GSP1185 | Securing Container Builds | gsp1185.sh | - | Belum diuji | - |
| GSP521 | Secure Software Delivery: Challenge Lab | gsp521.sh | docs/gsp521.md | Terverifikasi, skor 100/100 (us-west1) | 2026-11-09 |
| ARC125 | Use APIs to Work with Cloud Storage: Challenge Lab | arc125.sh | - | Terverifikasi, semua checkpoint hijau, dua fase | 2026-07-30 |
| GSP294 | Introduction to APIs in Google Cloud | gsp294.sh | - | Belum diuji | - |
| GSP421 | APIs Explorer: Cloud Storage | gsp421.sh | docs/gsp421.md | Terverifikasi, skor 100/100 sekali jalan | 2026-08-21 |
| GSP038 | Entity and Sentiment Analysis with the Natural Language API | gsp038.sh | docs/gsp038.md | Terverifikasi, skor 100/100 sekali jalan; API key dibuat lewat console | 2026-08-04 |
| GSP064 | Manage Access Control with IAM | gsp064.sh | docs/gsp064.md | Terverifikasi, skor 100/100 sekali jalan | 2026-10-27 |
| GSP069 | App Engine: Qwik Start - PHP | gsp069.sh | docs/gsp069.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-10 |
| GSP070 | App Engine: Qwik Start - Go | gsp070.sh | docs/gsp070.md | Siap diuji, skor 100/100 | - |
| GSP074 | Cloud Storage: Qwik Start - CLI/SDK | gsp074.sh | docs/gsp074.md | Terverifikasi, skor 100/100 sekali jalan (us-east1) | 2026-08-21 |
| GSP073 | Cloud Storage: Qwik Start - Google Cloud Console | gsp073.sh | docs/gsp073.md | Terverifikasi, skor 100/100 sekali jalan (europe-west1) | 2026-08-21 |
| GSP522 | Discover and Protect Sensitive Data Across Your Ecosystem: Challenge Lab | gsp522.sh | - | Dikerjakan manual 100/100 (petunjuk Task 3 di script sudah dikoreksi ke SDK google-genai); script sendiri belum diuji | 2026-07-31 |
| GSP766 | Managing a GKE Multi-tenant Cluster with Namespaces | gsp766.sh | docs/gsp766.md | Terverifikasi, skor 100/100 sekali jalan (us-west1-b) | 2026-11-10 |
| GSP761 | Developing a REST API with Go and Cloud Run | gsp761.sh | docs/gsp761.md | Terverifikasi, skor 100/100 (europe-west4) | 2026-11-09 |
| GSP762 | Create PDFs with Go and Cloud Run | gsp762.sh | docs/gsp762.md | Terverifikasi, skor 100/100 (us-central1) | 2026-11-09 |
| GSP651 | Setting Up Cost Control with Quota | gsp651.sh | docs/gsp651.md | Terverifikasi, skor 100/100 (global US) | 2026-11-09 |
| GSP343 | Optimize Costs for GKE: Challenge Lab | gsp343.sh | docs/gsp343.md | Terverifikasi, skor 100/100 (europe-west4-c) | 2026-11-10 |
| GSP767 | Exploring Cost-optimization for GKE Virtual Machines | gsp767.sh | docs/gsp767.md | Terverifikasi, skor 100/100 (europe-west1-b) | 2026-11-10 |
| GSP768 | Understanding and Combining GKE Autoscaling Strategies | gsp768.sh | docs/gsp768.md | Terverifikasi, skor 100/100 sekali jalan (us-east1-c) | 2026-11-10 |
| GSP414 | Creating Date-Partitioned Tables in BigQuery | gsp414.sh | - | Belum diuji | - |
| GSP1281 | Enabling Sensitive Data Protection Discovery for Cloud Storage | gsp1281.sh | docs/gsp1281.md | Belum diuji | - |
| GSP412 | Troubleshooting and Solving Data Join Pitfalls | gsp412.sh | - | Belum diuji | - |
| GSP081 | Cloud Run Functions: Qwik Start - Console | gsp081.sh | docs/gsp081.md | Terverifikasi, skor 100/100 | 2026-08-04 |
| GSP872 | API Gateway: Qwik Start | gsp872.sh | docs/gsp872.md | Terverifikasi, skor 100/100 | 2026-08-04 |
| GSP080 | Cloud Run Functions: Qwik Start - Command Line | gsp080.sh | - | Terverifikasi, skor 100/100 di dua region (us-west4 2026-07-31, us-east1 2026-08-21) | 2026-08-21 |
| GSP089 | Cloud Monitoring: Qwik Start | gsp089.sh | docs/gsp089.md | Terverifikasi, skor 100/100 sekali jalan | 2026-08-04 |
| GSP092 | Monitoring and Logging for Cloud Run Functions | gsp092.sh | docs/gsp092.md | Terverifikasi, skor 100/100 (us-central1); Cloud Functions v2 deployment | 2026-11-09 |
| GSP093 | Compute Engine: Qwik Start - Windows | gsp093.sh | docs/gsp093.md | Terverifikasi, skor 100/100 (us-central1-f) | 2026-11-09 |
| GSP1108 | Monitor an Apache Web Server using Ops Agent | gsp1108.sh | docs/gsp1108.md | Terverifikasi, skor 100/100 (us-east1-c) | 2026-11-09 |
| GSP736 | Debug Apps on Google Kubernetes Engine | gsp736.sh | docs/gsp736.md | Terverifikasi, skor 100/100; grader mencocokkan teks filter alerting policy (resource.type dulu) |
2026-08-04 |
| GSP1024 | Using Prometheus for Monitoring on Google Cloud: Qwik Start | gsp1024.sh | docs/gsp1024.md | Diuji ulang 75/100 (Task 1, 3, dan 5 hijau; Task 4 merah walau deployment dan service aktif serta metrik ter-ingest) | 2026-10-27 |
| GSP1026 | Collect Metrics from Exporters using the Managed Service for Prometheus | gsp1026.sh | - | Belum diuji | - |
| GSP053 | Managing Deployments Using Kubernetes Engine | gsp053.sh | - | Belum diuji | - |
| GSP1041 | Data Publishing on BigQuery using Authorized Views | gsp1041.sh | docs/gsp1041.md | Terverifikasi, skor 100/100; tiga project berbeda, wajib tiga fase (partner/a/b) |
2026-08-05 |
| GSP375 | Share Data using Google Data Cloud: Challenge Lab | gsp375.sh | docs/gsp375.md | Terverifikasi 100/100, tapi script maks 80/100 — visualisasi Looker Studio wajib manual | 2026-08-05 |
| GSP1043 | Consuming Customer Specific Datasets from Data Sharing Partners | gsp1043.sh | docs/gsp1043.md | Terverifikasi, skor 100/100; tiga project, empat fase (partner/publisher/customer/insert) |
2026-08-05 |
| GSP1042 | Analytics as a Service for Data Sharing Partners | gsp1042.sh | docs/gsp1042.md | Terverifikasi 100/100, tapi script maks 80/100 — dua dashboard Looker Studio wajib manual | 2026-08-05 |
| GSP510 | Manage Kubernetes in Google Cloud: Challenge Lab | gsp510.sh | docs/gsp510.md | Terverifikasi, skor 100/100 (dua perbaikan terakhir belum diuji ulang sekali jalan); nama diacak per instance | 2026-08-05 |
| GSP207 | Dataflow: Qwik Start - Python | gsp207.sh | docs/gsp207.md | Terverifikasi, skor 100/100 (asia-southeast1); jalannya lama, 10-15 menit | 2026-08-21 |
| GSP211 | Create and Configure Multiple VPC Networks | gsp211.sh | docs/gsp211.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-09 |
| GSP213 | Control Access to VPC Networks Using Firewall Rules and IAM | gsp213.sh | docs/gsp213.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-09 |
| GSP281 | Introduction to SQL for BigQuery and Cloud SQL | gsp281.sh | docs/gsp281.md | Terverifikasi, skor 100/100 sekali jalan | 2026-10-27 |
| GSP351 | Migrate MySQL Data to Cloud SQL Using DMS: Challenge Lab | gsp351.sh | docs/gsp351.md | Terverifikasi, skor 100/100 (us-central1), dua fase; destination existing wajib demote-destination dulu |
2026-08-22 |
| GSP903 | Stream Processing with Cloud Pub/Sub and Dataflow: Qwik Start | gsp903.sh | docs/gsp903.md | Terverifikasi, skor 100/100 (us-central1), dua fase | 2026-08-21 |
| GSP976 | Optimizing Applications Using Cloud Profiler | gsp976.sh | docs/gsp976.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-10 |
| ARC110 | Create a Streaming Data Lake on Cloud Storage: Challenge Lab | arc110.sh | docs/gsp903.md | Terverifikasi, skor 100/100 (us-central1); turunan gsp903.sh, runbooknya dipakai bersama | 2026-08-21 |
| ARC106 | Streaming Analytics into BigQuery: Challenge Lab | arc106.sh | docs/arc106.md | Belum diuji sendiri; turunan solusi yang terbukti 100/100, dua template Dataflow (Flex + klasik) | 2026-09-08 |
| ARC129 | Secure Lakehouse Data: Challenge Lab | arc129.sh | docs/arc129.md | Lolos via |
2026-09-08 |
| ARC134 | Configure Service Accounts and IAM Roles for Google Cloud: Challenge Lab | arc134.sh | docs/arc134.md | Terverifikasi 100/100 | - |
| GSP338 | Monitor and Log with Google Cloud Observability: Challenge Lab | gsp338.sh | docs/gsp338.md | Fix (gsp338_fix.sh) terpakai di lab sungguhan: Task 3 filter regex + Task 4 /0 → hijau; gsp338.sh penuh belum diuji sekali jalan | 2026-09-08 |
| ARC131 | Using the Google Cloud Speech API: Challenge Lab | arc131.sh | docs/arc131.md | Terverifikasi 100/100, tapi checkpoint API key butuh key ber-restriction (lihat runbook); Task 2-3 otomatis penuh | 2026-08-21 |
| ARC112 | Deploy and Manage Applications on Google App Engine: Challenge Lab | arc112.sh | docs/arc112.md | Terverifikasi, skor 100/100 (us-east4), dua fase; kerjanya di VM lab-setup lewat SSH | 2026-08-21 |
| GSP095 | Pub/Sub: Qwik Start - Command Line | gsp095.sh | docs/gsp095.md | Terverifikasi, skor 100/100 sekali jalan; revisi idempotensi belum diuji ulang | 2026-08-21 |
| GSP096 | Pub/Sub: Qwik Start - Console | gsp096.sh | docs/gsp096.md | Terverifikasi, skor 100/100 sekali jalan | 2026-10-27 |
| GSP401 | Cloud Scheduler: Qwik Start | gsp401.sh | docs/gsp401.md | Terverifikasi, skor 100/100 (10/10 pts) sekali jalan | 2026-10-27 |
| GSP1089 | Cloud Run Functions: Qwik Start | gsp1089.sh | - | Terverifikasi, skor 100/100; min-instances dan concurrency wajib lewat gcloud run services update (CPU 1000m) |
2026-07-31 |
| ARC104 | Build Serverless Applications with Cloud Run Functions: Challenge Lab | arc104.sh | - | Terverifikasi, skor 100/100 sekali jalan | 2026-07-31 |
| GSP659 | Deploy Your Website on Cloud Run | gsp659.sh | docs/gsp659.md | Terverifikasi, skor 100/100 (us-west1), dua fase | 2026-08-21 |
| GSP694 | gcloud for Network Configuration | gsp694.sh | docs/gsp694.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-10 |
| GSP156 | Terraform Fundamentals | gsp156.sh | docs/gsp156.md | Terverifikasi, skor 100/100 (debian-12, us-east1-c) | 2026-11-09 |
| GSP413 | Creating a Data Warehouse Through Joins and Unions | gsp413.sh | docs/gsp413.md | Belum diuji | - |
| GSP1158 | Assessing Data Quality with Knowledge Catalog | gsp1158.sh | docs/gsp1158.md | Belum diuji, maks 60/100 (Task 2 & 5 wajib manual) | - |
| GSP048 | Transkripsi Speech-to-Text dengan Speech-to-Text API | gsp048.sh | docs/gsp048.md | Belum diuji; API key wajib dibuat manual di console | - |
| GSP1282 | Enabling Sensitive Data Protection Discovery for BigQuery | gsp1282.sh | docs/gsp1282.md | Manual 100/100; script 80/100 (Task 4 ditolak) — tag dataset kini lewat bq update --add_tags, belum diverifikasi |
2026-07-31 |
| GSP297 | Cloud Storage: Bucket Lock | gsp297.sh | docs/gsp297.md | Terverifikasi, skor 100/100, Task 6 (hapus bucket) sengaja manual | 2026-07-31 |
| GENAI129 | Deploy an Agent with ADK: Challenge Lab | genai129.sh | docs/genai129.md | Terverifikasi, skor 100/100, enam fase, Task 6 (chat di UI) manual | 2026-08-01 |
| GSP539 | Build Global and Regional Load Balancing Solutions: Challenge Lab | gsp539.sh | docs/gsp539.md | Belum diuji; Task 1-2 penuh otomasi, Task 3 stop/start nginx via SSH | - |
| GSP540 | Engineer AI Agents with ADK: Challenge Lab | gsp540.sh | docs/gsp540.md | Terverifikasi, skor 100/100 sekali jalan, Task 2 dan 5 (chat di Dev UI) manual | 2026-08-01 |
| GSP529 | Develop AI-Powered Prototypes in Google AI Studio: Challenge Lab | - | docs/gsp529.md | Tidak bisa di-script (100% UI AI Studio); runbook prompt terverifikasi 100/100, semua prompt jadi sekali jalan | 2026-08-02 |
| ARC120 | The Basics of Google Cloud Compute: Challenge Lab | arc120.sh | - | Terverifikasi, skor 100/100 sekali jalan, tanpa SSH (NGINX lewat startup-script) | 2026-08-02 |
| ARC111 | Implement Cloud Storage and Data Protection Solutions: Challenge Lab | arc111.sh | docs/arc111.md | Terverifikasi 100/100 di dua varian: form-3 (2026-08-02) dan form-1 (2026-08-21); nama bucket diacak per instance, wajib diisi lewat B1/B2/B3 plus FORM |
2026-08-21 |
| ARC100 | Store, Process, and Manage Data on Google Cloud: Challenge Lab | arc100.sh | docs/arc100.md | Terverifikasi, skor 100/100 (us-east1); nama topic diacak per instance, wajib diisi lewat TOPIC |
2026-08-21 |
| ARC102 | Store, Process, and Manage Data on Google Cloud - Command Line: Challenge Lab | arc102.sh | docs/arc102.md | Terverifikasi, skor 100/100 (us-east1); gen1 wajib (imagemagick), nama topic diacak lewat TOPIC |
2026-08-22 |
| ARC109 | Deploy and Secure Serverless APIs with API Gateway: Challenge Lab | arc109.sh | docs/arc109.md | Terverifikasi, skor 100/100 sekali jalan | 2026-08-04 |
| ARC115 | Monitoring in Google Cloud: Challenge Lab | arc115.sh | docs/arc115.md | Terverifikasi, skor 100/100 sekali jalan | 2026-08-04 |
| ARC117 | Organize and Govern Data with Knowledge Catalog: Challenge Lab | arc117.sh | docs/arc117.md | Terverifikasi, skor 100/100; tempel aspect ke zone wajib lewat UI (zone tidak ada di @dataplex, sama seperti GSP514) |
2026-08-06 |
| ARC130 | Analyze Sentiment with Natural Language API: Challenge Lab | arc130.sh | docs/arc130.md | Terverifikasi, skor 100/100; Task 3-4 otomatis, Task 1-2 manual | 2026-08-04 |
| ARC132 | Implement Speech and Language Solutions with Pre-trained APIs: Challenge Lab | arc132.sh | - | Terverifikasi, skor 100/100; Task 2-5 otomatis (scp + ssh ke lab-vm), Task 1 wajib bikin API key lewat console — key buatan gcloud tidak diterima grader |
2026-08-02 |
| ARC114 | Analyze Speech and Language with Google APIs: Challenge Lab | arc114.sh | docs/arc114.md | Terverifikasi 100/100 lewat jalur manual (langkah penuh di runbook); script otomasi maks 75/100 — Task 4 dikerjakan manual di lab-vm | 2026-09-08 |
| ARC113 | Implement Event-Driven Messaging and Automation Workflows: Challenge Lab | arc113.sh | docs/arc113.md | Terverifikasi, skor 100/100 sekali jalan (varian schema + topic + Cloud Run function). Varian task lain (Scheduler, snapshot, Lite) belum ditulis | 2026-10-27 |
| GSP329 | Use Machine Learning APIs on Google Cloud: Challenge Lab | gsp329.sh | docs/gsp329.md | Terverifikasi, skor 100/100; semua task otomatis. Dua role dari instruksi lab tidak cukup — wajib roles/serviceusage.serviceUsageConsumer juga |
2026-08-10 |
| GSP364 | Monitor Environments with Managed Service for Prometheus: Challenge Lab | gsp364.sh | docs/gsp364.md | Terverifikasi, skor 100/100 sekali jalan; semua task otomatis, PodMonitoring ditambahkan sendiri (tidak ada di example-app.yaml) | 2026-08-10 |
| GSP395 | Create and Manage AlloyDB Instances: Challenge Lab | gsp395.sh | docs/gsp395.md | Terverifikasi, skor 100/100 (us-west1); SQL dijalankan lewat SSH ke VM alloydb-client (private IP tidak terjangkau Cloud Shell) |
2026-08-10 |
| GSP1048 | Cloud Spanner - Database Fundamentals | gsp1048.sh | docs/gsp1048.md | Terverifikasi, skor 100/100 | 2026-08-03 |
| GSP1049 | Cloud Spanner - Loading Data and Performing Backups | gsp1049.sh | docs/gsp1049.md | Terverifikasi, skor 100/100; ada jeda klik checkpoint sebelum tahap Dataflow | 2026-08-03 |
| GSP1050 | Spanner - Defining Schemas and Understanding Query Plans | gsp1050.sh | docs/gsp1050.md | Terverifikasi, skor 100/100 | 2026-08-03 |
| GSP381 | Create and Manage Cloud Spanner Instances: Challenge Lab | gsp381.sh | docs/gsp381.md | Terverifikasi, skor 100/100 | 2026-08-03 |
| GSP382 | Mitigate Threats and Vulnerabilities with Security Command Center: Challenge Lab | gsp382.sh | docs/gsp382.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-10 |
| GSP752 | Manage Terraform State | gsp752.sh | docs/gsp752.md | Terverifikasi, skor 100/100 (us-west1) | 2026-11-09 |
| GSP1124 | Get Started with Security Command Center | gsp1124.sh | docs/gsp1124.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-10 |
| GSP1125 | Detect and Investigate Threats with Security Command Center | gsp1125.sh | docs/gsp1125.md | Terverifikasi, skor 60/60 (us-central1) | 2026-11-10 |
| GSP1164 | Analyze Findings with Security Command Center | gsp1164.sh | - | Belum diuji | - |
| GSP1077 | Google Kubernetes Engine Pipeline using Cloud Build | gsp1077.sh | docs/gsp1077.md | Belum diuji; tiga fase, gh auth login + install Cloud Build GitHub App wajib manual |
- |
| GSP183 | App Dev: Setting up a Development Environment - Python | gsp183.sh | docs/gsp183.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-10 |
| GSP185 | App Dev: Storing Image and Video Files in Cloud Storage - Python | gsp185.sh | docs/gsp185.md | Terverifikasi, skor 100/100 sekali jalan | 2026-11-10 |
| GSP190 | IAM Custom Roles | gsp190.sh | docs/gsp190.md | Terverifikasi, skor 100/100; keenam checkpoint diklik sekaligus di akhir | 2026-08-07 |
| GSP192 | Dataflow: Qwik Start - Templates | gsp192.sh | docs/gsp192.md | Terverifikasi, skor 100/100 sekali jalan | 2026-10-27 |
| GSP199 | Service Accounts and Roles: Fundamentals | gsp199.sh | docs/gsp199.md | Terverifikasi, skor 100/100 (us-east4) | 2026-11-10 |
| GSP647 | Configuring IAM Permissions with gcloud | gsp647.sh | docs/gsp647.md | Terverifikasi, skor 100/100; sinkronisasi VM via IAP SSH atau fallback fase vm |
2026-11-10 |
| GSP526 | Privileged Access with IAM: Challenge Lab | gsp526.sh | docs/gsp526.md | Terverifikasi, skor 100/100; empat fase, dua di antaranya di Cloud Shell milik user kedua | 2026-08-07 |
| GSP499 | User Authentication: Identity-Aware Proxy | gsp499.sh | docs/gsp499.md | Belum diuji; nol langkah Console (IAP diatur lewat gcloud) | - |
| GSP1317 | Establish VPC to VPC Connectivity using NCC | gsp1317.sh | docs/gsp1317.md | Terverifikasi, skor 100/100 sekali jalan; dua fase, Task 6 (hapus hub/spoke) terpisah | 2026-08-07 |
| GSP1331 | Request Temporary Elevated Access with Privileged Access Manager | gsp1331.sh | docs/gsp1331.md | Terverifikasi, skor 100/100; Task 1-3 dan request otomatis, approve oleh Secondary User | 2026-11-10 |
| GSP528 | Connecting Cloud Networks with NCC: Challenge Lab | gsp528.sh | docs/gsp528.md | Terverifikasi, skor 100/100; dua fase (satu VPC cuma boleh nempel ke satu hub), nama resource dideteksi sendiri | 2026-08-07 |
| GSP393 | Implement CI/CD Pipelines on Google Cloud: Challenge Lab | gsp393.sh | docs/gsp393.md | Terverifikasi, skor 100/100; dua fase, rollback tidak boleh diberi --rollout-id kustom |
2026-08-08 |
| GSP1079 | Continuous Delivery with Google Cloud Deploy | gsp1079.sh | docs/gsp1079.md | Belum diuji; satu fase, 18-25 menit (tiga cluster GKE) | - |
| GSP319 | Build a Website on Google Cloud: Challenge Lab | gsp319.sh | docs/gsp319.md | Terverifikasi, skor 100/100 sekali jalan; nama image dan cluster diacak per instance | 2026-08-10 |
| GSP321 | Develop your Google Cloud Network: Challenge Lab | gsp321.sh | docs/gsp321.md | Terverifikasi, skor 100/100 sekali jalan | 2026-10-27 |
| GSP330 | Implement DevOps Workflows in Google Cloud: Challenge Lab | gsp330.sh | - | Belum diuji; lima fase, Task 3 (dua Cloud Build trigger) dan gh auth login wajib manual |
- |
| GSP527 | Kickstarting Application Development with Gemini Code Assist: Challenge Lab | gsp527.sh | - | Dijalankan di lab sungguhan 2026-08-10 (dari situ ketahuan lab tidak men-deploy backend ke Cloud Run), skor akhir belum tercatat | 2026-08-10 |
| GSP1063 | Finding Data in Google Sheets | - | docs/gsp1063.md | Tidak bisa di-script (100% Google Sheets); runbook terverifikasi 100/100 sekali jalan | 2026-08-07 |
| GSP1062 | Validate Data in Google Sheets | - | docs/gsp1062.md | Tidak bisa di-script (100% Google Sheets); runbook terverifikasi 100/100 — Task 1 wajib hijau penuh sebelum Task 3 | 2026-08-08 |
| ARC126 | Develop with Apps Script and AppSheet: Challenge Lab | - | docs/arc126.md | Tidak bisa di-script (AppSheet + Apps Script + Chat, semuanya UI); runbook terverifikasi 100/100 | 2026-08-08 |
| ARC133 | Integrate BigQuery Data and Google Workspace using Apps Script: Challenge Lab | - | docs/arc133.md | Tidak bisa di-script (Apps Script + Sheets + Connected Sheets, semuanya UI); runbook turunan solusi komunitas, belum diverifikasi | - |
| GSP1146 | Develop No-Code Chat Apps with AppSheet | - | docs/gsp1146.md | Tidak bisa di-script (UI AppSheet + Google Chat); runbook belum diuji langsung, tapi alurnya sama dengan ARC126 | - |
| GSP327 | Engineer Data for Predictive Modeling with BigQuery ML: Challenge Lab | gsp327.sh | docs/gsp327.md | Terverifikasi, skor 100/100; nilai per-instance ditanya di awal (nama tabel, kolom target, threshold); semua task jalan di BigQuery via REST API curl |
2026-09-09 |
Tiap lab punya runbook di docs/ berisi urutan perintah, nilai yang harus muncul sebagai sanity check, dan troubleshooting. Baca runbook-nya dulu sebelum jalan, terutama GSP340 (parameter acak) dan GSP1143 (dua fase).
Keterangan status:
- Terverifikasi berarti script pernah dijalankan sampai selesai di lab instance sungguhan dan semua checkpoint hijau, dengan skor yang tercatat di kolom yang sama.
- Belum diuji berarti script lolos pemeriksaan syntax dan
shellcheck, tapi belum pernah dijalankan di lab instance sungguhan. - Satu varian task khusus untuk challenge lab: script terbukti 100% pada varian task yang tercatat di file, tapi karena tasknya diacak per instance, varian lain bisa butuh penyesuaian variabel.
Lab dites ulang saat Google memperbarui materinya. Kolom "Terakhir diuji" menunjukkan kapan verifikasi terakhir dilakukan, jadi kalau tanggalnya sudah lama sementara lab-nya baru saja diupdate, anggap statusnya perlu dikonfirmasi ulang.
bash test/run.sh # semua script
bash test/run.sh gsp416.sh # satu scriptTiga lapis: bash -n, shellcheck -S error, lalu dry-run — script benar-benar dijalankan,
tapi gcloud, bq, gsutil, kubectl, terraform, curl, dan git diganti stub di
test/stubs.sh yang mencatat tiap panggilan dan menjawab dengan data berbentuk masuk akal.
Yang ditangkap: syntax, variabel kosong yang kena set -u, urutan langkah salah, loop tak
berbatas, dan cabang yang tidak pernah tercapai. Yang tidak ditangkap: apakah flagnya benar
menurut API sungguhan, dan apakah checkpoint jadi hijau. Dua hal itu cuma bisa dibuktikan di lab
instance sungguhan, jadi status "Terverifikasi" di tabel atas tetap datang dari sana, bukan dari
harness ini.
Status NEED-NET berarti script mati karena stub tidak benar-benar mengunduh apa pun, jadi
cd ke direktori hasil git clone/gsutil cp gagal. Itu batas harness, bukan bug script.
Cakupan repo ini terhadap katalog Arcade ada di docs/coverage.md.
Selain lab, program Arcade kadang menawarkan tugas bonus yang dikerjakan di akun Google Cloud pribadi. Status GEAR Mini-Project per 2026-09-18: agent berhasil merespons dan form terkirim, menunggu verifikasi. Billing sudah aktif setelah prabayar Rp 500rb; API dan izin verifier sudah aktif. Hasil verifikasi dan poin belum dikonfirmasi.
Challenge lab memilih task secara acak per instance, ditandai teks Dynamically selected task will show up here... di halaman labnya. Nama dataset, tabel, dan kolom berbeda tiap peserta, jadi script statis bisa salah parameter.
gsp340.sh tetap disertakan, tapi semua nilai yang bisa berubah dikumpulkan di satu blok variabel di awal file. Cocokkan blok itu dengan teks task di lab-mu sebelum menjalankan. Kalau nama datasetnya beda, ubah variabelnya, jangan query di bawahnya.
Lab berbasis Console menilai artefak yang dibuat lewat UI, bukan resource yang bisa dibuat lewat API. Contoh terdokumentasi: GSP1154 (Getting Started with Agent Studio) — runbook lengkapnya di docs/gsp1154.md.
gsp1154.sh ada di repo ini tapi sudah terbukti menghasilkan 0 poin, dan sengaja tidak dimasukkan ke tabel di atas. Dites di lab instance sungguhan pada 2026-07-17: skor 0/5.
Yang menarik, kegagalannya bukan karena scriptnya error. Task 1, 2, dan 3 jalan tuntas, API-nya merespons, isinya sesuai lab — dan tetap 0 poin. Pesan checkpoint-nya yang menjelaskan kenapa:
Please create the 'Insurance Risk Factor Identification' prompt to see the 'Compare' feature
Please run the prompt to generate an image with 'Nano Banana 2'
Yang dicari checkpoint adalah prompt tersimpan dengan nama tertentu di Agent Studio, app Cloud Run hasil "Deploy as app", dan media hasil generate di Media Studio. Memanggil Vertex AI API dengan isi prompt yang sama persis tidak meninggalkan satu pun artefak itu. Jadi asumsi "checkpoint melihat jejak pemakaian API di project" salah, dan tidak ada tambalan kecil yang bisa memperbaikinya.
Pelajarannya untuk lab lain: kalau checkpoint menyebut nama artefak UI, otomasi lewat API tidak akan menghasilkan poin — sebanyak apa pun API call yang sukses. Kerjakan manual, GSP1154 cuma ~15 menit klik.
Script-nya tetap disimpan sebagai pendamping belajar: dia menjalankan semua prompt lab lewat API sekaligus, jadi bisa dipakai membandingkan efek temperature, top-P, few-shot, dan Flash lawan Pro tanpa mengklik satu-satu. Bukan pengganti lab-nya.
Catatan lain dari pengujian itu, kalau nanti ada yang meneruskan:
- Model di lab:
gemini-3.5-flashdangemini-2.5-pro(pasangannya memang terbalik, Flash-nya lebih baru). Keduanya valid di endpointglobal. - Gemini 3 pakai
thinkingConfig.thinkingLevel(enum, mis.MINIMAL), bukanthinkingBudget(angka) seperti generasi 2.x. gemini-2.5-progampang kena429 Resource has been exhausteddi project lab.- Akun student lab tidak punya izin
serviceusage, jadi jangan panggilgcloud services enable— Qwiklabs sudah meng-enable API-nya sejak provisioning. - Task 5 di materi terbaru pakai Nano Banana 2, bukan Imagen 4 seperti yang masih tertulis di teks tugas.
Script ini mengerjakan bagian yang di-score lewat Check my progress, yaitu pembuatan dataset, load tabel, dan eksekusi query. Yang tetap harus dikerjakan manual:
- Soal pilihan ganda. Tidak ada API-nya, harus diklik sendiri di halaman lab.
- Langkah yang murni baca UI. Contohnya GSP416 Task 5, cuma star
bigquery-public-datalalu lihat schema. Tidak ada yang di-score di situ. - Query yang sengaja dibuat error. Beberapa lab menyuruh menjalankan query yang pasti gagal supaya kamu lihat pesan errornya. Ini dilewat karena
set -euo pipefailakan menghentikan script. Jalankan manual di UI kalau ingin melihatnya.
- Script dibuat idempoten (
mk -f,load --replace), jadi aman diulang kalau gagal di tengah. - Location dikunci ke
USkarena dataset publik sepertidata-to-insightsdanbigquery-public-dataada di US, dan BigQuery menolak query lintas-location. - Project diambil dari
$DEVSHELL_PROJECT_ID(otomatis terisi di Cloud Shell), fallback kegcloud config get-value project.
Pola curl ... | bash menjalankan kode dari internet tanpa kamu baca dulu. Untuk repo ini kodenya milik sendiri, tapi biasakan tetap baca isinya, apalagi kalau kamu fork atau ada orang lain yang punya akses tulis ke repo ini.
Script ini dibuat untuk belajar. Kalau langsung dijalankan tanpa mengikuti materinya, kamu dapat centang hijau tapi tidak dapat ilmunya.
Jalankan perintah one-liner berikut langsung di Cloud Shell:
ZONE=us-central1-f curl -sL https://raw.githubusercontent.com/ravi-arnan/gsp_lab_solutions/main/gsp093.sh | bashAtau unduh terlebih dahulu dan jalankan:
curl -sLO https://raw.githubusercontent.com/ravi-arnan/gsp_lab_solutions/main/gsp093.sh
bash gsp093.shSetelah selesai, klik Check my progress untuk kedua checkpoint:
- Task 1: Create a virtual machine instance (50 pts)
- Task 2: RDP into the Windows Server (50 pts)
Kuis pilihan ganda di halaman modul lab:
- "We can create a Windows instance in Google Cloud by changing its ____ in the VM instance console." ->
Boot disk to Windows image - "Which command is used to check whether the server is ready for an RDP connection?" ->
gcloud compute instances get-serial-port-output