簡體   English   中英

在谷歌雲項目中啟用所有 API

[英]Enabling all API in Google Cloud project

在可以完成許多事情之前,谷歌雲需要啟用 API。

啟用只需要一個 CLI 命令,而且通常非常快。 如果我嘗試做一些需要未啟用 API 的事情,CLI 甚至會建議啟用。但它無論如何都會中斷開發。

我的問題是為什么默認情況下不啟用它們? 如果我在創建新項目后立即啟用它們以便以后不用再啟用它們,是否可以?

我想了解這種設計的目的並學習最佳實踐。

好吧,它們被禁用主要是為了不產生您不打算誘導的成本,以便您了解您在哪個點使用的服務並跟蹤每個服務的使用/成本。

此外,某些服務(例如 Pub/Sub)依賴於其他服務,而其他服務(例如 Container Registry(或 Artifact Registry))需要一個 Cloud Storage 存儲桶來存儲工件,如果您推送 Docker,它會自動創建一個圖像或使用 Cloud Build。 所以這些是你需要注意的事情。

啟用 API 需要一些時間,具體取決於服務,是的,但這是每個項目的一次性操作。 我不確定您對等待時間的擔憂到底是什么,但是如果您想在執行gcloud命令以啟用某些 API 的同時運行命令,您可以使用--async標志,它將在后台運行命令而不需要您等待它完成后再運行另一個。

最后,當然,如果您知道自己在做什么,則可以全部啟用它們,但風險自負——這是一種更安全的方法,只啟用您需要的那些,而且您可能已經意識到,您可以一次啟用多個gcloud命令。 在 Container Registry 的示例中,它使用 Cloud Storage,您仍然需要為此付費。

啟用服務可以訪問(通常是收費的)資源。

將這種資源“表面”限制在您(或客戶)需要的資源上被認為是一種很好的做法; 您啟用的服務越多,潛在的攻擊面和潛在賬單就越大。

Google 提供越來越多的服務(可通過API訪問)。 您不太可能想要訪問所有這些內容。

API 由 Project 啟用。 項目創建階段(包括啟用服務)通常只占項目整個生命周期的一小部分; 甚至那些按需創建和拆除的項目。

可以異步啟用 API,允許您啟用而不是阻止每個服務:

for SERVICE in "containerregistry" "container" "cloudbuild" ...
do
  gcloud services enable ${SERVICE}.googleapis.com --project=${PROJECT} --async
done

在此基礎上,自動化您組織的項目配置(腳本、 Terraform部署管理器等)是一種很好的做法。 這為您的項目的創建方式、啟用的服務、默認權限等提供了一個基線模板。然后您的開發人員只需即發即棄配置程序(希望也簽入您的源代碼管理),喝杯咖啡並等待這些為他們完成了步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM