Dapatkan akses ke 700+ lab dan kursus

Memodernisasi Aplikasi dengan Apigee X

Lab 1 jam 30 menit universal_currency_alt 5 Kredit show_chart Menengah
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Dapatkan akses ke 700+ lab dan kursus

GSP842

Logo lab mandiri Google Cloud

Ringkasan

Platform Apigee API Google Cloud dapat digunakan untuk memodernisasi aplikasi yang ada dengan menambahkan fungsi baru ke API yang Anda miliki.

Di lab ini, Anda akan men-deploy layanan backend di Cloud Run. Layanan backend menerapkan REST API yang menyimpan dan mengambil data bank (nasabah, rekening, ATM, dan transaksi) dalam database Firestore. Anda akan membuat proxy Apigee API yang melakukan proxy layanan backend. Anda juga akan membuat alur bersama yang mengambil dan meng-cache konten dari layanan eksternal. Kemudian, Anda akan memanggil alur bersama tersebut dari proxy API dan menggunakan kode JavaScript untuk mengubah respons API.

Tujuan

Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Men-deploy layanan backend di Cloud Run
  • Melakukan proxy layanan backend menggunakan proxy Apigee X
  • Membuat alur bersama untuk fungsi yang dapat digunakan oleh beberapa proxy
  • Menyimpan data konfigurasi dalam property set
  • Menggunakan kebijakan service callout untuk mengambil konten dari layanan lain
  • Menggunakan kebijakan cache untuk meng-cache informasi yang dapat digunakan kembali
  • Menggunakan kode JavaScript untuk mengubah payload respons

Penyiapan

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

  1. 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
  2. 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.
  3. 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.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab Details.

  6. 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.
  7. 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. Ikon Navigation menu dan 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.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. 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.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (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. Men-deploy layanan backend di Cloud Run

Di tugas ini, Anda akan men-deploy layanan backend di Cloud Run.

Layanan ini menerapkan API untuk SimpleBank. API ini memberikan representasi sederhana dari bank, mencakup data nasabah, rekening, transaksi, dan ATM. Layanan SimpleBank dibangun menggunakan Node.js dengan data yang disimpan di Firestore. Kode programnya dikemas dalam container Docker, dan container ini di-deploy ke Cloud Run.

Membuat clone repositori kode

  1. Untuk membuat clone repositori yang berisi kode untuk layanan SimpleBank, jalankan perintah berikut di Cloud Shell:

    git clone --depth 1 https://github.com/GoogleCloudPlatform/training-data-analyst
  2. Buat link simbolis ke direktori kerja:

    ln -s ~/training-data-analyst/quests/develop-apis-apigee ~/develop-apis-apigee
  3. Untuk berpindah ke direktori yang berisi backend REST, jalankan perintah berikut:

    cd ~/develop-apis-apigee/rest-backend
  4. Untuk mengupdate region dalam file konfigurasi, jalankan perintah berikut:

    sed -i "s/us-west1/{{{ project_0.default_region | "REGION" }}}/g" config.sh

Melakukan inisialisasi project

Skrip inisialisasi project, init-project.sh, akan mengaktifkan API dalam project. API ini diperlukan untuk men-deploy layanan Cloud Run.

Database untuk layanan ini akan menggunakan Firestore dalam mode Native. Satu project dapat menghosting satu database Firestore dalam mode Native atau mode Datastore. Skrip ini akan membuat database Firestore dalam mode Native.

  1. Untuk melihat perintah yang dijalankan oleh skrip init-project.sh, masukkan perintah berikut:

    cat init-project.sh

    Skrip tersebut akan mengaktifkan API dan membuat database Firestore dalam mode Native.

  2. Untuk menjalankan skrip, masukkan perintah berikut:

    ./init-project.sh

Klik Periksa progres saya untuk memverifikasi tujuan. Mengaktifkan Cloud Run API dan membuat database Firestore

Melakukan inisialisasi layanan

Skrip inisialisasi layanan, init-service.sh, membuat akun layanan dengan nama simplebank-rest. Akun layanan ini digunakan sebagai identitas untuk layanan Cloud Run. Akun layanan diberikan peran roles/datastore.user, yang memungkinkan layanan membaca dan mengupdate data di Firestore.

Sebaiknya buat akun layanan untuk layanan yang Anda buat, dan berikan izin ke akun tersebut menggunakan prinsip hak istimewa terendah. Prinsip ini menyatakan bahwa akun hanya boleh memiliki hak istimewa yang benar-benar diperlukan untuk menjalankan fungsi uniknya.

  1. Untuk melihat perintah yang dijalankan oleh skrip init-service.sh, masukkan perintah ini:

    cat init-service.sh

    Skrip ini akan membuat akun layanan yang digunakan oleh layanan dan menambahkan peran ke akun layanan tersebut.

  2. Untuk menjalankan skrip, masukkan perintah berikut:

    ./init-service.sh

Men-deploy layanan backend

Skrip deploy, deploy.sh, membangun aplikasi layanan Simplebank menggunakan kode yang ada di direktori saat ini dan men-deploy layanan tersebut ke Cloud Run menggunakan akun layanan simplebank-rest. Skrip deploy akan dijalankan tiap kali Anda mengupdate kode aplikasi.

Layanan ini di-deploy agar hanya dapat diakses dengan sistem autentikasi, sehingga Anda tidak dapat memanggil layanan tanpa token identitas OpenID Connect yang valid.

  1. Di Cloud Shell, untuk melihat perintah yang dijalankan oleh skrip deploy.sh, masukkan perintah berikut:

    cat deploy.sh

    Skrip ini akan membangun dan men-deploy layanan simplebank-grpc ke Cloud Run.

Catatan: Skrip deploy menggunakan parameter max-instances untuk membatasi jumlah instance dalam cluster Cloud Run menjadi 1. Untuk layanan produksi di dunia nyata, Anda sebaiknya tidak menetapkan batas serendah ini.
  1. Untuk men-deploy skrip ke Cloud Run, masukkan perintah berikut:

    ./deploy.sh

Klik Periksa progres saya untuk memverifikasi tujuan. Men-deploy layanan backend

Menguji layanan

  1. Untuk memverifikasi bahwa layanan sedang berjalan, buat permintaan curl yang memanggil layanan berikut:

    export RESTHOST=$(gcloud run services describe simplebank-rest --platform managed --region {{{project_0.default_region |REGION}}} --format 'value(status.url)') echo "export RESTHOST=${RESTHOST}" >> ~/.bashrc curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" -X GET "${RESTHOST}/_status"

    Perintah yang menetapkan variabel RESTHOST menggunakan gcloud untuk mengambil nama host layanan Cloud Run simplebank-rest. Kemudian, variabel ini akan ditambahkan ke file .bashrc, yang akan menyebabkan variabel RESTHOST dimuat ulang jika Cloud Shell dimulai ulang.

    Perintah GET /_status akan mengembalikan respons JSON yang menunjukkan bahwa API sudah aktif dan berjalan. Dalam panggilan ini, Anda menggunakan gcloud auth print-identity-token untuk mendapatkan token identitas OpenID Connect bagi pengguna yang login ke Cloud Shell. Anda login dengan peran project owner, dan project owner memiliki izin yang sangat luas.

  2. Untuk memverifikasi bahwa layanan dapat menulis ke Firestore, buat permintaan curl berikut yang membuat data nasabah:

    curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" -H "Content-Type: application/json" -X POST "${RESTHOST}/customers" -d '{"lastName": "Diallo", "firstName": "Temeka", "email": "temeka@example.com"}'

    Perintah POST /customers akan membuat data nasabah. Semua parameter lastName, firstName, dan email wajib diisi. Alamat email harus bersifat unik dan digunakan sebagai ID nasabah. Kumpulan data nasabah akan disimpan di Firestore.

    Catatan: Jika Anda menerima error "AlreadyExist", hal ini dapat menunjukkan bahwa Anda belum berhasil membuat database Firestore. Database ini dibuat dengan menjalankan skrip init-project.sh.
  3. Untuk memverifikasi bahwa layanan dapat membaca dari Firestore, buat permintaan curl berikut untuk mengambil data nasabah yang baru saja dibuat:

    curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" -X GET "${RESTHOST}/customers/temeka@example.com"

    Perintah GET /customers/ mengambil data nasabah dari Firestore.

  4. Untuk memuat beberapa data sampel tambahan ke Firestore, masukkan perintah berikut:

    gcloud firestore import gs://spls/shared/firestore-simplebank-data/firestore/example-data

    Perintah gcloud ini akan menggunakan fitur impor/ekspor Firestore untuk mengimpor data nasabah, akun, dan ATM ke dalam database.

  5. Untuk mengambil daftar ATM, jalankan perintah curl berikut:

    curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" -X GET "${RESTHOST}/atms"
  6. Untuk mengambil data satu ATM, jalankan perintah curl berikut:

    curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" -X GET "${RESTHOST}/atms/spruce-goose"

    Permintaan ini akan mengambil data ATM berdasarkan nama, dan responsnya berisi koordinat lintang dan bujur untuk ATM, tetapi belum menyertakan alamat:

    {"name":"spruce-goose","longitude":-118.408207,"description":"","latitude":33.977601}

    Pada tugas berikutnya, Anda akan menggunakan Apigee dan Geocoding API untuk menambahkan alamat ke respons yang ditampilkan saat mengambil data ATM tertentu.

Tugas 2. Membuat proxy layanan backend dengan proxy Apigee API

Dalam tugas ini, Anda akan membuat proxy Apigee API yang bertindak sebagai facade untuk layanan backend. Proxy API akan menggunakan akun layanan agar dapat menampilkan token identitas OpenID Connect ke layanan Cloud Run.

Membuat akun layanan untuk proxy Apigee API

  1. Untuk membuat akun layanan yang dapat digunakan oleh proxy Apigee API, masukkan perintah berikut:

    gcloud iam service-accounts create apigee-internal-access \ --display-name="Service account for internal access by Apigee proxies" \ --project=${GOOGLE_CLOUD_PROJECT}

    Perintah gcloud ini akan membuat akun layanan bernama apigee-internal-access, yang akan digunakan oleh proxy Apigee Anda saat memanggil layanan backend.

  2. Untuk memberikan peran yang memungkinkan akses ke layanan, masukkan perintah berikut:

    gcloud run services add-iam-policy-binding simplebank-rest \ --member="serviceAccount:apigee-internal-access@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com" \ --role=roles/run.invoker --region={{{project_0.default_region |REGION}}} \ --project=${GOOGLE_CLOUD_PROJECT}

    Perintah gcloud ini memberikan peran roles/run.invoker ke akun layanan terkait untuk layanan Cloud Run simplebank-rest, sehingga akun layanan dapat memanggil layanan terkait.

  3. Untuk mengambil URL layanan backend, gunakan perintah berikut:

    gcloud run services describe simplebank-rest --platform managed --region {{{project_0.default_region |REGION}}} --format 'value(status.url)'

    Simpan URL ini. URL ini akan digunakan saat membuat proxy API.

Klik Periksa progres saya untuk memverifikasi tujuan. Mungkin terdapat penundaan singkat sebelum peran yang diberikan terdeteksi. Membuat akun layanan untuk proxy Apigee API

Membuka konsol Apigee

Untuk membuka konsol Apigee:

  • Di Konsol Google Cloud, di kolom Search, masukkan Apigee, lalu klik Apigee API Management di hasil penelusuran.

Konsol Apigee akan terbuka, dan halaman landing akan menampilkan link cepat ke lokasi yang biasa digunakan.

  • Di Navigation menu (Menu navigasi), di samping Apigee, klik Pin (Ikon pin).

Apigee kini disematkan ke Navigation menu.

Membuat proxy Apigee

  1. Di navigation menu, pilih Proxy development > API proxies.

  2. Untuk membuat proxy baru menggunakan wizard proxy, klik +Create.

    Anda akan membuat reverse proxy untuk layanan backend Anda.

  3. Untuk Proxy template, pilih General template > Reverse proxy (Most common).

    Catatan: Jangan menggunakan pilihan Reverse proxy (Most common) dalam bagian OpenAPI spec template.
  4. Tentukan nilai berikut untuk Proxy details:

    Properti Nilai
    Proxy name bank-v1
    Base path /bank/v1
    Target (Existing API) backend URL
    Catatan: Pastikan Anda menggunakan "/bank/v1" untuk jalur dasar, bukan "/bank-v1".

    Target yang dimaksud harus berupa URL backend yang Anda ambil di langkah sebelumnya, yang akan terlihat seperti ini:

    https://simplebank-rest-mtdtzt7yzq-ue.a.run.app
  5. Klik Next.

  6. Biarkan setelan Deploy (optional) dalam nilai default-nya, lalu klik Create.

Mengonfirmasi bahwa instance runtime telah tersedia

  1. Di Cloud Shell, tempel dan jalankan rangkaian perintah berikut:

    export INSTANCE_NAME=eval-instance; export ENV_NAME=eval; export PREV_INSTANCE_STATE=; echo "waiting for runtime instance ${INSTANCE_NAME} to be active"; while : ; do export INSTANCE_STATE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}" | jq "select(.state != null) | .state" --raw-output); [[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (echo; echo "INSTANCE_STATE=${INSTANCE_STATE}"); export PREV_INSTANCE_STATE=${INSTANCE_STATE}; [[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break; echo -n "."; sleep 5; done; echo; echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\") | .environment" --join-output); [[ "${ATTACHMENT_DONE}" != "${ENV_NAME}" ]] || break; echo -n "."; sleep 5; done; echo "***ORG IS READY TO USE***";

    Rangkaian perintah ini menggunakan Apigee API untuk menentukan kapan instance runtime Apigee dibuat dan lingkungan evaluasi (eval) dihubungkan.

  2. Tunggu hingga instance siap digunakan.

    Saat teks ***ORG IS READY TO USE*** ditampilkan, instance siap digunakan. Organisasi Apigee (org) mungkin telah dibuat sebelum Anda memulai lab, sehingga Anda tidak perlu menunggu proses pembuatan instance.

    Jika Anda sedang menunggu hingga organisasi Apigee siap, Anda dapat mempelajari Apigee lebih lanjut, menjelajahi arsitektur Apigee X, atau mempelajari API dan proxy API.

Men-deploy proxy API

  1. Di navigation menu, pilih Proxy development > API proxies, lalu klik bank-v1.

  2. Klik Deploy.

  3. Untuk Environment, pilih eval.

  4. Untuk Service account, masukkan alamat email akun layanan berikut:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  5. Klik Deploy, lalu klik Confirm.

  6. Tunggu hingga status deployment untuk lingkungan eval menunjukkan bahwa proxy berhasil di-deploy.

Menguji proxy API

Lingkungan eval dalam organisasi Apigee dapat dipanggil menggunakan nama host eval.example.com. Entri DNS untuk nama host ini telah dibuat di dalam project Anda dan diarahkan ke alamat IP dari instance runtime Apigee. Entri DNS ini dibuat di zona pribadi, yang berarti hanya dapat dilihat di jaringan internal.

Karena Cloud Shell tidak berada di jaringan internal, perintah yang dijalankan di Cloud Shell tidak dapat mengenali entri DNS ini. Namun, Virtual machine (VM) dalam project Anda dapat mengakses DNS zona pribadi. Virtual machine bernama apigeex-test-vm telah dibuat secara otomatis. Anda dapat menggunakan mesin ini untuk memanggil proxy API.

  1. Di Cloud Shell, buka koneksi SSH ke VM pengujian Anda:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite

    Perintah gcloud pertama mengambil zona VM pengujian, dan perintah kedua membuka koneksi SSH ke VM tersebut.

  2. Jika diminta untuk memberikan otorisasi, klik Authorize.

    Untuk tiap pertanyaan yang diajukan di Cloud Shell, klik Enter atau Return untuk menentukan input default.

    Identitas yang Anda gunakan untuk login adalah project owner, sehingga SSH ke mesin ini diizinkan.

    Sesi Cloud Shell Anda kini berjalan di dalam VM.

  3. Panggil proxy API bank-v1 yang di-deploy di lingkungan eval:

    curl -i -k "https://eval.example.com/bank/v1/_status"

    Opsi -k digunakan untuk memberi tahu curl agar melewati verifikasi sertifikat TLS. Runtime Apigee di lab ini menggunakan sertifikat yang ditandatangani sendiri, bukan sertifikat yang telah dibuat oleh certificate authority (CA) tepercaya.

    Catatan: Jangan menggunakan opsi -k untuk menghindari verifikasi sertifikat pada kasus penggunaan produksi.

    Jika kode status 403 Forbidden ditampilkan dengan pesan error, hal ini menunjukkan bahwa klien Anda tidak memiliki izin untuk mendapatkan URL. Permintaan ke layanan backend ditolak karena klien tidak menyertakan token yang diperlukan dalam permintaan terkait. Proxy API berjalan dengan identitas yang benar, tetapi Anda tetap perlu memaksa pengiriman token identitas OpenID Connect dalam permintaan.

  4. Kembali ke proxy bank-v1, lalu klik tab Develop.

  5. Di menu kiri untuk proxy, pada bagian Target endpoints > default, klik PreFlow.

  6. Temukan kode berikut (URL Anda mungkin berbeda):

    <HTTPTargetConnection> <Properties/> <URL>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</URL> </HTTPTargetConnection> Catatan: Jika Anda tidak melihat bagian HTTPTargetConnection, pastikan Anda telah mengklik PreFlow di bagian Target endpoints, bukan di bagian Proxy endpoints.
  7. Di dalam bagian HTTPTargetConnection, di bawah elemen URL, tambahkan bagian Authentication seperti ini:

    <Authentication> <GoogleIDToken> <Audience>AUDIENCE</Audience> </GoogleIDToken> </Authentication>
  8. Ganti AUDIENCE dengan nilai URL yang sudah ada di bagian HTTPTargetConnection. Kode Anda kini akan terlihat mirip seperti berikut, kecuali dengan URL spesifik Anda di elemen URL dan Audience:

    <TargetEndpoint name="default"> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <Flows/> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> <HTTPTargetConnection> <Properties/> <URL>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</URL> <Authentication> <GoogleIDToken> <Audience>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</Audience> </GoogleIDToken> </Authentication> </HTTPTargetConnection> </TargetEndpoint>
  9. Klik Save, lalu klik Save As New Revision.

  10. Klik Deploy.

  11. Untuk Environment, gunakan eval.

  12. Untuk Service account, masukkan alamat email akun layanan berikut:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  13. Klik Deploy, lalu klik Confirm.

  14. Klik tab Overview, lalu tunggu hingga status deployment untuk lingkungan eval menunjukkan bahwa revisi baru berhasil di-deploy.

Klik Periksa progres saya untuk memverifikasi tujuan. Membuat proxy Apigee

  1. Jika sesi login SSH Anda telah habis waktunya, jalankan perintah berikut di Cloud Shell untuk menyambung kembali koneksi:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Jalankan kembali perintah status berikut di dalam VM:

    curl -i -k "https://eval.example.com/bank/v1/_status"

    Sekarang, Anda akan melihat respons berhasil (200) seperti ini:

    HTTP/2 200 x-powered-by: Express content-type: application/json; charset=utf-8 etag: W/"41-x4uozCo6q/yN+kzizriXxryNZvc" x-cloud-trace-context: 5c810a7faa3353bcc085473fd58805b7 date: Thu, 11 Nov 2021 22:54:35 GMT server: Google Frontend content-length: 65 x-request-id: cf109193-6d6f-49a1-b323-7f66f63c5e28 via: 1.1 google {"serviceName":"simplebank-rest","status":"API up","ver":"1.0.0"}

    Respons ini menunjukkan bahwa proxy API berhasil memanggil layanan backend.

  3. Masukkan perintah exit untuk keluar dari sesi SSH dan kembali ke Cloud Shell.

Tugas 3. Mengaktifkan penggunaan Google Cloud Geocoding API

Di tugas ini, Anda akan mengaktifkan Geocoding API, yang akan digunakan di proxy API untuk menambahkan informasi alamat ke dalam respons saat mengambil data ATM dari layanan SimpleBank.

  1. Untuk mengaktifkan Geocoding API, jalankan perintah berikut di Cloud Shell:

    gcloud services enable geocoding-backend.googleapis.com

    Selanjutnya, Anda akan membuat kunci API untuk mengakses Geocoding API.

  2. Untuk membuat kunci API, jalankan perintah berikut:

    API_KEY=$(gcloud alpha services api-keys create --project=${GOOGLE_CLOUD_PROJECT} --display-name="Geocoding API key for Apigee" --api-target=service=geocoding_backend --format "value(response.keyString)") echo "export API_KEY=${API_KEY}" >> ~/.bashrc echo "API_KEY=${API_KEY}" Catatan: Jika Anda menerima pesan error yang menunjukkan bahwa properti project diatur ke string kosong, pastikan Anda telah keluar dari sesi SSH VM dan kembali ke Cloud Shell.

    Perintah gcloud membuat kunci API dengan kemampuan untuk mengirim permintaan ke Geocoding API. Dengan menambahkan parameter --format, Anda memilih kolom keyString dari respons dan menyimpannya ke dalam variabel shell API_KEY. Variabel API_KEY ini kemudian disimpan dalam file .bashrc di Cloud Shell.

Klik Periksa progres saya untuk memverifikasi tujuan. Mengaktifkan penggunaan Google Cloud Geocoding API

  1. Untuk mengambil informasi geocoding berdasarkan koordinat lintang dan bujur tertentu, jalankan perintah curl berikut:

    curl "https://maps.googleapis.com/maps/api/geocode/json?key=${API_KEY}&latlng=37.404934,-122.021411"

    Perintah ini memanggil Geocoding API dengan menyertakan kunci API serta koordinat lintang dan bujur yang diinginkan. Responsnya berisi array hasil, yang masing-masing memiliki alamat yang telah diformat. Dalam proxy API Anda, alamat terformat dari hasil pertama akan digunakan untuk menambahkan informasi alamat ke respons API saat mengambil detail untuk data satu ATM.

Tugas 4. Membuat alur bersama untuk memanggil Geocoding API

Di tugas ini, Anda akan membuat alur bersama untuk memanggil Google Geocoding API. Dengan alur bersama, Anda dapat menggabungkan kebijakan dan resource dalam satu alur, sehingga dapat digunakan dari beberapa proxy API atau alur bersama lainnya.

Alur bersama akan menggunakan pola berikut:

CACHE HIT dan CACHE MISS ditampilkan di seluruh langkah Lookup Cache, Service Callout, Extract Variables, dan Populate Cache

Jumlah ATM dalam database kami terbatas, dan koordinat lintang serta bujur ATM tidak berubah. Untuk menghindari panggilan berlebihan ke Geocoding API, alamat yang diambil akan di-cache, menggunakan koordinat lintang dan bujur untuk kunci cache tersebut. Jika alamat tidak ada dalam cache untuk koordinat lintang dan bujur tertentu, Geocoding API akan dipanggil dan alamat yang dikembalikan akan disimpan dalam cache.

Membuat alur bersama

  1. Di navigation menu, pilih Apigee > Proxy development > Shared flows.
  2. Klik +Create.
  3. Atur Name ke get-address-for-location, lalu klik Create.
  4. Klik tab Develop.

Menambahkan kebijakan LookupCache

Kebijakan LookupCache akan mengambil alamat jika alamat sebelumnya telah di-cache.

  1. Di menu kiri untuk alur bersama, pada bagian Shared Flows, klik default.

  2. Di panel sharedflows/default.xml, klik Add policy step (Ikon Add policy step).

  3. Pilih Create new policy.

  4. Untuk bagian Select policy, pilih Traffic Management > Lookup Cache.

  5. Di bagian Details, tentukan nilai berikut:

    Properti Nilai
    Name LC-LookupAddress
    Display Name LC-LookupAddress
  6. Klik Add, lalu klik LC-LookupAddress.

    Kebijakan akan ditambahkan ke dalam alur, dan XML konfigurasi kebijakan akan ditampilkan di panel di bawah alur.

  7. Pastikan konfigurasi LookupCache muncul di panel, lalu ganti konfigurasi LookupCache dengan:

    <LookupCache continueOnError="false" enabled="true" name="LC-LookupAddress"> <CacheResource>AddressesCache</CacheResource> <Scope>Exclusive</Scope> <CacheKey> <KeyFragment ref="geocoding.latitude"/> <KeyFragment ref="geocoding.longitude"/> </CacheKey> <AssignTo>geocoding.address</AssignTo> </LookupCache>

    Kebijakan ini akan mencari entri dalam AddressesCache yang cocok dengan koordinat lintang dan bujur yang ditentukan, dan jika ditemukan, nilainya akan disimpan ke dalam alamat variabel.

Menambahkan kebijakan Service Callout

Kebijakan Service Callout digunakan untuk memanggil Google Geocoding API.

  1. Di menu kiri untuk alur bersama, pada bagian Shared Flows, klik default.

  2. Di panel sharedflows/default.xml, klik Add policy step (Ikon Add policy step).

  3. Pilih Create new policy.

  4. Untuk bagian Select policy, pilih Extension > Service Callout.

  5. Di bagian Details, tentukan nilai berikut:

    Properti Nilai
    Name SC-GoogleGeocode
    Display Name SC-GoogleGeocode
  6. Biarkan kolom Target HTTP tidak berubah, klik Add, lalu klik SC-GoogleGeocode.

  7. Pastikan konfigurasi ServiceCallout muncul di panel, lalu ganti konfigurasi ServiceCallout dengan:

    <ServiceCallout continueOnError="false" enabled="true" name="SC-GoogleGeocode"> <Request> <Set> <QueryParams> <QueryParam name="latlng">{geocoding.latitude},{geocoding.longitude}</QueryParam> <QueryParam name="key">{geocoding.apikey}</QueryParam> </QueryParams> <Verb>GET</Verb> </Set> </Request> <Response>calloutResponse</Response> <HTTPTargetConnection> <URL>https://maps.googleapis.com/maps/api/geocode/json</URL> </HTTPTargetConnection> </ServiceCallout>

    Kebijakan ini memanggil Geocoding API, menggunakan variabel geocoding.latitude, geocoding.longitude, dan geocoding.apikey. Respons panggilan API akan disimpan dalam variabel calloutResponse.

Menambahkan kebijakan ExtractVariables

Kebijakan ExtractVariables akan digunakan untuk mengekstrak alamat yang diformat dari respons Google Geocoding API.

  1. Di menu kiri untuk alur bersama, pada bagian Shared Flows, klik default.

  2. Di panel sharedflows/default.xml, klik Add policy step (Ikon Add policy step).

  3. Pilih Create new policy.

  4. Untuk bagian Select policy, pilih Mediation > Extract Variables.

  5. Di bagian Details, tentukan nilai berikut:

    Properti Nilai
    Name EV-ExtractAddress
    Display Name EV-ExtractAddress
  6. Klik Add, lalu klik EV-ExtractAddress.

  7. Pastikan konfigurasi ExtractVariables muncul di panel, lalu ganti konfigurasi ExtractVariables dengan:

    <ExtractVariables continueOnError="false" enabled="true" name="EV-ExtractAddress"> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <JSONPayload> <Variable name="address"> <JSONPath>$.results[0].formatted_address</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">calloutResponse.content</Source> <VariablePrefix>geocoding</VariablePrefix> </ExtractVariables>

    Kebijakan ini menggunakan JSONPath untuk mengekstrak formatted_address dari hasil pertama dalam payload JSON pesan calloutResponse. Alamat tersebut kemudian disimpan dalam variabel geocoding.address.

Menambahkan kebijakan PopulateCache

Kebijakan PopulateCache akan menyimpan alamat ke dalam cache.

  1. Di menu kiri untuk alur bersama, pada bagian Shared Flows, klik default.

  2. Di panel sharedflows/default.xml, klik Add policy step (Ikon Add policy step).

  3. Pilih Create new policy.

  4. Untuk bagian Select policy, pilih Traffic Management > PopulateCache.

  5. Di bagian Details, tentukan nilai berikut:

    Properti Nilai
    Name PC-StoreAddress
    Display Name PC-StoreAddress
  6. Klik Add, lalu klik PC-StoreAddress.

  7. Pastikan konfigurasi PopulateCache muncul di panel, lalu ganti konfigurasi PopulateCache dengan:

    <PopulateCache continueOnError="false" enabled="true" name="PC-StoreAddress"> <CacheResource>AddressesCache</CacheResource> <Scope>Exclusive</Scope> <Source>geocoding.address</Source> <CacheKey> <KeyFragment ref="geocoding.latitude"/> <KeyFragment ref="geocoding.longitude"/> </CacheKey> <ExpirySettings> <TimeoutInSec>3600</TimeoutInSec> </ExpirySettings> </PopulateCache>

    Kebijakan ini akan menyimpan nilai dari variabel address ke dalam AddressesCache menggunakan fragmen kunci lintang dan bujur yang sama seperti yang digunakan pada kebijakan LookupCache, dan dalam urutan yang sama. Pengaturan ExpirySettings/TimeoutInSec menentukan bahwa data yang disimpan akan di-cache selama 3.600 detik, atau 1 jam.

Melewati kebijakan secara bersyarat

Jika alamat ditemukan dalam cache untuk koordinat lintang dan bujur tertentu (cache ditemukan), kebijakan ServiceCallout, ExtractVariables, dan PopulateCache tidak perlu dijalankan dan harus dilewati.

  1. Di menu kiri untuk alur bersama, pada bagian Shared Flows, klik default.

    Panel Kode berisi default flow, yang mencantumkan empat kebijakan yang telah dilampirkan:

    <SharedFlow name="default"> <Step> <Name>LC-LookupAddress</Name> </Step> <Step> <Name>SC-GoogleGeocode</Name> </Step> <Step> <Name>EV-ExtractAddress</Name> </Step> <Step> <Name>PC-StoreAddress</Name> </Step> </SharedFlow>

    Tiap elemen Step menentukan kebijakan yang telah dilampirkan. Name menunjukkan nama kebijakan yang dilampirkan. Elemen Condition juga dapat ditambahkan untuk menentukan kondisi boolean yang menentukan apakah kebijakan harus dijalankan atau tidak.

    Lihat kembali pola alur bersama di awal tugas. Jika pencarian alamat berhasil dilakukan, pemanggilan layanan atau penyimpanan data kembali dalam cache tidak lagi perlu dilakukan. Dalam hal ini, langkah kebijakan kedua hingga keempat harus dilewati.

    Kebijakan LookupCache menetapkan variabel yang menunjukkan apakah item ditemukan dalam cache. Jika variabel lookupcache.{policyName}.cachehit bernilai salah (false), item tidak ditemukan. Kebijakan pada langkah kedua hingga keempat hanya boleh dijalankan jika tidak terjadi situasi cache ditemukan.

  2. Untuk langkah kedua hingga keempat, tambahkan kondisi berikut di dalam elemen Step:

    <Condition>lookupcache.LC-LookupAddress.cachehit == false</Condition>

    Setelah Anda menambahkan semua kondisi, alur bersama akan terlihat seperti berikut:

    <SharedFlow name="default"> <Step> <Name>LC-LookupAddress</Name> </Step> <Step> <Condition>lookupcache.LC-LookupAddress.cachehit == false</Condition> <Name>SC-GoogleGeocode</Name> </Step> <Step> <Condition>lookupcache.LC-LookupAddress.cachehit == false</Condition> <Name>EV-ExtractAddress</Name> </Step> <Step> <Condition>lookupcache.LC-LookupAddress.cachehit == false</Condition> <Name>PC-StoreAddress</Name> </Step> </SharedFlow>
  3. Klik Save.

  4. Klik Deploy.

  5. Untuk Environment, gunakan eval.

  6. Biarkan kolom Service Account kosong, lalu klik Deploy, dan klik Confirm.

    Alur bersama menggunakan kunci API untuk memanggil Geocoding API, sehingga akun layanan tidak diperlukan.

    Alur bersama hanya dapat diuji dengan memanggilnya dari proxy API.

Klik Periksa progres saya untuk memverifikasi tujuan. Membuat alur bersama untuk memanggil Geocoding API

Tugas 5. Menambahkan alamat ATM saat mengambil data satu ATM

Di tugas ini, Anda akan menambahkan kebijakan FlowCallout ke proxy API untuk memanggil alur bersama yang baru saja dibuat. Saat Anda mengambil data ATM tertentu, proxy API harus mengekstrak nilai lintang dan bujur dari respons layanan Cloud Run dan memanggil alur bersama untuk mendapatkan alamat yang sesuai. Kemudian, kebijakan JavaScript akan menambahkan alamat tersebut ke dalam respons API.

Menambahkan property set untuk kunci API

Property set dapat digunakan untuk menyimpan data yang tidak kedaluwarsa dan dapat diakses dengan mudah dari dalam proxy API. Nilai property set akan menyimpan kunci API.

  1. Pada navigation menu sebelah kiri, pilih Proxy development > API proxies.

  2. Klik bank-v1, lalu pilih tab Develop.

  3. Di menu kiri untuk proxy, pada bagian Resources, klik Add resource (Ikon Add resource).

  4. Pada dropdown Resource type, pilih Property Set.

  5. Untuk Resource name, isi dengan geocoding.properties, lalu klik Add.

  6. Di panel geocoding.properties, tambahkan properti berikut:

    apikey=<APIKEY>
  7. Ganti <APIKEY> dengan API_KEY yang Anda buat di Tugas 3.

  8. Anda dapat mengambil API_KEY menggunakan perintah berikut di Cloud Shell:

    echo ${API_KEY}

    File geocoding.properties Anda akan terlihat seperti ini:

    apikey=AIzaSyC8-B6nt7M240wwZtsxR2O5sb0xznuhQWc

Membuat alur bersyarat

  1. Di menu kiri untuk proxy, pada bagian Proxy endpoints, klik default.

  2. Di panel proxy-endpoints/default.xml, di sebelah Proxy endpoint: default, klik Add conditional flow (Ikon Add conditional flow).

  3. Dalam dialog Add conditional flow, tentukan nilai berikut:

    Properti Nilai
    Flow name GetATM
    Description retrieve a single ATM
    Condition type pilih Path and Verb
    Path /atms/{name}
    Verb pilih GET

    Biarkan kolom Target URL kosong.

  4. Klik Add.

    Proxy API terdiri atas banyak alur. Tiap alur menyediakan lokasi untuk melampirkan kebijakan sebagai langkah. Berikut adalah diagram proxy API:

    Alur permintaan dari Endpoint Proxy ke Endpoint Target, kemudian respons dikembalikan ke Endpoint Proxy

    Konfigurasi alur bersyarat hanya akan dijalankan jika kondisinya benar. Untuk alur bersyarat ini, variabel proxy.pathsuffix harus cocok dengan format /atms/{name}, dan variabel request.verb harus bernilai GET.

    Anda akan melampirkan beberapa kebijakan ke alur bersyarat GetATM sehingga kebijakan tersebut hanya dijalankan untuk permintaan GET /atms/{name}. Kebijakan harus dijalankan setelah layanan backend dipanggil, sehingga kebijakan tersebut harus dilampirkan dalam alur bersyarat Proxy Endpoint Response.

Mengekstrak nilai lintang dan bujur

  1. Di alur Proxy endpoint: default, pada bagian Response, di sebelah kanan GetATM, klik Add Policy Step (Ikon Add policy step).

    Catatan: Pastikan Anda menambahkan langkah ke sisi Response, bukan sisi Request.
  2. Pilih Create new policy.

  3. Untuk bagian Select policy, pilih Mediation > Extract Variables.

  4. Di bagian Details, tentukan nilai berikut:

    Properti Nilai
    Name EV-ExtractLatLng
    Display name EV-ExtractLatLng
  5. Klik Add, lalu klik EV-ExtractLatLng.

  6. Pastikan konfigurasi ExtractVariables muncul di panel, lalu ganti konfigurasi ExtractVariables dengan:

    <ExtractVariables name="EV-ExtractLatLng"> <Source>response</Source> <JSONPayload> <Variable name="latitude"> <JSONPath>$.latitude</JSONPath> </Variable> <Variable name="longitude"> <JSONPath>$.longitude</JSONPath> </Variable> </JSONPayload> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>

    Kebijakan ini mengekstrak nilai lintang dan bujur dari respons JSON GET /atms/{name} yang berasal dari layanan backend. Elemen IgnoreUnresolvedVariables ditetapkan ke true, sehingga menyebabkan pemrosesan tetap berlanjut meskipun nilai lintang dan bujur tidak ditemukan dalam respons.

Memanggil alur bersama

  1. Di alur Proxy endpoint: default, pada bagian Response, di sebelah kanan GetATM, klik Add Policy Step (Ikon Add policy step).

  2. Pilih Create new policy.

  3. Untuk bagian Select policy, pilih Extension > Flow Callout.

  4. Di bagian Details, tentukan nilai berikut:

    Properti Nilai
    Name FC-GetAddress
    Display name FC-GetAddress
    Shared flow pilih get-address-for-location
    Condition latitude != null AND longitude != null

    Jika nilai lintang atau bujur tidak berhasil diambil untuk data ATM, alamat tidak dapat ditentukan, sehingga langkah kebijakan terkait akan dilewati.

  5. Klik Add, lalu klik FC-GetAddress.

  6. Pastikan konfigurasi FlowCallout muncul di panel, lalu ganti konfigurasi FlowCallout dengan:

    <FlowCallout continueOnError="false" enabled="true" name="FC-GetAddress"> <Parameters> <Parameter name="geocoding.latitude">{latitude}</Parameter> <Parameter name="geocoding.longitude">{longitude}</Parameter> <Parameter name="geocoding.apikey">{propertyset.geocoding.apikey}</Parameter> </Parameters> <SharedFlowBundle>get-address-for-location</SharedFlowBundle> </FlowCallout>

    Kebijakan ini menetapkan variabel lintang, bujur, dan apikey sebagai parameter alur bersama dan memanggil alur bersama tersebut. Alur bersama akan menetapkan variabel geocoding.address.

Menambahkan alamat

  1. Di alur Proxy endpoint: default, pada bagian Response, di sebelah kanan GetATM, klik Add Policy Step (Ikon Add policy step).

  2. Pilih Create new policy.

  3. Untuk bagian Select policy, pilih Extension > JavaScript.

  4. Di bagian Details, tentukan nilai berikut:

    Properti Nilai
    Name JS-AddAddress
    Display name JS-AddAddress
    Javascript file pilih Create New Resource
  5. Di bagian Add resource, tentukan nilai berikut:

    Properti Nilai
    Source pilih Create new file
    Resource name addAddress.js
  6. Klik Add, lalu pilih addAddress.js.

  7. Untuk bagian Condition, isikan latitude != null AND longitude != null.

  8. Klik Add, lalu klik JS-AddAddress.

  9. Di menu kiri untuk proxy, pada bagian Resources > jsc, klik addAddress.js.

    Panel kode untuk kode addAddress.js masih kosong.

  10. Tambahkan kode JavaScript berikut untuk menambahkan alamat ke respons:

    // get the flow variable 'geocoding.address' var address = context.getVariable('geocoding.address'); // parse the response payload into the responsePayload object var responsePayload = JSON.parse(context.getVariable('response.content')); try { // add address to the response responsePayload.address = address; // convert the response object back into JSON context.setVariable('response.content', JSON.stringify(responsePayload)); } catch(e) { // catch any exception print('Error occurred when trying to add the address to the response.'); }

    Kode ini akan mengurai payload respons JSON menjadi objek, menambahkan kolom alamat ke objek, mengonversi objek kembali menjadi string JSON, lalu menyimpannya dalam respons.

    Blok try/catch digunakan agar pengecualian tidak keluar dari kebijakan JavaScript. Kesalahan akan muncul jika pengecualian tidak ditangani, yang menyebabkan pemrosesan proxy API terhenti.

Memvalidasi bahwa kebijakan dilewati secara bersyarat

  1. Di menu kiri untuk proxy, pada bagian Proxy endpoints > default, klik GetATM.

    Panel Kode berisi alur Get ATM, yang mencantumkan tiga kebijakan yang telah dilampirkan berikut, dengan kondisi pada kebijakan kedua dan ketiga:

    <Flow name="GetATM"> <Description>retrieve a single ATM</Description> <Request/> <Response> <Step> <Name>EV-ExtractLatLng</Name> </Step> <Step> <Condition>latitude != null AND longitude != null</Condition> <Name>FC-GetAddress</Name> </Step> <Step> <Condition>latitude != null AND longitude != null</Condition> <Name>JS-AddAddress</Name> </Step> </Response> <Condition>(proxy.pathsuffix MatchesPath "/atms/{name}") and (request.verb = "GET")</Condition> </Flow>
  2. Klik Save, lalu klik Save As New Revision.

  3. Klik Deploy.

  4. Untuk Environment, gunakan eval.

  5. Untuk Service account, masukkan alamat email akun layanan berikut:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  6. Klik Deploy, lalu klik Confirm.

  7. Klik tab Overview, lalu tunggu hingga status deployment untuk lingkungan eval menunjukkan bahwa revisi baru berhasil di-deploy.

Klik Periksa progres saya untuk memverifikasi tujuan. Menambahkan alamat ATM saat mengambil data satu ATM

Menguji proxy API yang diperbarui

  1. Di Cloud Shell, buka koneksi SSH ke VM pengujian Anda:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Gunakan perintah berikut untuk memanggil proxy bank-v1 dan mengambil semua data ATM:

    curl -i -k "https://eval.example.com/bank/v1/atms"

    Respons ini tidak berisi alamat, karena permintaan tidak menggunakan alur GET /atms/{name}.

  3. Ambil data satu ATM:

    curl -i -k "https://eval.example.com/bank/v1/atms/spruce-goose"

    Respons ini sekarang berisi alamat yang ditambahkan di proxy API:

    {"longitude":-118.408207,"latitude":33.977601,"description":"","name":"spruce-goose","address":"5865 S Campus Center Dr, Los Angeles, CA 90094, USA"}

Selamat!

Di lab ini, Anda telah men-deploy layanan backend di Cloud Run. Anda telah membuat proxy Apigee API yang meneruskan permintaan ke layanan backend. Anda membuat alur bersama yang mengambil dan menyimpan konten dalam cache dari layanan eksternal. Anda memanggil alur bersama tersebut dari proxy API dan menggunakan kode JavaScript untuk mengubah respons API.

Langkah berikutnya/Pelajari lebih lanjut

Manual Terakhir Diperbarui: 16 Juli 2024

Lab Terakhir Diuji: 16 Juli 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.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.