- Step 1: 建立 Docker image 並上傳到 GCP Artifact Registry
- Step 2: 部署 Cloud Run 並設定 Security
- Step 3: 確認 IAM permission
- Step 4: 取得 ID Token
- Step 5: 將 token 帶入 Request Headers
本文說明如何建立一個有鎖 IAM 權限的 GCP Cloud Run Service/Job 並使用 Python 送 Request
Step 1: 建立 Docker image 並上傳到 GCP Artifact Registry
1. 先使用 gcloud 指令進行身份驗證
登入並授權 gcr.io,才能順利將 image 下載到本機(如果是直接使用 GCP Cloud Shell 就可以不用這一步)
gcloud auth configure-docker gcr.io
2. 建立 Docker Image 並推送到 GCP Artifact Registry
docker build --platform linux/amd64 -t gcr.io/my-gcp-project/service-name .
docker push gcr.io/my-gcp-project/service-name
--platform linux/amd64: 如果是在非 linux 的作業系統(如:MacOS, Windows)中進行 image build 就需要另外指定 image 系統,不然會無法在 Cloud Run 上順利運行
Step 2: 部署 Cloud Run 並設定 Security
前往 GCP Artifact Registry 找到剛剛推上去的 Image,並將 image 部署到 Cloud Run(點擊如下圖的 Deploy to Cloud Run)

部署後可以在該 Cloud Run Service 的 Security 頁面看到預設是 Require authentication (Manage authorized users with Cloud IAM),代表只有 IAM 許可的人可以呼叫這個 Service
