Traffine I/O

Bahasa Indonesia

Mendeploy Streamlit ke Cloud Run

Pada artikel ini, saya akan memperkenalkan cara mendeploy Streamlit ke Cloud Run.

Anda dapat memeriksa kode sumber dari repositori berikut:

https://github.com/ryuseikakujo/streamlit-cloud-run/tree/main

Clone Kode Sumber
Clone kode sumber dengan perintah berikut:

bash
$ git clone https://github.com/ryuseikakujo/streamlit-cloud-run.git

Persiapan

Lakukan persiapan dengan langkah-langkah berikut:

  1. Buat Terraform Backend
  2. Buat resource infrastruktur dengan Terraform
  3. Konfigurasi Rahasia GitHub Actions

Buat Terraform Backend

Untuk mengelola state Terraform, buat sebuah bucket di GCS (Google Cloud Storage). Silakan buat bucket tersebut melalui konsol GCP.

Buat Resource Infrastruktur dengan Terraform

Pertama, ubah file terraform/backend.tf dengan mengganti bucket:

terraform/backend.tf
  backend "gcs" {
-   bucket = "my-streamlit-tfstate"
+   bucket = "<Your bucket name>"
    prefix = ""
  }

Selanjutnya, ubah terraform/variables.tf:

terraform/variables.tf
 variable "project" {
   type    = string
-  default = "my-gcp-proj"
+  default = "<Your GCP project name>"
 }

 variable "repo_org_name" {
   type    = string
-  default = "ryuseikakujo"
+  default = "Your github repository organization name"
 }

 variable "repo_name" {
   type    = string
-  default = "streamlit-cloud-run"
+  default = "Your github repository name"
 }

Kemudian, apply Terraform dengan perintah berikut:

bash
$ cd terraform
$ terraform init
$ terraform apply

Resource berikut akan dibuat:

  • Workload Identity Pool
  • Service Account untuk Cloud Run
  • Service Account untuk GitHub Actions

Konfigurasi Rahasia GitHub Actions

Atur variabel lingkungan yang akan dikirimkan ke Cloud Run selama proses deployment di .github/workflows/cd_streamlit.yml. Tetapkan variabel berikut sebagai Secrets GitHub:

  • VAR1
  • VAR2

Dengan pengaturan ini, saat commit dilakukan ke cabang main, gambar Docker akan diunggah ke GCR, dan Cloud Run akan didistribusikan melalui GitHub Actions.

Referensi

https://github.com/ryuseikakujo/streamlit-cloud-run/tree/main

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!