iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
Build on Google AI

ADK × A2A × Cloud Run 打造可部署、可互通的 Agent 系統系列 第 2

Day 2:環境(上)先開一個自己的 GCP project

  • 分享至 

  • xImage
  •  

我原本以為環境設定這篇應該會很無聊,結果第一個指令就讓我停下來。

在一個空目錄跑 agents-cli scaffold create,它中間印了這兩行:

> Verifying GCP credentials...

> ✓ Connected to project: project-942b8cd4-5192-4927-98b

它沒有問我要用哪個專案,而是直接讀 gcloud 目前設定的 active project。讀到什麼,就直接用什麼。

借來的專案

project-942b8cd4-5192-4927-98b 這種命名方式,我看到的第一反應就是:這應該不是我自己的專案。

後來想了一下,果然是之前跑 A2A codelab 留下來的臨時專案。那時候設定完 gcloud 就沒再管,結果一路留到現在。

這件事如果沒注意到其實滿危險的。

因為後面還會碰到部署、Terraform、Agent Runtime。如果一直沿用這個專案,最後這些資源全部都會掛在一個不是自己的環境上。更麻煩的是,codelab 的 temporary project 有使用期限,專案到期後,裡面的資源也不會是你想留就能留。

不能拿 lab project 當長期環境,除了會過期之外,還有幾個問題:

  • 配額和權限是課程環境給你的,不一定跟自己的專案一樣
  • 有些操作可能會碰到 IAM 或 Service Usage 權限問題
  • Billing 也不是你自己的帳務環境,不適合拿來長期追蹤成本

尤其最後一點,真的要自己開始部署東西之後才會有感。

先確認你現在指到哪

先跑:

gcloud config get-value project

先看它現在到底指向哪個 project。

如果不是自己的,就換掉:

gcloud projects create <你的專案id> --name="<顯示名稱>"

gcloud config set project <你的專案id>

Project ID 在 Google Cloud 裡是全球唯一的,所以名字很容易撞。可以自己加一個後綴,例如年份或專案名稱。

建立完之後,再到 Cloud Console 確認這個 project 有沒有綁定 Billing account。

這裡不要直接理解成「沒 Billing 就什麼 API 都不能用」,實際上不同服務的要求不一樣。不過後面要用到的雲端服務,有些會要求 project 已經啟用 billing,所以一開始先處理掉比較省事。Google Cloud 的 API 啟用與 Billing 本身也是不同的設定。

預算警示

到 Cloud Billing 的 Budgets & alerts 建一個預算。

我自己會先設小一點,例如 1 美元,通知門檻可以先用:

  • 50%
  • 90%
  • 100%

這幾個也是 Google Cloud 建立 Budget 時的預設門檻。

這東西我覺得蠻值得一開始就設。

因為雲端最麻煩的地方不是一定會突然跳錯誤,而是有些東西可以正常跑很久,等你回頭看帳單才發現:「欸?我怎麼有這筆?」

例如 Cloud Run 如果設定 minimum instances,instance 就不會完全縮到 0。Request-based billing 下,閒置的 minimum instances 仍然會產生費用,只是使用的是較低的 idle rate。

所以如果只是跟著教學做 demo,看到 --min 1 這類設定,最好順手確認一下它到底在做什麼。

另外有一件事要記住:

Budget alert 是提醒,不是信用卡防火牆。

一般的 alerts-only budget 不會在達到 1 美元之後自動把所有服務關掉。Google Cloud 官方也特別說明,Budget 本身不會自動限制支出。

所以它比較像是「有人提醒你該回來看帳單了」,不是「超過 1 美元就自動斷電」。

一個習慣

後面看到需要填 project ID 的指令,我會盡量不要直接手打。

例如可以先確認目前 project:

gcloud config get-value project

如果指令支援 shell 的 command substitution,也可以讓 shell 幫你帶入目前的 project,而不是自己複製貼上。

不要從教學文件看到 <PROJECT_ID>{PROJECT_ID} 這種佔位符就直接整段貼進去。

我以前真的照抄過。

而且最煩的是,有些指令不一定會立刻告訴你「你貼錯了」,就是正常跑,然後你過幾分鐘才發現自己一直在操作錯的東西。


上一篇
Day 1:Agent 在筆電上跑得好,為什麼上不了線
下一篇
Day 3:環境(中)gcloud 與 ADK 安裝
系列文
ADK × A2A × Cloud Run 打造可部署、可互通的 Agent 系統5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言