Menggunakan pipeline serverless dengan Active Assist

Last reviewed 2021-06-09 UTC

Dokumen ini ditujukan bagi arsitek perusahaan dan developer software yang ingin mem-build pipeline otomatisasi untuk menggunakan Active Assist dalam organisasi Google Cloud mereka. Bagian ini adalah bagian dari rangkaian yang membahas pola arsitektur yang dapat digunakan perusahaan untuk mengoptimalkan jejak cloud mereka dalam skala besar menggunakan Active Assist. Rangkaian ini terdiri dari bagian berikut:

Tutorial ini menunjukkan cara menggunakan teknologi serverless Google Cloud untuk membangun pipeline otomatisasi guna mengambil dan memproses rekomendasi Active Assist. Anda mendasarkan rekomendasi pada aturan bisnis yang ditetapkan oleh perusahaan. Pipeline otomatisasi yang Anda siapkan dalam tutorial ini membantu Anda bekerja dengan Active Assist dalam skala besar sambil tetap mempertahankan proses peninjauan dan aktuasi yang dipimpin oleh tim. Pendekatan ini berguna saat perusahaan Anda ingin menskalakan penggunaan portofolio Active Assist, tetapi tetap mengontrol proses peninjauan dan aktuasi dalam tim. Layanan ini menawarkan alternatif untuk penggunaan pipeline continuous integration dan continuous delivery (CI/CD).

Arsitektur yang ditunjukkan dalam tutorial ini bersifat generik dan Anda dapat memperluasnya agar dapat digunakan dengan produk serverless lainnya. Tutorial ini mengasumsikan bahwa Anda sudah memahami teknologi Google Cloud berikut:

Untuk menyelesaikan tutorial ini, Anda harus memiliki akun untuk Slack atau notifikasi atau alat pemrosesan tiket yang serupa. Alat tersebut harus disiapkan di komputer dan siap digunakan.

Arsitektur

Karena arsitektur yang ditunjukkan dalam tutorial ini bersifat modular, Anda dapat menyesuaikan komponen notifikasi agar sesuai dengan kebutuhan bisnis Anda. Tutorial ini menunjukkan cara membuat notifikasi dan mengirimkannya ke Slack. Anda juga dapat memilih untuk mengirim notifikasi ke Pub/Sub atau alat pemrosesan tiket atau notifikasi lainnya.

Diagram arsitektur berikut menunjukkan komponen yang Anda gunakan dalam tutorial ini:

Pipeline serverless.

Arsitektur ini memiliki komponen berikut:

  • Layanan Cloud Run yang dipicu penjadwal pada interval tetap. Layanan memanggil Recommender API dengan membaca metadata (project ID dan jenis pemberi rekomendasi) yang ditentukan dan disimpan di koleksi Firestore.
  • Topik Pub/Sub tempat rekomendasi Active Assist dikirim dan diproses.
  • Layanan Cloud Run kedua yang mengurai rekomendasi Active Assist. Layanan ini menentukan cara rekomendasi diproses berdasarkan aturan bisnis yang ditentukan oleh perusahaan Anda dan disimpan di koleksi Firestore.
  • Dua koleksi Firestore untuk menyimpan metadata bisnis dan aturan bisnis. Koleksi Firestore beroperasi sebagai berikut:
    • Koleksi pertama menyimpan metadata bisnis yang relevan untuk mengambil rekomendasi Active Assist. Dalam tutorial ini, atribut recommendation type, Google Cloud project IDs, dan locations digunakan sebagai metadata bisnis. Atribut ini digunakan oleh layanan Cloud Run recommendation-collector untuk menentukan jenis rekomendasi yang diambil.
    • Koleksi kedua menyimpan aturan bisnis yang diterapkan saat rekomendasi diproses.

Tujuan

  • Buat contoh layanan Cloud Run guna mengambil rekomendasi Active Assist untuk project contoh dan mengirimkannya ke topik Pub/Sub.
  • Buat dua koleksi Firestore untuk menyimpan contoh metadata dan aturan bisnis.
  • Buat layanan Cloud Run kedua untuk memproses rekomendasi sesuai dengan contoh aturan bisnis yang Anda tetapkan dalam tutorial ini.
  • Buat saluran Slack yang menjadi tujuan pengiriman layanan Cloud Run contoh rekomendasi Active Assist.
  • Uji pipeline menyeluruh dengan contoh rekomendasi Active Assist.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

  1. Di konsol Google Cloud, buka halaman Pemilih project.

    Buka pemilih project

  2. Pilih atau buat project Google Cloud.

  3. Catat ID project Google Cloud untuk project pengelola rekomendasi. Anda memerlukan ID ini di bagian berikutnya tentang cara menyiapkan lingkungan.
  4. Enable the Cloud Build, Firestore, App Engine,Pub/Sub, Cloud Run, Cloud Scheduler, dan Cloud Source Repositories APIs.

    Enable the APIs

    Anda menggunakan kredensial aplikasi default untuk tutorial ini. Jika diminta untuk membuat kredensial di halaman Add credentials to your project, klik Cancel.
  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  6. Buat hal berikut:
    • Contoh saluran Slack.
    • Contoh aplikasi Slack dan webhook masuk untuk menerima notifikasi yang dihasilkan oleh mesin bernama recommendation-rules-engine. Anda akan menyiapkan mesin nanti dalam tutorial ini.
    Untuk informasi selengkapnya, lihat Membuat saluran Slack dan Mengirim pesan menggunakan Webhook Masuk.

    Saat membuat aplikasi Slack dan URL webhook masuk, catat URL tersebut sesuai kebutuhan Anda nanti dalam tutorial ini.

Membangun pipeline serverless

Di bagian ini, Anda akan membuat komponen yang diperlukan untuk membangun pipeline serverless. Platform ini menghasilkan rekomendasi Active Assist berdasarkan pola penggunaan dan metrik sistem. Bergantung pada rekomendasi yang dihasilkan, setiap kategori rekomendasi mungkin menggunakan jangka waktu default yang berbeda dari sebelumnya untuk menganalisis data dan metrik penggunaan.

Jika Anda memiliki contoh project Google Cloud yang sudah memiliki resource dan rekomendasi Active Assist, Anda dapat menjalankan pipeline untuk memproses rekomendasi tersebut setelah membuat perubahan yang sesuai pada kode contoh yang diberikan.

Membuat koleksi Firestore

Di bagian ini, Anda akan membuat dua koleksi Firestore. Yang pertama, koleksi activeassist-metadata, menyimpan metadata bisnis yang relevan untuk mengambil rekomendasi Active Assist. Yang kedua, kumpulan activeassist-business-rules, menyimpan aturan bisnis yang diterapkan saat pipeline memproses rekomendasi.

Saat rekomendasi Active Assist diuraikan, berdasarkan aturan bisnis di koleksi Firestore, notifikasi akan dibuat dan dikirim, atau rekomendasi akan otomatis diterapkan ke resource Google Cloud yang relevan.

Buat koleksi activeassist-metadata

  1. Di konsol Google Cloud, buka halaman Firestore.

    Buka Firestore

  2. Buat database Firestore jika Anda belum memilikinya. Atau, jika Anda sudah memiliki database Firestore, lanjutkan ke langkah berikutnya.

    Membuat Database:

    1. Klik Select Native mode untuk mengaktifkan Firestore.
    2. Pilih lokasi region yang dekat dengan region tempat layanan Cloud Run Anda dijalankan.
    3. Klik Create database. Perlu waktu beberapa saat untuk menyelesaikan konfigurasi.
  3. Di halaman Firestore, klik Start Collection.

  4. Pada kolom ID Koleksi, masukkan hal berikut: activeassist-metadata.

  5. Isi kolom seperti yang ditunjukkan pada tabel berikut. Untuk menambahkan kolom berikutnya, klik Tambahkan Kolom.

    Nama kolom Jenis kolom Nilai kolom Catatan
    project string Stub-Project-ID Tutorial ini menggunakan stub untuk nilai kolom. Jika Anda ingin menggunakan rekomendasi dari project Google Cloud yang sudah ada, masukkan project ID.
    locations array global Beberapa rekomendasi mungkin bersifat spesifik per region atau zona, seperti rekomendasi penyesuaian ukuran VM. Rekomendasi lainnya bersifat global, misalnya, rekomendasi IAM.
    recommenderType string google.iam.policy.Recommender Tidak berlaku.

  6. Saat kolom terisi, klik Simpan.

Buat koleksi activeassist-business-rules

  1. Klik Mulai Pengumpulan.
  2. Pada kolom ID Koleksi, masukkan hal berikut: activeassist-business-rules

    Isi dokumen seperti yang ditunjukkan pada tabel berikut. Untuk menambahkan kolom berikutnya, klik Tambahkan Kolom.

    Nama kolom Jenis kolom Nilai kolom Catatan
    action string Notify Menetapkan nilai ini ke Apply akan menyebabkan layanan menerapkan rekomendasi dan menghapus peran yang tidak digunakan.
    projectId string Stub-Project-ID Tutorial ini menggunakan rekomendasi stub. Jika Anda ingin menggunakan rekomendasi dari project Google Cloud yang sudah ada, masukkan project ID.
    projectNumber string 999999999 Tutorial ini menggunakan rekomendasi stub.

    Jika Anda menggunakan rekomendasi dari project Google Cloud yang sudah ada, masukkan nomor project sebagai gantinya. Anda dapat menemukan nomor project di halaman sambutan Konsol Google Cloud
    recommenderType string google.iam.policy.Recommender Tidak berlaku.
    recommenderSubtype string REMOVE_ROLE Tidak berlaku.
    slackWebhookURL string Masukkan URL webhook Slack yang Anda buat di langkah sebelumnya. URL-nya terlihat seperti ini:

    https://hooks.slack.com/services/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

    Tutorial ini menunjukkan cara membuat aturan untuk menentukan apakah rekomendasi diterapkan secara otomatis atau apakah notifikasi dibuat dan dikirim ke platform seperti Slack. Untuk mempelajari cara rekomendasi dapat diterapkan secara otomatis berdasarkan evaluasi aturan bisnis contoh yang Anda siapkan, lihat repositori terkait.

  3. Setelah dokumen diisi, klik Simpan.

Membuat layanan Cloud Run terjadwal

Di bagian ini, Anda akan membuat layanan Cloud Run terjadwal yang disebut recommendation-collector, yang memanggil Recommender API dan mengambil rekomendasi aktif. Identity and Access Management Recommender API digunakan dalam tutorial ini sebagai Recommender API. Layanan ini membaca metadata dari koleksi Firestore activeassist-metadata yang Anda buat untuk menentukan rekomendasi mana yang akan diambil.

  1. Klik Open in Cloud Shell guna membuka Cloud Shell untuk project pengelola rekomendasi.

    Buka di Cloud Shell

    Saat Cloud Shell terbuka, perintah berikut akan dijalankan:

    Saat dialog Open in Cloud Shell muncul, pilih Trust, lalu klik Confirm.

  2. Tetapkan project ID dan nomor project dari project pengelola rekomendasi saat ini sebagai variabel:

    export RECO_MGR_PROJECT=PROJECT_ID
    gcloud config set project $RECO_MGR_PROJECT
    export RECO_MGR_PROJECT_NUMBER=$(gcloud projects describe $DEVSHELL_PROJECT_ID --format='value(projectNumber)')
    

    Ganti PROJECT_ID dengan project ID Anda. Setelah memasukkan perintah, klik Authorize saat diminta.

  3. Tetapkan variabel untuk wilayah deployment:

    export REGION=us-central1
    

    Meskipun tutorial ini menggunakan region us-central1, Anda dapat menggunakan region mana pun tempat Cloud Run tersedia.

  4. Buat variabel lingkungan untuk image Docker:

    export RECOMMENDER_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-collector:1.0
    
  5. Build image Docker dan upload ke Container Registry:

     gcloud builds submit --tag $RECOMMENDER_IMAGE
    
  6. Buat akun layanan untuk layanan recommendation-collector agar dapat berinteraksi dengan layanan Google Cloud lainnya di pipeline:

    gcloud iam service-accounts create recommendation-collector-sa \
      --description "Service Account that the recommendation-collector service uses to invoke other Google Cloud services" \
      --display-name "recommendation-collector-sa" \
      --project $RECO_MGR_PROJECT
    

    Sebaiknya berikan izin terperinci ke layanan Cloud Run dengan menetapkan peran yang telah ditetapkan ke akun layanan. Untuk mempelajari lebih lanjut, lihat Identitas layanan.

  7. Beri akun layanan untuk akses layanan recommendation-collector ke Firestore dan Recommender API:

    gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \
      --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/datastore.user
    gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \
      --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/pubsub.publisher
    
  8. Jika Anda menjalankan tutorial ini menggunakan contoh stub yang disediakan dalam repositori yang Anda clone, lanjutkan ke langkah berikutnya.

    Jika Anda membangun pipeline dalam tutorial ini menggunakan rekomendasi yang dibuat untuk project Google Cloud yang ada, Anda harus menetapkan izin IAM ke akun layanan yang dibuat untuk menjalankan dua layanan Cloud Run.

    Tetapkan variabel lingkungan, TEST_PROJECT_ID, dengan ID project tempat Anda menjalankan pipeline ini sebelum menjalankan perintah:

    export TEST_PROJECT_ID=TEST_PROJECT_ID
    gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \
      --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/recommender.iamAdmin
    gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \
      --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/serviceusage.serviceUsageConsumer
    gcloud services enable recommender.googleapis.com --project $TEST_PROJECT_ID
    

    Pastikan Project ID yang Anda gunakan cocok dengan yang Anda masukkan saat membuat koleksi Firestore.

  9. Untuk tutorial ini, Anda akan men-deploy layanan dengan variabel lingkungan yang disebut STUB_RECOMMENDATIONS. Variabel ini memungkinkan Anda menggunakan stub untuk menguji pipeline.

    Deploy layanan Cloud Run:

    gcloud run deploy recommendation-collector \
      --image=$RECOMMENDER_IMAGE \
      --no-allow-unauthenticated \
      --region $REGION \
      --platform managed \
      --service-account recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --set-env-vars="STUB_RECOMMENDATIONS=true" \
      --project $RECO_MGR_PROJECT \
    

    Terima perintah sistem apa pun.

    Jika Anda ingin menjalankan pipeline menggunakan rekomendasi Active Assist yang dibuat untuk project Google Cloud, hapus baris berikut dari perintah sebelum Anda men-deploy-nya:

    --set-env-vars="STUB_RECOMMENDATIONS=true"
    

Siapkan tugas Cloud Scheduler untuk menjalankan recommender-collector service

  1. Di Cloud Shell, buat akun layanan untuk tugas Cloud Scheduler yang akan digunakan untuk menjalankan layanan recommendation-collector:

    gcloud iam service-accounts create recommender-scheduler-sa \
      --description "Service Account used by Cloud Scheduler to invoke the recommender-parser service" \
      --display-name "recommender-scheduler-sa" \
      --project $RECO_MGR_PROJECT
    
  2. Berikan peran run/invoker kepada akun layanan untuk mengaktifkannya guna memanggil layanan Cloud Run:

    gcloud run services add-iam-policy-binding recommendation-collector \
      --member=serviceAccount:recommender-scheduler-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role=roles/run.invoker \
      --region=$REGION \
      --platform=managed
    
  3. Dapatkan URL layanan recommendation-collector:

    export RECOMMENDER_SERVICE_URI=`gcloud run services describe recommendation-collector \
      --platform managed \
      --project $RECO_MGR_PROJECT \
      --region $REGION \
      --format="value(status.url)"`/run
    
  4. Buat tugas Cloud Scheduler bernama recommender-iam-scheduler:

    gcloud scheduler jobs create http recommender-iam-scheduler \
      --project $RECO_MGR_PROJECT \
      --time-zone "America/Los_Angeles" \
      --schedule="0 */3 * * *" \
      --uri=$RECOMMENDER_SERVICE_URI \
      --description="Scheduler job to invoke recommendation pipeline" \
      --oidc-service-account-email="recommender-scheduler-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com" \
      --headers="Content-Type=application/json" \
      --http-method="POST"
    

    Atur zona waktu agar sesuai dengan lokasi Anda. Format nilai zona waktu didasarkan pada database tz.

    Untuk mengetahui informasi selengkapnya, lihat gcloud scheduler jobs create http.

    Tugas Cloud Scheduler Anda memanggil rute /run untuk layanan recommendation-collector.

    Menyetel tanda --schedule="0 */3 * * *" akan menjalankan tugas Penjadwal setiap tiga jam. Anda dapat mengubah setelan ini sesuai dengan persyaratan Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal cron job.

Membuat mesin aturan rekomendasi untuk memproses rekomendasi

Di bagian ini, Anda akan membuat layanan Cloud Run kedua bernama recommendation-rules-engine untuk memproses rekomendasi yang dikumpulkan oleh layanan recommendation-collector. Layanan recommendation-rules-engine dipanggil oleh Pub/Sub saat rekomendasi baru didorong ke topik activeassist-recommendations.

Layanan ini mengurai rekomendasi berdasarkan aturan bisnis yang Anda tentukan dalam koleksi activeassist-business-rules.

  1. Di Cloud Shell, buka direktori recommendation-rules-engine:

    cd ../recommendation-rules-engine
    
  2. Buat variabel lingkungan untuk image Docker:

    export RULES_ENGINE_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-rules-engine:1.0
    
  3. Build image Docker dan upload ke Container Registry:

    gcloud builds submit --tag $RULES_ENGINE_IMAGE
    
  4. Buat akun layanan agar layanan recommendation-rules-engine dapat berinteraksi dengan layanan Google Cloud lainnya di pipeline:

    gcloud iam service-accounts create recommendation-rules-sa \
     --description "Service Account that recommendation-rules-engine uses to invoke other Google Cloud services" \
     --display-name "recommendation-rules-sa" \
     --project $RECO_MGR_PROJECT
    
  5. Beri akun layanan untuk akses layanan recommendation-rules-engine ke Firestore:

    gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \
      --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/datastore.user
    

    Jika Anda menggunakan stub yang disediakan untuk tutorial ini, lanjutkan ke langkah berikutnya.

    Jika Anda menguji pipeline menggunakan rekomendasi yang dibuat untuk project Google Cloud, bukan stub yang disediakan untuk tutorial ini, jalankan perintah berikut untuk mengizinkan akses akun layanan mesin aturan ke project Anda:

    gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \
      --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/serviceusage.serviceUsageConsumer
    gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \
      --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/recommender.iamAdmin
    gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \
      --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/resourcemanager.projectIamAdmin
    
  6. Deploy layanan Cloud Run:

    gcloud run deploy recommendation-rules-engine \
      --image=$RULES_ENGINE_IMAGE \
      --no-allow-unauthenticated \
      --region $REGION \
      --platform managed \
      --service-account recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --project $RECO_MGR_PROJECT
    

    Terima perintah sistem apa pun.

  7. Dapatkan URL recommendation-rules-engine:

    export RECOMMENDER_SERVICE_RULES_URI=`gcloud run services describe recommendation-rules-engine \
      --platform managed \
      --project $RECO_MGR_PROJECT \
      --region $REGION \
      --format="value(status.url)"`/process
    

    URL yang Anda ambil pada langkah ini akan dipanggil saat rekomendasi baru tersedia oleh topik Pub/Sub yang Anda buat pada langkah berikutnya.

Buat topik Pub/Sub untuk rekomendasi aktif

Di bagian ini, Anda akan membuat topik Pub/Sub untuk rekomendasi Active Assist yang diambil oleh layanan recommender-collector dengan memanggil Recommender API.

  1. Di Cloud Shell, buatlah topik Pub/Sub:

    gcloud pubsub topics create activeassist-recommendations
    
  2. Buat akun layanan untuk Pub/Sub yang akan digunakan untuk memanggil layanan Cloud Run recommendation-rules-engine:

    gcloud iam service-accounts create recommendation-engine-sub-sa \
      --description "Service Account used by Pub/Sub to push recommendations to the recommendation-rules-engine service" \
      --display-name "recommendation-engine-sub-sa" \
      --project $RECO_MGR_PROJECT
    
  3. Akun layanan Pub/Sub harus dikaitkan dengan peran yang diperlukan untuk memublikasikan pesan dan memanggil layanan recommendation-rules-engine:

    gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \
      --member serviceAccount:recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role roles/run.invoker \
      --project $RECO_MGR_PROJECT
    

Membuat langganan untuk topik Pub/Sub

  1. Buat langganan untuk layanan recommendation-rules-engine:

    # grant Pub/Sub the permission to create tokens
    PUBSUB_SERVICE_ACCOUNT="service-$RECO_MGR_PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \
      --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT"\
      --role='roles/iam.serviceAccountTokenCreator'
    # configure the subscription push identity
    gcloud pubsub subscriptions create active-assist-recommendations-for-rules-engine \
      --topic=activeassist-recommendations \
      --topic-project=$RECO_MGR_PROJECT \
      --push-auth-service-account=recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --ack-deadline=60 \
      --push-endpoint=$RECOMMENDER_SERVICE_RULES_URI
    
  2. Izinkan akun layanan recommendation-engine-sub-sa yang Anda buat untuk memanggil layanan recommendation-rules-engine:

    gcloud run services add-iam-policy-binding recommendation-rules-engine \
      --member=serviceAccount:recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \
      --role=roles/run.invoker \
      --region=$REGION \
      --platform=managed
    

Menjalankan pengujian menyeluruh menggunakan stub

Rekomendasi Active Assist dihasilkan oleh platform berdasarkan pola penggunaan dan metrik sistem. Setiap kategori rekomendasi mungkin menggunakan periode waktu default yang berbeda di masa lalu untuk menganalisis data penggunaan dan metrik berdasarkan rekomendasi yang dihasilkan. Misalnya, rekomendasi IAM dibuat oleh platform berdasarkan pola penggunaan dari 90 hari terakhir.

Untuk menguji pipeline menyeluruh, repositori yang Anda clone untuk tutorial ini menyediakan rekomendasi contoh (stub) yang Anda gunakan untuk menjalankan pipeline end-to-end.

Di bagian ini, Anda akan melakukan hal berikut:

  • Periksa rekomendasi stub.
  • Panggil pipeline secara manual.
  • Periksa apakah notifikasi dibuat dan dikirim ke saluran Slack yang Anda buat.
  1. Tinjau contoh rekomendasi yang diberikan di repositori:

    cat ../recommendation-collector/stub.json
    

    File ini memberikan contoh rekomendasi dengan tindakan REMOVE untuk peran contoh yang disebut roles/gkehub.connect.

  2. Jalankan perintah berikut agar Cloud Scheduler dapat segera menjalankan tugas, bukan menunggu eksekusi terjadwal berikutnya:

    gcloud scheduler jobs run recommender-iam-scheduler
    
  3. Di halaman konsol Cloud Scheduler, di kolom Result untuk tugas recommender-iam-scheduler, pastikan hasilnya adalah Success.

    Untuk mendapatkan tampilan mendetail tentang langkah-langkah yang dijalankan oleh setiap layanan, Anda juga dapat melihat log layanan Cloud Run untuk layanan recommendation-collector dan layanan recommendation-rules-engine.

  4. Jika pipeline end-to-end serverless yang Anda build dalam tutorial ini berhasil berjalan, pipeline akan menghasilkan notifikasi Slack yang berisi detail binding peran yang direkomendasikan untuk Anda hapus. Berikut contoh notifikasi yang Anda terima:

    Project xxxxxxxx\
    **Impact**: SECURITY\
    This role has not been used during the observation window.\
    **Role**: roles/gkehub.connect\
    **Member**:
    serviceAccount:sample-sa@recommendation-sample.iam.gserviceaccount.com\
    **Action**: remove
    

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

  • Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  • Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  • Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
  • Langkah selanjutnya