Cloud Function 預設會使用其專案的預設服務帳戶來執行,其格式為 PROJECTID@appspot.gserviceaccount.com。當 Cloud Function 嘗試寫入另一個專案 (專案 B) 中的 Cloud Storage 儲存桶時,需要該儲存桶的寫入權限。因此,您需要將 roles/storage.objectCreator 角色授予 Cloud Function 執行所使用的服務帳戶,即 service-PROJECTA@gcf-admin-robot.iam.gserviceaccount.com,使其能夠在專案 B 的儲存桶中建立物件。
選項一和選項二錯誤,因為 Cloud Function 的權限是透過其服務帳戶管理,而不是透過您的使用者帳戶。選項四錯誤,因為 Cloud Storage API 在專案 B 中通常預設為啟用,且 403 錯誤通常表示權限不足,而非 API 未啟用。