
Google Cloud Scheduler 可用於存取與 Google Cloud Function 關聯的 http 端點,以便您可以透過計時器/調度程序執行您的函數。 Cloud Functions 有兩種暴露選項:(1) 允許所有流量或 (2) 僅允許內部流量(僅允許來自同一專案或 VPC SC 邊界內的流量)。我想做後者,但調度程序無法透過 HTTP 403 存取它。
如果對所有流量開放,那麼有人可以猜測我的 URL,他們可以根據自己的意願觸發它。當然,現在我可以將身份驗證放入我的函數中,並讓 Scheduler 傳遞適當的標頭,但我的函數對於其他人觸發來說並不危險。但是,如果其他人可以觸發它,他們可以隨意呼叫它,即使進行了身份驗證,它仍然會對所有這些呼叫產生費用。我想確保除了 Scheduler(理想情況下)之外沒有其他人可以訪問該 URL,因此除了我的日程安排之外,它不會被觸發。有什麼方法可以讓這件事成為可能嗎?
答案1
根據官方文件:
要使用 Cloud Scheduler,您的 Cloud 專案必須包含位於支援區域之一的 App Engine 應用程式。如果您的專案沒有 App Engine 應用程序,您必須建立一個。
因此,透過執行以下命令找到應用程式引擎應用程式的位置:
gcloud app describe
#check for the locationId: europe-west2
然後,確保使用入口設定將雲端功能部署為「僅允許內部流量」到與應用程式引擎應用程式相同的位置。
我在與我的應用程式引擎應用程式相同的區域部署了雲端功能,一切都按預期運行。